Don't display trailing '.' in _dcvt

In the two helper functions that _dcvt calls for 'f' and 'e' mode, if
there are no digits to display after the decimal point, don't add one.

Signed-off-by: Keith Packard <keithp@keithp.com>
This commit is contained in:
Keith Packard 2019-12-17 22:00:49 -08:00 committed by Corinna Vinschen
parent 11f99384d2
commit 76dcfd0c4d
1 changed files with 12 additions and 3 deletions

View File

@ -93,7 +93,8 @@ print_f (struct _reent *ptr,
{
if (p == start)
*buf++ = '0';
*buf++ = '.';
if (decpt < 0 && ndigit > 0)
*buf++ = '.';
while (decpt < 0 && ndigit > 0)
{
*buf++ = '0';
@ -148,11 +149,15 @@ print_e (struct _reent *ptr,
}
*buf++ = *p++;
if (dot || ndigit != 0)
*buf++ = '.';
if (ndigit > 0)
dot = 1;
while (*p && ndigit > 0)
{
if (dot) {
*buf++ = '.';
dot = 0;
}
*buf++ = *p++;
ndigit--;
}
@ -168,6 +173,10 @@ print_e (struct _reent *ptr,
{
while (ndigit > 0)
{
if (dot) {
*buf++ = '.';
dot = 0;
}
*buf++ = '0';
ndigit--;
}