changeset 73555:3f351640d09f

(add-to-list): Don't continue checking if a match has been found.
author David Kastrup <dak@gnu.org>
date Mon, 30 Oct 2006 22:49:04 +0000
parents d092f1092ef0
children ebdf9d25121d
files lisp/ChangeLog lisp/subr.el
diffstat 2 files changed, 10 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/ChangeLog	Mon Oct 30 22:15:21 2006 +0000
+++ b/lisp/ChangeLog	Mon Oct 30 22:49:04 2006 +0000
@@ -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.
--- a/lisp/subr.el	Mon Oct 30 22:15:21 2006 +0000
+++ b/lisp/subr.el	Mon Oct 30 22:49:04 2006 +0000
@@ -1108,11 +1108,11 @@
        ((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