]> git.eshelyaron.com Git - emacs.git/commitdiff
(pushnew-internal): Remove defvar.
authorKim F. Storm <storm@cua.dk>
Tue, 3 Oct 2006 09:19:17 +0000 (09:19 +0000)
committerKim F. Storm <storm@cua.dk>
Tue, 3 Oct 2006 09:19:17 +0000 (09:19 +0000)
(pushnew): Fix last change.

lisp/emacs-lisp/cl.el

index 3399f7e7b20d4d826673c3213110b53fa863e705..d2d68189230a3ca72353635fc8aa55cb61d7e19d 100644 (file)
@@ -149,8 +149,6 @@ be a symbol, or any generalized variable allowed by `setf'."
   (if (symbolp place) (list 'setq place (list 'cons x place))
     (list 'callf2 'cons x place)))
 
-(defvar pushnew-internal)
-
 (defmacro pushnew (x place &rest keys)
   "(pushnew X PLACE): insert X at the head of the list if not already there.
 Like (push X PLACE), except that the list is unmodified if X is `eql' to
@@ -159,7 +157,8 @@ an element already on the list.
 \n(fn X PLACE [KEYWORD VALUE]...)"
   (if (symbolp place)
       (if (null keys)
-         `(if (memql ,x ,place) ,place (setq ,place (cons ,x ,place)))
+         `(let ((x ,x))
+            (if (memql x ,place) ,place (setq ,place (cons x ,place))))
        (list 'setq place (list* 'adjoin x place keys)))
     (list* 'callf2 'adjoin x place keys)))