From fa1067535a6978a2ea7dfef56a7c1de9542c7ccd Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Mon, 7 Jun 1999 15:53:16 +0000 Subject: [PATCH] (__printf_fphex): Don't ignore the precision if the mantissa is zero. --- sysdeps/generic/printf_fphex.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/sysdeps/generic/printf_fphex.c b/sysdeps/generic/printf_fphex.c index 00dd8eed1d5..e6e6e2c2b54 100644 --- a/sysdeps/generic/printf_fphex.c +++ b/sysdeps/generic/printf_fphex.c @@ -405,7 +405,11 @@ __printf_fphex (FILE *fp, } } else - numend = numstr; + { + if (precision == -1) + precision = 0; + numend = numstr; + } /* Now we can compute the exponent string. */ expstr = _itoa_word (exponent, expbuf + sizeof expbuf, 10, 0); @@ -420,7 +424,7 @@ __printf_fphex (FILE *fp, /* A special case when the mantissa or the precision is zero and the `#' is not given. In this case we must not print the decimal point. */ - if ((zero_mantissa || precision == 0) && !info->alt) + if (precision == 0 && !info->alt) ++width; /* This nihilates the +1 for the decimal-point character in the following equation. */ @@ -438,10 +442,10 @@ __printf_fphex (FILE *fp, outchar (info->spec == 'A' ? 'X' : 'x'); outchar (leading); - if ((!zero_mantissa && precision > 0) || info->alt) + if (precision > 0 || info->alt) outchar (decimal); - if (!zero_mantissa && precision > 0) + if (precision > 0) { PRINT (numstr, MIN (numend - numstr, precision)); if (precision > numend - numstr) -- 2.47.3