]> git.eshelyaron.com Git - emacs.git/commitdiff
(internal_equal): Return t for two NaN arguments.
authorEli Zaretskii <eliz@is.elta.co.il>
Mon, 29 Dec 2003 13:51:54 +0000 (13:51 +0000)
committerEli Zaretskii <eliz@is.elta.co.il>
Mon, 29 Dec 2003 13:51:54 +0000 (13:51 +0000)
src/fns.c

index e4252c98ca5fd7517a22d2765c02fd8cadf4fcc9..ff40c706edd372fc642bc404bdec3533c97b245f 100644 (file)
--- a/src/fns.c
+++ b/src/fns.c
@@ -2169,7 +2169,15 @@ internal_equal (o1, o2, depth)
   switch (XTYPE (o1))
     {
     case Lisp_Float:
-      return (extract_float (o1) == extract_float (o2));
+      {
+       double d1, d2;
+
+       d1 = extract_float (o1);
+       d2 = extract_float (o2);
+       /* If d is a NaN, then d != d. Two NaNs should be `equal' even
+          though they are not =. */
+       return d1 == d2 || (d1 != d1 && d2 != d2);
+      }
 
     case Lisp_Cons:
       if (!internal_equal (XCAR (o1), XCAR (o2), depth + 1))