diff options
Diffstat (limited to 'sys/lib/string/vsnprintf.c')
-rw-r--r-- | sys/lib/string/vsnprintf.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/sys/lib/string/vsnprintf.c b/sys/lib/string/vsnprintf.c index e9e391f..489514f 100644 --- a/sys/lib/string/vsnprintf.c +++ b/sys/lib/string/vsnprintf.c @@ -96,6 +96,9 @@ vsnprintf(char *s, size_t size, const char *fmt, va_list ap) c1 = (char )va_arg(ap, int); printc(s, size, &off, c1); break; + case '%': + printc(s, size, &off, c); + break; case 'd': num = va_arg(ap, int); itoa(num, num_buf, 10); @@ -104,6 +107,7 @@ vsnprintf(char *s, size_t size, const char *fmt, va_list ap) num_len = strlen(num_buf); for (size_t i = num_len; i < pad_width; ++i) printc(s, size, &off, '0'); + pad_width = 0; } printstr(s, size, &off, num_buf); break; |