diff options
Diffstat (limited to 'lib/printf.c')
| -rw-r--r-- | lib/printf.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/lib/printf.c b/lib/printf.c index 7fa681e..302f227 100644 --- a/lib/printf.c +++ b/lib/printf.c @@ -71,7 +71,9 @@ s_convert_string(char *str, size_t size, va_list ap, size_t stri, struct print_f const char *strarg = va_arg(ap, const char*); if((uintptr_t)strarg < 0xFFFF800000000000ULL) return stri; - int arglen = flags.precision == 0 ? strlen(strarg) : flags.precision; + int arglen = strlen(strarg); + if(flags.precision > 0 && flags.precision < arglen) arglen = flags.precision; + int minlen = flags.fieldw; char padc = flags.flg_zeropad ? '0' : ' '; @@ -98,7 +100,6 @@ s_convert_int(char *str, size_t size, va_list ap, size_t stri, case 4: value = (uintmax_t)va_arg(ap, unsigned int); break; case 8: value = (uintmax_t)va_arg(ap, uintmax_t); break; } - size_t pad_stri = stri; int advance = convert_as_int(num_buf, 64, 0, value, flags.radix, flags.unsign); if(flags.flg_alt) { |
