aboutsummaryrefslogtreecommitdiffhomepage
path: root/wutil.c
diff options
context:
space:
mode:
authorGravatar axel <axel@liljencrantz.se>2005-10-14 00:08:33 +1000
committerGravatar axel <axel@liljencrantz.se>2005-10-14 00:08:33 +1000
commit0385fbe2be6d1fb03c6fdbc7ca2efb6fe2ff7ce6 (patch)
treee20858422bfd27f0b1eaed2cdbe3a6aa62b095f1 /wutil.c
parent7e3f9c222c3c1a45abf7a89d619aa2b487a65c1e (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.c15
1 files changed, 12 insertions, 3 deletions
diff --git a/wutil.c b/wutil.c
index 4563f407..09b26d76 100644
--- a/wutil.c
+++ b/wutil.c
@@ -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;
}