aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArtur Malabarba2014-12-18 18:32:56 -0200
committerArtur Malabarba2014-12-18 18:33:28 -0200
commit17589518728e247e7574e9b61502c3ff5cf9dc67 (patch)
treea018b05dff7d9418de4c7bc9f7bc92aaf18c8279
parentf87eff571ab7ca477e4b8ccb68a2eb306426f11e (diff)
downloademacs-17589518728e247e7574e9b61502c3ff5cf9dc67.tar.gz
emacs-17589518728e247e7574e9b61502c3ff5cf9dc67.zip
lisp/let-alist.el (let-alist): Evaluate `alist' only once.
-rw-r--r--lisp/ChangeLog5
-rw-r--r--lisp/let-alist.el8
2 files changed, 10 insertions, 3 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 8978bde017d..9828b845368 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,8 @@
12014-12-18 Artur Malabarba <bruce.connor.am@gmail.com>
2
3 * let-alist.el (let-alist): Evaluate the `alist' argument only
4 once.
5
12014-12-18 Sam Steingold <sds@gnu.org> 62014-12-18 Sam Steingold <sds@gnu.org>
2 7
3 * emacs-lisp/package.el: Avoid compilation warning by declaring 8 * emacs-lisp/package.el: Avoid compilation warning by declaring
diff --git a/lisp/let-alist.el b/lisp/let-alist.el
index 2efa027c449..8f02404cbdf 100644
--- a/lisp/let-alist.el
+++ b/lisp/let-alist.el
@@ -94,9 +94,11 @@ expands to
94 .body 94 .body
95 .site))" 95 .site))"
96 (declare (indent 1) (debug t)) 96 (declare (indent 1) (debug t))
97 `(let ,(mapcar (lambda (x) `(,(car x) (cdr (assq ',(cdr x) ,alist)))) 97 (let ((var (gensym "let-alist")))
98 (delete-dups (let-alist--deep-dot-search body))) 98 `(let ((,var ,alist)
99 ,@body)) 99 (let ,(mapcar (lambda (x) `(,(car x) (cdr (assq ',(cdr x) ,var))))
100 (delete-dups (let-alist--deep-dot-search body)))
101 ,@body)))))
100 102
101(provide 'let-alist) 103(provide 'let-alist)
102 104