changeset 111804:cd612a84ed02

gnus-util.el (gnus-macroexpand-all): Allow optional argument `environment'.
author Katsumi Yamaoka <yamaoka@jpl.org>
date Fri, 03 Dec 2010 07:49:34 +0000
parents 6b5648605b51
children e0c65fdcc070
files lisp/gnus/ChangeLog lisp/gnus/gnus-util.el
diffstat 2 files changed, 7 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/gnus/ChangeLog	Fri Dec 03 04:39:36 2010 +0000
+++ b/lisp/gnus/ChangeLog	Fri Dec 03 07:49:34 2010 +0000
@@ -1,6 +1,7 @@
 2010-12-03  Katsumi Yamaoka  <yamaoka@jpl.org>
 
-	* gnus-util.el (gnus-macroexpand-all): Don't modify argument.
+	* gnus-util.el (gnus-macroexpand-all): Don't modify argument;
+	allow optional argument `environment'.
 
 2010-12-03  Glenn Morris  <rgm@gnu.org>
 
--- a/lisp/gnus/gnus-util.el	Fri Dec 03 04:39:36 2010 +0000
+++ b/lisp/gnus/gnus-util.el	Fri Dec 03 07:49:34 2010 +0000
@@ -2036,9 +2036,11 @@
 
 (if (fboundp 'macroexpand-all)
     (defalias 'gnus-macroexpand-all 'macroexpand-all)
-  (defun gnus-macroexpand-all (form)
+  (defun gnus-macroexpand-all (form &optional environment)
     "Return result of expanding macros at all levels in FORM.
-If no macros are expanded, FORM is returned unchanged."
+If no macros are expanded, FORM is returned unchanged.
+The second optional arg ENVIRONMENT specifies an environment of macro
+definitions to shadow the loaded ones for use in file byte-compilation."
     (if (consp form)
 	(let ((idx 1)
 	      (len (length (setq form (copy-sequence form))))
@@ -2046,7 +2048,7 @@
 	  (while (< idx len)
 	    (setcar (nthcdr idx form) (gnus-macroexpand-all (nth idx form)))
 	    (setq idx (1+ idx)))
-	  (if (eq (setq expanded (macroexpand form)) form)
+	  (if (eq (setq expanded (macroexpand form environment)) form)
 	      form
 	    (gnus-macroexpand-all expanded)))
       form)))