diff options
| author | Karl Heuer <kwzh@gnu.org> | 1994-03-04 21:21:08 +0000 |
|---|---|---|
| committer | Karl Heuer <kwzh@gnu.org> | 1994-03-04 21:21:08 +0000 |
| commit | 1a2f2d332e66b4549fcc88237e8eeb032b466657 (patch) | |
| tree | 1095cd3282f757635b9dc4fed5d56a7f43a99f17 /src | |
| parent | cffa74ea6cc63d09c0814ccee5248ba3eeda7ecd (diff) | |
| download | emacs-1a2f2d332e66b4549fcc88237e8eeb032b466657.tar.gz | |
(isnan): New macro.
(float_arith_driver): min and max yield NaN if any argument is a NaN.
Diffstat (limited to 'src')
| -rw-r--r-- | src/data.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/data.c b/src/data.c index 59e9e928d6e..adb8d38e3aa 100644 --- a/src/data.c +++ b/src/data.c @@ -1650,6 +1650,10 @@ arith_driver (code, nargs, args) } #ifdef LISP_FLOAT_TYPE + +#undef isnan +#define isnan(x) ((x) != (x)) + Lisp_Object float_arith_driver (accum, argnum, code, nargs, args) double accum; @@ -1707,11 +1711,11 @@ float_arith_driver (accum, argnum, code, nargs, args) case Alogxor: return wrong_type_argument (Qinteger_or_marker_p, val); case Amax: - if (!argnum || next > accum) + if (!argnum || isnan (next) || next > accum) accum = next; break; case Amin: - if (!argnum || next < accum) + if (!argnum || isnan (next) || next < accum) accum = next; break; } |
