X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=src%2Fstdio%2Fvfprintf.c;h=b5001ff2bd05ab6599ca3763f0be27911f0022b9;hb=fe514951af4e67f05d17d796251af9a8229761eb;hp=2c4fdf3d48a920f90f06722f175b89a52ebeb8d3;hpb=3d54adbe4752f3aaa61a1be412b6116ff7dd5be1;p=musl diff --git a/src/stdio/vfprintf.c b/src/stdio/vfprintf.c index 2c4fdf3d..b5001ff2 100644 --- a/src/stdio/vfprintf.c +++ b/src/stdio/vfprintf.c @@ -570,8 +570,11 @@ static int printf_core(FILE *f, const char *fmt, va_list *ap, union arg *nl_arg, case 'u': a = fmt_u(arg.i, z); } - if (!arg.i && !p) continue; if (p>=0) fl &= ~ZERO_PAD; + if (!arg.i && !p) { + a=z; + break; + } p = MAX(p, z-a + !arg.i); break; case 'c': @@ -581,7 +584,7 @@ static int printf_core(FILE *f, const char *fmt, va_list *ap, union arg *nl_arg, case 'm': if (1) a = strerror(errno); else case 's': - a = arg.p; + a = arg.p ? arg.p : "(null)"; z = memchr(a, 0, p); if (!z) z=a+p; else p=z-a;