changeset 106963:a1f2277cc409

* emacs-lisp/assoc.el (aput, adelete, amake): Use lexical-let (Bug#5450).
author Chong Yidong <cyd@stupidchicken.com>
date Sat, 23 Jan 2010 17:44:03 -0500
parents d189e0755f30
children 6c7e1a272e9e
files lisp/ChangeLog lisp/emacs-lisp/assoc.el
diffstat 2 files changed, 12 insertions(+), 7 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/ChangeLog	Sat Jan 23 17:15:22 2010 -0500
+++ b/lisp/ChangeLog	Sat Jan 23 17:44:03 2010 -0500
@@ -1,3 +1,7 @@
+2010-01-23  Chong Yidong  <cyd@stupidchicken.com>
+
+	* emacs-lisp/assoc.el (aput, adelete, amake): Use lexical-let (Bug#5450).
+
 2010-01-23  Stephen Leake  <stephen_leake@member.fsf.org>
 
         * progmodes/ada-mode.el (ada-in-paramlist-p): Pragma syntax
--- a/lisp/emacs-lisp/assoc.el	Sat Jan 23 17:15:22 2010 -0500
+++ b/lisp/emacs-lisp/assoc.el	Sat Jan 23 17:44:03 2010 -0500
@@ -27,6 +27,7 @@
 ;; fetching off key-value pairs in association lists.
 
 ;;; Code:
+(eval-when-compile (require 'cl))
 
 (defun asort (alist-symbol key)
   "Move a specified key-value pair to the head of an alist.
@@ -71,8 +72,8 @@
 modified, but will be moved to the head of the alist.  If the key-value
 pair cannot be found in the alist, it will be inserted into the head
 of the alist (with value nil if VALUE is nil or not supplied)."
-  (let ((elem (aelement key value))
-	alist)
+  (lexical-let ((elem (aelement key value))
+		alist)
     (asort alist-symbol key)
     (setq alist (eval alist-symbol))
     (cond ((null alist) (set alist-symbol elem))
@@ -86,7 +87,7 @@
 Alist is referenced by ALIST-SYMBOL and the key-value pair to remove
 is pair matching KEY.  Returns the altered alist."
   (asort alist-symbol key)
-  (let ((alist (eval alist-symbol)))
+  (lexical-let ((alist (eval alist-symbol)))
     (cond ((null alist) nil)
 	  ((anot-head-p alist key) alist)
 	  (t (set alist-symbol (cdr alist))))))
@@ -123,10 +124,10 @@
 this isn't enforced.  If VALUELIST is smaller than KEYLIST, remaining
 keys are associated with nil.  If VALUELIST is larger than KEYLIST,
 extra values are ignored.  Returns the created alist."
-  (let ((keycar (car keylist))
-	(keycdr (cdr keylist))
-	(valcar (car valuelist))
-	(valcdr (cdr valuelist)))
+  (lexical-let ((keycar (car keylist))
+		(keycdr (cdr keylist))
+		(valcar (car valuelist))
+		(valcdr (cdr valuelist)))
     (cond ((null keycdr)
 	   (aput alist-symbol keycar valcar))
 	  (t