# HG changeset patch # User Chong Yidong # Date 1264286643 18000 # Node ID a1f2277cc4097705e9b2a47dcb73bf22e32a8943 # Parent d189e0755f3005d48e530585c3d4c9c112e62d57 * emacs-lisp/assoc.el (aput, adelete, amake): Use lexical-let (Bug#5450). diff -r d189e0755f30 -r a1f2277cc409 lisp/ChangeLog --- 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 + + * emacs-lisp/assoc.el (aput, adelete, amake): Use lexical-let (Bug#5450). + 2010-01-23 Stephen Leake * progmodes/ada-mode.el (ada-in-paramlist-p): Pragma syntax diff -r d189e0755f30 -r a1f2277cc409 lisp/emacs-lisp/assoc.el --- 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