Mercurial > emacs
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)))