]> git.eshelyaron.com Git - emacs.git/commitdiff
(Fmemq): Refill doc string.
authorKim F. Storm <storm@cua.dk>
Wed, 20 Sep 2006 23:07:17 +0000 (23:07 +0000)
committerKim F. Storm <storm@cua.dk>
Wed, 20 Sep 2006 23:07:17 +0000 (23:07 +0000)
(Fmemql): New defun, like memq but using eql.
(syms_of_fns): Defsubr it.

src/fns.c

index f9f4b72529eaa89ec8a36fe688d2bcbf33d8a014..e769f40cc88d2a15146ea53dc9f3b70a044c5473 100644 (file)
--- a/src/fns.c
+++ b/src/fns.c
@@ -1464,11 +1464,10 @@ The value is actually the tail of LIST whose car is ELT.  */)
 }
 
 DEFUN ("memq", Fmemq, Smemq, 2, 2, 0,
-       doc: /* Return non-nil if ELT is an element of LIST.
-Comparison done with `eq'.  The value is actually the tail of LIST
-whose car is ELT.  */)
+doc: /* Return non-nil if ELT is an element of LIST.  Comparison done with `eq'.
+The value is actually the tail of LIST whose car is ELT.  */)
      (elt, list)
-     Lisp_Object elt, list;
+     register Lisp_Object elt, list;
 {
   while (1)
     {
@@ -1491,6 +1490,30 @@ whose car is ELT.  */)
   return list;
 }
 
+DEFUN ("memql", Fmemql, Smemql, 2, 2, 0,
+doc: /* Return non-nil if ELT is an element of LIST.  Comparison done with `eql'.
+The value is actually the tail of LIST whose car is ELT.  */)
+     (elt, list)
+     register Lisp_Object elt;
+     Lisp_Object list;
+{
+  register Lisp_Object tail;
+
+  if (!FLOATP (elt))
+    return Fmemq (elt, list);
+
+  for (tail = list; !NILP (tail); tail = XCDR (tail))
+    {
+      register Lisp_Object tem;
+      CHECK_LIST_CONS (tail, list);
+      tem = XCAR (tail);
+      if (FLOATP (tem) && internal_equal (elt, tem, 0, 0))
+       return tail;
+      QUIT;
+    }
+  return Qnil;
+}
+
 DEFUN ("assq", Fassq, Sassq, 2, 2, 0,
        doc: /* Return non-nil if KEY is `eq' to the car of an element of LIST.
 The value is actually the first element of LIST whose car is KEY.
@@ -5833,6 +5856,7 @@ used if both `use-dialog-box' and this variable are non-nil.  */);
   defsubr (&Selt);
   defsubr (&Smember);
   defsubr (&Smemq);
+  defsubr (&Smemql);
   defsubr (&Sassq);
   defsubr (&Sassoc);
   defsubr (&Srassq);