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);
_______________________________________________
Emacs-diffs mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/emacs-diffs