gnus-util.el ( gnus-macroexpand-all ) : Allow optional argument `environment'.
authorKatsumi Yamaoka <yamaoka@jpl.org>
Fri, 3 Dec 2010 07:49:20 +0000 (07:49 +0000)
committerKatsumi Yamaoka <yamaoka@jpl.org>
Fri, 3 Dec 2010 07:49:20 +0000 (07:49 +0000)
lisp/ChangeLog
lisp/gnus-util.el

index 50e9f34..767eee2 100644 (file)
@@ -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>
 
index 1f391f0..1ba10f4 100644 (file)
@@ -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)))