# HG changeset patch # User Katsumi Yamaoka # Date 1291362574 0 # Node ID cd612a84ed021ec44a9c5fa377f66385829bb6d9 # Parent 6b5648605b5105da914fa5a98779c5470847c688 gnus-util.el (gnus-macroexpand-all): Allow optional argument `environment'. diff -r 6b5648605b51 -r cd612a84ed02 lisp/gnus/ChangeLog --- 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 - * 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 diff -r 6b5648605b51 -r cd612a84ed02 lisp/gnus/gnus-util.el --- 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)))