[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] Changes to emacs/src/lread.c
From: |
Richard M . Stallman |
Subject: |
[Emacs-diffs] Changes to emacs/src/lread.c |
Date: |
Sat, 25 Jun 2005 00:31:50 -0400 |
Index: emacs/src/lread.c
diff -c emacs/src/lread.c:1.332 emacs/src/lread.c:1.333
*** emacs/src/lread.c:1.332 Thu Jun 23 16:10:06 2005
--- emacs/src/lread.c Sat Jun 25 04:31:49 2005
***************
*** 2595,2600 ****
--- 2595,2617 ----
break;
case 'N':
value = zero / zero;
+
+ /* If that made a "negative" NaN, negate it. */
+
+ {
+ int i;
+ union { double d; char c[sizeof (double)]; } u_data,
u_minus_zero;
+
+ u_data.d = value;
+ u_minus_zero.d = - 0.0;
+ for (i = 0; i < sizeof (double); i++)
+ if (u_data.c[i] & u_minus_zero.c[i])
+ {
+ value = - value;
+ break;
+ }
+ }
+ /* Now VALUE is a positive NaN. */
break;
default:
value = atof (read_buffer + negative);