aboutsummaryrefslogtreecommitdiffstats
path: root/src/data.c
diff options
context:
space:
mode:
authorPaul Eggert2019-08-24 12:43:50 -0700
committerPaul Eggert2019-08-24 15:55:08 -0700
commit575179f74d9b80ee468ae39239c853546da8de43 (patch)
treea91e8a8f05aec991d1040d56ef0eb59e446bcb55 /src/data.c
parentb62eac0f870754bc75b1162246f9901a04910044 (diff)
downloademacs-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.c4
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
3128static Lisp_Object 3130static Lisp_Object