Mail Archives: djgpp-workers/1998/11/08/07:52:04
This allows to print +/-NaN with "%+f".
*** src/libc/ansi/stdio/doprnt.c~0 Sun Sep 27 15:23:10 1998
--- src/libc/ansi/stdio/doprnt.c Fri Nov 6 19:02:18 1998
*************** _doprnt(const char *fmt0, va_list argp,
*** 266,274 ****
/*
* If the format specifier requested an explicit sign,
* we print a negative sign even if no significant digits
! * will be shown. In other words, "%+f" might yield -0.000000.
*/
! if (!nan && (softsign || (sign == '+' && neg_ldouble)))
sign = '-';
nan = 0;
t = *buf ? buf : buf + 1;
--- 266,275 ----
/*
* If the format specifier requested an explicit sign,
* we print a negative sign even if no significant digits
! * will be shown, and we also print a sign for a NaN. In
! * other words, "%+f" might print -0.000000, +NaN and -NaN.
*/
! if (softsign || (sign == '+' && (neg_ldouble || nan == -1)))
sign = '-';
nan = 0;
t = *buf ? buf : buf + 1;
*************** isspeciall(long double d, char *bufp)
*** 867,874 ****
if ((ip->manh & 0x7fffffff) || ip->manl)
{
strcpy(bufp, "NaN");
! nan = 1; /* kludge: we don't need the sign, it's not nice
! but it should work */
}
else
(void)strcpy(bufp, "Inf");
--- 868,875 ----
if ((ip->manh & 0x7fffffff) || ip->manl)
{
strcpy(bufp, "NaN");
! nan = ip->sign ? -1 : 1; /* kludge: we don't need the sign, it's not nice
! but it should work */
}
else
(void)strcpy(bufp, "Inf");
- Raw text -