diff options
author | Stefan Monnier <monnier@iro.umontreal.ca> | 2013-11-07 14:30:43 -0500 |
---|---|---|
committer | Stefan Monnier <monnier@iro.umontreal.ca> | 2013-11-07 14:30:43 -0500 |
commit | 3220d5279d488e51afb3a49cda5c48fa9ca4e36c (patch) | |
tree | 40b3ac741ea2e9699843feaed5f77de0161cdf4a /lisp/emacs-lisp | |
parent | 1eb1f9e08272246c5ac5533622bf069249cc73b4 (diff) | |
download | emacs-3220d5279d488e51afb3a49cda5c48fa9ca4e36c.tar.gz emacs-3220d5279d488e51afb3a49cda5c48fa9ca4e36c.tar.bz2 emacs-3220d5279d488e51afb3a49cda5c48fa9ca4e36c.zip |
* lisp/emacs-lisp/cl-macs.el (cl-symbol-macrolet): Use macroexp-progn.
(cl--block-wrapper): Fix last accidental change.
Diffstat (limited to 'lisp/emacs-lisp')
-rw-r--r-- | lisp/emacs-lisp/cl-macs.el | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/lisp/emacs-lisp/cl-macs.el b/lisp/emacs-lisp/cl-macs.el index bd97bcb585c..2209297d553 100644 --- a/lisp/emacs-lisp/cl-macs.el +++ b/lisp/emacs-lisp/cl-macs.el @@ -1993,9 +1993,8 @@ by EXPANSION, and (setq NAME ...) will act like (setf EXPANSION ...). (progn (fset 'macroexpand #'cl--sm-macroexpand) (let ((expansion - ;; FIXME: For N bindings, this will traverse `body' - ;; N times! - (macroexpand-all (cons 'progn body) + ;; FIXME: For N bindings, this will traverse `body' N times! + (macroexpand-all (macroexp-progn body) (cons (list (symbol-name (caar bindings)) (cl-cadar bindings)) macroexpand-all-environment)))) @@ -2739,7 +2738,7 @@ macro that returns its `&whole' argument." ;; FIXME: To avoid re-applying macroexpand-all, we'd like to be able ;; to indicate that this return value is already fully expanded. (if (cdr cl-entry) - `(catch ,(nth 1 cl-form) ,@(cdr cl-body)) + `(catch ,(nth 1 cl-form) ,@(macroexp-unprogn cl-body)) cl-body))) (cl-define-compiler-macro cl--block-throw (cl-tag cl-value) |