summaryrefslogtreecommitdiffstats
path: root/sys/kern/subr_prf.c
diff options
context:
space:
mode:
authordelphij <delphij@FreeBSD.org>2005-09-04 18:03:45 +0000
committerdelphij <delphij@FreeBSD.org>2005-09-04 18:03:45 +0000
commit5f683ee68de8850994da2bd671f19eda8998dd91 (patch)
tree251d52b1bed4abba8d1f5147628e9019215e3331 /sys/kern/subr_prf.c
parent36e4de77c6a71eace2d215c345b6328ad8cfc296 (diff)
downloadFreeBSD-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/subr_prf.c')
-rw-r--r--sys/kern/subr_prf.c6
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--);
OpenPOWER on IntegriCloud