From 5248ef8a3cfa0bccf3f5f52820ac3664523df9c9 Mon Sep 17 00:00:00 2001 From: Xin LI Date: Sun, 4 Sep 2005 18:03:45 +0000 Subject: [PATCH] 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 --- sys/kern/subr_prf.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/sys/kern/subr_prf.c b/sys/kern/subr_prf.c index 6fa556ec3b2d..91418229ae72 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--);