(add-to-list): Don't continue checking if a match has
authorDavid Kastrup <dak@gnu.org>
Mon, 30 Oct 2006 22:49:04 +0000 (22:49 +0000)
committerDavid Kastrup <dak@gnu.org>
Mon, 30 Oct 2006 22:49:04 +0000 (22:49 +0000)
been found.

lisp/ChangeLog
lisp/subr.el

index 9be9e30..c1902d0 100644 (file)
@@ -1,3 +1,8 @@
+2006-10-30  David Kastrup  <dak@gnu.org>
+
+       * subr.el (add-to-list): Don't continue checking if a match has
+       been found.
+
 2006-10-30  Chong Yidong  <cyd@stupidchicken.com>
 
        * tutorial.el: Move defvars to avoid bytecomp warnings.
index 43ecfd5..cf09264 100644 (file)
@@ -1108,11 +1108,11 @@ other hooks, such as major mode hooks, can do the job."
        ((eq compare-fn 'eql)
        (memql element (symbol-value list-var)))
        (t
-       (let (present)
-         (dolist (elt (symbol-value list-var))
-           (if (funcall compare-fn element elt)
-               (setq present t)))
-         present)))
+       (let ((lst (symbol-value list-var)))
+         (while (and lst
+                     (not (funcall compare-fn element (car lst))))
+           (setq lst (cdr lst)))
+          lst)))
       (symbol-value list-var)
     (set list-var
         (if append