diff options
| author | Paul Eggert | 2019-08-24 12:43:50 -0700 |
|---|---|---|
| committer | Paul Eggert | 2019-08-24 15:55:08 -0700 |
| commit | 575179f74d9b80ee468ae39239c853546da8de43 (patch) | |
| tree | a91e8a8f05aec991d1040d56ef0eb59e446bcb55 /src/data.c | |
| parent | b62eac0f870754bc75b1162246f9901a04910044 (diff) | |
| download | emacs-575179f74d9b80ee468ae39239c853546da8de43.tar.gz emacs-575179f74d9b80ee468ae39239c853546da8de43.zip | |
Make (mod 1.0 0) consistent with (/ 1.0 0)
* src/data.c (Fmod): Do not signal an error for (mod 1.0 0), for
the same reason (/ 1.0 0) does not signal an error.
* test/src/data-tests.el (data-tests-mod-0): New test.
Diffstat (limited to 'src/data.c')
| -rw-r--r-- | src/data.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/data.c b/src/data.c index 38968359a50..dfc8a892f5e 100644 --- a/src/data.c +++ b/src/data.c | |||
| @@ -3117,12 +3117,14 @@ Both X and Y must be numbers or markers. */) | |||
| 3117 | { | 3117 | { |
| 3118 | CHECK_NUMBER_COERCE_MARKER (x); | 3118 | CHECK_NUMBER_COERCE_MARKER (x); |
| 3119 | CHECK_NUMBER_COERCE_MARKER (y); | 3119 | CHECK_NUMBER_COERCE_MARKER (y); |
| 3120 | if (FLOATP (x) || FLOATP (y)) | ||
| 3121 | return fmod_float (x, y); | ||
| 3120 | 3122 | ||
| 3121 | /* A bignum can never be 0, so don't check that case. */ | 3123 | /* A bignum can never be 0, so don't check that case. */ |
| 3122 | if (EQ (y, make_fixnum (0))) | 3124 | if (EQ (y, make_fixnum (0))) |
| 3123 | xsignal0 (Qarith_error); | 3125 | xsignal0 (Qarith_error); |
| 3124 | 3126 | ||
| 3125 | return (FLOATP (x) || FLOATP (y) ? fmod_float : integer_mod) (x, y); | 3127 | return integer_mod (x, y); |
| 3126 | } | 3128 | } |
| 3127 | 3129 | ||
| 3128 | static Lisp_Object | 3130 | static Lisp_Object |