From: Eli Zaretskii Date: Mon, 29 Dec 2003 13:51:54 +0000 (+0000) Subject: (internal_equal): Return t for two NaN arguments. X-Git-Tag: ttn-vms-21-2-B4~8096 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=74a47d1fba2e5b01db681f75e35f2f78af62fc7c;p=emacs.git (internal_equal): Return t for two NaN arguments. --- diff --git a/src/fns.c b/src/fns.c index e4252c98ca5..ff40c706edd 100644 --- 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))