# HG changeset patch # User Eli Zaretskii # Date 1072705914 0 # Node ID 6658b72a5f99223b800ddbd4bcd7d4a056352eed # Parent b1e278aa05937a84572032531b84f03240a517ae (internal_equal): Return t for two NaN arguments. diff -r b1e278aa0593 -r 6658b72a5f99 src/fns.c --- a/src/fns.c Mon Dec 29 13:44:14 2003 +0000 +++ b/src/fns.c Mon Dec 29 13:51:54 2003 +0000 @@ -2169,7 +2169,15 @@ 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))