emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] feature/bignum 580d173 05/24: Make eql work for bignums


From: Tom Tromey
Subject: [Emacs-diffs] feature/bignum 580d173 05/24: Make eql work for bignums
Date: Fri, 13 Jul 2018 00:25:07 -0400 (EDT)

branch: feature/bignum
commit 580d173b9a7db78f6d62972ef8e943d31dde5c9d
Author: Tom Tromey <address@hidden>
Commit: Tom Tromey <address@hidden>

    Make eql work for bignums
    
    * src/fns.c (Feql, internal_equal): Handle bignums.
---
 src/fns.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/src/fns.c b/src/fns.c
index ec88f84..b14481d 100644
--- a/src/fns.c
+++ b/src/fns.c
@@ -2174,7 +2174,7 @@ DEFUN ("eql", Feql, Seql, 2, 2, 0,
 Floating-point numbers of equal value are `eql', but they may not be `eq'.  */)
   (Lisp_Object obj1, Lisp_Object obj2)
 {
-  if (FLOATP (obj1))
+  if (FLOATP (obj1) || BIGNUMP (obj1))
     return equal_no_quit (obj1, obj2) ? Qt : Qnil;
   else
     return EQ (obj1, obj2) ? Qt : Qnil;
@@ -2322,6 +2322,8 @@ internal_equal (Lisp_Object o1, Lisp_Object o2, enum 
equal_kind equal_kind,
                  && (XMARKER (o1)->buffer == 0
                      || XMARKER (o1)->bytepos == XMARKER (o2)->bytepos));
        }
+      if (BIGNUMP (o1))
+       return mpz_cmp (XBIGNUM (o1)->value, XBIGNUM (o2)->value) == 0;
       break;
 
     case Lisp_Vectorlike:



reply via email to

[Prev in Thread] Current Thread [Next in Thread]