+2013-11-07 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * emacs-lisp/cl-macs.el (cl-symbol-macrolet): Use macroexp-progn.
+ (cl--block-wrapper): Fix last accidental change.
+
2013-11-07 Michael Albinus <michael.albinus@gmx.de>
* net/tramp-sh.el (tramp-set-remote-path, tramp-get-ls-command):
(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))))
;; 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)