From 7513a7dcd41f511878c9886b41685d9212679e7f Mon Sep 17 00:00:00 2001 From: Sheldon Hearn <sheldonh@FreeBSD.org> Date: Wed, 22 Dec 1999 14:59:58 +0000 Subject: [PATCH] Fix zero-padding for printf formats which include a precision or width. This is a vendor-supplied patch. Requested by: bde Submitted by: Aharon Robbins <arnold@skeeve.com> --- contrib/awk/builtin.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/contrib/awk/builtin.c b/contrib/awk/builtin.c index a4e5a0812cf6..00ff75707f99 100644 --- a/contrib/awk/builtin.c +++ b/contrib/awk/builtin.c @@ -459,7 +459,13 @@ register NODE *carg; break; case '0': - zero_flag = TRUE; + /* + * Only turn on zero_flag if we haven't seen + * the field width or precision yet. Otherwise, + * screws up floating point formatting. + */ + if (cur == & fw) + zero_flag = TRUE; if (lj) goto retry; /* FALL through */ @@ -1998,7 +2004,7 @@ NODE *tree; free_temp(tmp); if (do_lint) { - if (uval < 0) + if (d < 0) warning("compl(%lf): negative value will give strange results", d); if (double_to_int(d) != d) warning("compl(%lf): fractional value will be truncated", d);