From 3220d5279d488e51afb3a49cda5c48fa9ca4e36c Mon Sep 17 00:00:00 2001 From: Stefan Monnier Date: Thu, 7 Nov 2013 14:30:43 -0500 Subject: [PATCH] * lisp/emacs-lisp/cl-macs.el (cl-symbol-macrolet): Use macroexp-progn. (cl--block-wrapper): Fix last accidental change. --- lisp/ChangeLog | 5 +++++ lisp/emacs-lisp/cl-macs.el | 7 +++---- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index e8bebb17c4f..43e48cacd06 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,8 @@ +2013-11-07 Stefan Monnier + + * emacs-lisp/cl-macs.el (cl-symbol-macrolet): Use macroexp-progn. + (cl--block-wrapper): Fix last accidental change. + 2013-11-07 Michael Albinus * net/tramp-sh.el (tramp-set-remote-path, tramp-get-ls-command): 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) -- 2.39.2