diff options
| author | Eli Zaretskii | 2003-12-29 13:51:54 +0000 |
|---|---|---|
| committer | Eli Zaretskii | 2003-12-29 13:51:54 +0000 |
| commit | 74a47d1fba2e5b01db681f75e35f2f78af62fc7c (patch) | |
| tree | edff1fd28d7f8c450daa6ebef2e2f4678ef3db43 | |
| parent | d9c4f5125eb30ebadd49971678c76617aebdac9c (diff) | |
| download | emacs-74a47d1fba2e5b01db681f75e35f2f78af62fc7c.tar.gz emacs-74a47d1fba2e5b01db681f75e35f2f78af62fc7c.zip | |
(internal_equal): Return t for two NaN arguments.
| -rw-r--r-- | src/fns.c | 10 |
1 files changed, 9 insertions, 1 deletions
| @@ -2169,7 +2169,15 @@ internal_equal (o1, o2, depth) | |||
| 2169 | switch (XTYPE (o1)) | 2169 | switch (XTYPE (o1)) |
| 2170 | { | 2170 | { |
| 2171 | case Lisp_Float: | 2171 | case Lisp_Float: |
| 2172 | return (extract_float (o1) == extract_float (o2)); | 2172 | { |
| 2173 | double d1, d2; | ||
| 2174 | |||
| 2175 | d1 = extract_float (o1); | ||
| 2176 | d2 = extract_float (o2); | ||
| 2177 | /* If d is a NaN, then d != d. Two NaNs should be `equal' even | ||
| 2178 | though they are not =. */ | ||
| 2179 | return d1 == d2 || (d1 != d1 && d2 != d2); | ||
| 2180 | } | ||
| 2173 | 2181 | ||
| 2174 | case Lisp_Cons: | 2182 | case Lisp_Cons: |
| 2175 | if (!internal_equal (XCAR (o1), XCAR (o2), depth + 1)) | 2183 | if (!internal_equal (XCAR (o1), XCAR (o2), depth + 1)) |