diff options
| author | Tom Tromey | 2018-07-07 15:32:30 -0600 |
|---|---|---|
| committer | Tom Tromey | 2018-07-12 22:12:27 -0600 |
| commit | 580d173b9a7db78f6d62972ef8e943d31dde5c9d (patch) | |
| tree | 6bfb857bfdded11f356f11424b11131a0a9d6bba /src | |
| parent | b2f3f4ee29ba8510d3cad8025d9ce2c2014b1b7f (diff) | |
| download | emacs-580d173b9a7db78f6d62972ef8e943d31dde5c9d.tar.gz emacs-580d173b9a7db78f6d62972ef8e943d31dde5c9d.zip | |
Make eql work for bignums
* src/fns.c (Feql, internal_equal): Handle bignums.
Diffstat (limited to 'src')
| -rw-r--r-- | src/fns.c | 4 |
1 files changed, 3 insertions, 1 deletions
| @@ -2174,7 +2174,7 @@ DEFUN ("eql", Feql, Seql, 2, 2, 0, | |||
| 2174 | Floating-point numbers of equal value are `eql', but they may not be `eq'. */) | 2174 | Floating-point numbers of equal value are `eql', but they may not be `eq'. */) |
| 2175 | (Lisp_Object obj1, Lisp_Object obj2) | 2175 | (Lisp_Object obj1, Lisp_Object obj2) |
| 2176 | { | 2176 | { |
| 2177 | if (FLOATP (obj1)) | 2177 | if (FLOATP (obj1) || BIGNUMP (obj1)) |
| 2178 | return equal_no_quit (obj1, obj2) ? Qt : Qnil; | 2178 | return equal_no_quit (obj1, obj2) ? Qt : Qnil; |
| 2179 | else | 2179 | else |
| 2180 | return EQ (obj1, obj2) ? Qt : Qnil; | 2180 | return EQ (obj1, obj2) ? Qt : Qnil; |
| @@ -2322,6 +2322,8 @@ internal_equal (Lisp_Object o1, Lisp_Object o2, enum equal_kind equal_kind, | |||
| 2322 | && (XMARKER (o1)->buffer == 0 | 2322 | && (XMARKER (o1)->buffer == 0 |
| 2323 | || XMARKER (o1)->bytepos == XMARKER (o2)->bytepos)); | 2323 | || XMARKER (o1)->bytepos == XMARKER (o2)->bytepos)); |
| 2324 | } | 2324 | } |
| 2325 | if (BIGNUMP (o1)) | ||
| 2326 | return mpz_cmp (XBIGNUM (o1)->value, XBIGNUM (o2)->value) == 0; | ||
| 2325 | break; | 2327 | break; |
| 2326 | 2328 | ||
| 2327 | case Lisp_Vectorlike: | 2329 | case Lisp_Vectorlike: |