diff options
author | axel <axel@liljencrantz.se> | 2005-10-14 00:08:33 +1000 |
---|---|---|
committer | axel <axel@liljencrantz.se> | 2005-10-14 00:08:33 +1000 |
commit | 0385fbe2be6d1fb03c6fdbc7ca2efb6fe2ff7ce6 (patch) | |
tree | e20858422bfd27f0b1eaed2cdbe3a6aa62b095f1 /wutil.c | |
parent | 7e3f9c222c3c1a45abf7a89d619aa2b487a65c1e (diff) |
Optimize interactive input reader by allowing multiple input characters between redraws
darcs-hash:20051013140833-ac50b-f652fada56ca7359246b03a4bdf2116fb8c52435.gz
Diffstat (limited to 'wutil.c')
-rw-r--r-- | wutil.c | 15 |
1 files changed, 12 insertions, 3 deletions
@@ -416,21 +416,30 @@ static int vgwprintf( void (*writer)(wchar_t), case 0: { unsigned d = va_arg( va, unsigned ); - snprintf( str, 32, "%d", d ); + if( precision >= 0 ) + snprintf( str, 32, "%.*u", precision, d ); + else + snprintf( str, 32, "%u", d ); break; } case 1: { unsigned long d = va_arg( va, unsigned long ); - snprintf( str, 32, "%ld", d ); + if( precision >= 0 ) + snprintf( str, 32, "%.*lu", precision, d ); + else + snprintf( str, 32, "%lu", d ); break; } case 2: { unsigned long long d = va_arg( va, unsigned long long ); - snprintf( str, 32, "%lld", d ); + if( precision >= 0 ) + snprintf( str, 32, "%.*llu", precision, d ); + else + snprintf( str, 32, "%llu", d ); break; } |