From: Leo Liu Date: Thu, 5 Jun 2014 23:08:59 +0000 (+0800) Subject: * emacs-lisp/cl-macs.el (cl-macrolet): Simplify last change. X-Git-Tag: emacs-25.0.90~2612^2~709^2~762 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=d4e355b45d82104ea29cd31becb4b5d0fc0325b8;p=emacs.git * emacs-lisp/cl-macs.el (cl-macrolet): Simplify last change. --- diff --git a/lisp/emacs-lisp/cl-macs.el b/lisp/emacs-lisp/cl-macs.el index 299cffc83aa..ce54337a3b1 100644 --- a/lisp/emacs-lisp/cl-macs.el +++ b/lisp/emacs-lisp/cl-macs.el @@ -1886,15 +1886,13 @@ This is like `cl-flet', but for macros instead of functions. cl-declarations body))) (if (cdr bindings) `(cl-macrolet (,(car bindings)) (cl-macrolet ,(cdr bindings) ,@body)) - (let ((progn-maybe (lambda (body) - (if (cdr body) (cons 'progn body) (car body))))) - (if (null bindings) (funcall progn-maybe body) - (let* ((name (caar bindings)) - (res (cl--transform-lambda (cdar bindings) name))) - (eval (car res)) - (macroexpand-all (funcall progn-maybe body) - (cons (cons name `(lambda ,@(cdr res))) - macroexpand-all-environment))))))) + (if (null bindings) (macroexp-progn body) + (let* ((name (caar bindings)) + (res (cl--transform-lambda (cdar bindings) name))) + (eval (car res)) + (macroexpand-all (macroexp-progn body) + (cons (cons name `(lambda ,@(cdr res))) + macroexpand-all-environment)))))) (defconst cl--old-macroexpand (if (and (boundp 'cl--old-macroexpand)