Mercurial > emacs
changeset 20816:6397d7a97277
(float_to_string): Handle infinities and NaN specially.
author | Richard M. Stallman <rms@gnu.org> |
---|---|
date | Mon, 02 Feb 1998 01:09:35 +0000 |
parents | d5ae7491d2b0 |
children | 297fefd12ecf |
files | src/print.c |
diffstat | 1 files changed, 20 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/src/print.c Mon Feb 02 01:08:52 1998 +0000 +++ b/src/print.c Mon Feb 02 01:09:35 1998 +0000 @@ -956,6 +956,26 @@ unsigned char *cp; int width; + /* Check for plus infinity in a way that won't lose + if there is no plus infinity. */ + if (data == data / 2 && data > 1.0) + { + strcpy (buf, "1.0e+INF"); + return; + } + /* Likewise for minus infinity. */ + if (data == data / 2 && data < -1.0) + { + strcpy (buf, "-1.0e+INF"); + return; + } + /* Check for NaN in a way that won't fail if there are no NaNs. */ + if (! (data * 0.0 >= 0.0)) + { + strcpy (buf, "0.0e+NaN"); + return; + } + if (NILP (Vfloat_output_format) || !STRINGP (Vfloat_output_format)) lose: