* emacs-lisp/cl-macs.el (cl-macrolet): Simplify last change.

This commit is contained in:
Leo Liu 2014-06-06 07:08:59 +08:00
parent dd97cafcf2
commit d4e355b45d

View file

@ -1886,15 +1886,13 @@ This is like `cl-flet', but for macros instead of functions.
cl-declarations body))) cl-declarations body)))
(if (cdr bindings) (if (cdr bindings)
`(cl-macrolet (,(car bindings)) (cl-macrolet ,(cdr bindings) ,@body)) `(cl-macrolet (,(car bindings)) (cl-macrolet ,(cdr bindings) ,@body))
(let ((progn-maybe (lambda (body) (if (null bindings) (macroexp-progn body)
(if (cdr body) (cons 'progn body) (car body)))))
(if (null bindings) (funcall progn-maybe body)
(let* ((name (caar bindings)) (let* ((name (caar bindings))
(res (cl--transform-lambda (cdar bindings) name))) (res (cl--transform-lambda (cdar bindings) name)))
(eval (car res)) (eval (car res))
(macroexpand-all (funcall progn-maybe body) (macroexpand-all (macroexp-progn body)
(cons (cons name `(lambda ,@(cdr res))) (cons (cons name `(lambda ,@(cdr res)))
macroexpand-all-environment))))))) macroexpand-all-environment))))))
(defconst cl--old-macroexpand (defconst cl--old-macroexpand
(if (and (boundp 'cl--old-macroexpand) (if (and (boundp 'cl--old-macroexpand)