Commit 9778055f authored by Katsumi Yamaoka's avatar Katsumi Yamaoka
Browse files

gnus-util.el (gnus-macroexpand-all): Allow optional argument `environment'.

parent 115e0ebf
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>
......
......@@ -2036,9 +2036,11 @@ Same as `string-match' except this function does not change the match data."
(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 @@ If no macros are expanded, FORM is returned unchanged."
(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)))
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment