diff options
author | delphij <delphij@FreeBSD.org> | 2005-09-04 18:03:45 +0000 |
---|---|---|
committer | delphij <delphij@FreeBSD.org> | 2005-09-04 18:03:45 +0000 |
commit | 5f683ee68de8850994da2bd671f19eda8998dd91 (patch) | |
tree | 251d52b1bed4abba8d1f5147628e9019215e3331 /sys/kern | |
parent | 36e4de77c6a71eace2d215c345b6328ad8cfc296 (diff) | |
download | FreeBSD-src-5f683ee68de8850994da2bd671f19eda8998dd91.zip FreeBSD-src-5f683ee68de8850994da2bd671f19eda8998dd91.tar.gz |
When padding with zero, do pad after prefixes rather than padding
before prefixes.
Use cases:
printf("%05d", -42); --> "00-42" (should be "-0042")
printf("%#05x", 12); --> "000xc" (should be "0x00c")
Submitted by: Oliver Fromme
PR: kern/85520
MFC After: 1 week
Diffstat (limited to 'sys/kern')
-rw-r--r-- | sys/kern/subr_prf.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/sys/kern/subr_prf.c b/sys/kern/subr_prf.c index 6fa556e..9141822 100644 --- a/sys/kern/subr_prf.c +++ b/sys/kern/subr_prf.c @@ -755,7 +755,8 @@ number: if (neg) tmp++; - if (!ladjust && width && (width -= tmp) > 0) + if (!ladjust && padc != '0' && width + && (width -= tmp) > 0) while (width--) PCHAR(padc); if (neg) @@ -768,6 +769,9 @@ number: PCHAR('x'); } } + if (!ladjust && width && (width -= tmp) > 0) + while (width--) + PCHAR(padc); while (*p) PCHAR(*p--); |