changeset 109015:6807b98d5522

* lisp/emacs-lisp/macroexp.el (macroexpand-all-1): Put back special handling for `lambda' (misunderstanding).
author Stefan Monnier <monnier@iro.umontreal.ca>
date Wed, 16 Jun 2010 20:17:22 -0400
parents 8020ce418135
children d73c5483c3d2 8d7eaaac8fbe
files lisp/ChangeLog lisp/emacs-lisp/macroexp.el
diffstat 2 files changed, 10 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/ChangeLog	Wed Jun 16 18:27:20 2010 -0500
+++ b/lisp/ChangeLog	Wed Jun 16 20:17:22 2010 -0400
@@ -1,3 +1,8 @@
+2010-06-17  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+	* emacs-lisp/macroexp.el (macroexpand-all-1): Put back special
+	handling for `lambda' (misunderstanding).
+
 2010-06-16  Jay Belanger  <jay.p.belanger@gmail.com>
 
 	* calc/calc-poly.el: (math-accum-factors):  Make sure that
--- a/lisp/emacs-lisp/macroexp.el	Wed Jun 16 18:27:20 2010 -0500
+++ b/lisp/emacs-lisp/macroexp.el	Wed Jun 16 20:17:22 2010 -0400
@@ -145,6 +145,11 @@
 			form))
 	   ((eq fun 'quote)
 	    form)
+	   ((and (consp fun) (eq (car fun) 'lambda))
+	    ;; Embedded lambda in function position.
+	    (maybe-cons (macroexpand-all-forms fun 2)
+			(macroexpand-all-forms (cdr form))
+			form))
 	   ;; The following few cases are for normal function calls that
 	   ;; are known to funcall one of their arguments.  The byte
 	   ;; compiler has traditionally handled these functions specially