]> git.eshelyaron.com Git - emacs.git/commitdiff
gnus-util.el (gnus-macroexpand-all): New function.
authorKatsumi Yamaoka <yamaoka@jpl.org>
Fri, 3 Dec 2010 02:17:23 +0000 (02:17 +0000)
committerKatsumi Yamaoka <yamaoka@jpl.org>
Fri, 3 Dec 2010 02:17:23 +0000 (02:17 +0000)
gnus-sum.el (gnus-summary-line-format-alist): Use gnus-macroexpand-all instead of macroexpand-all that is unavailable in XEmacs.

lisp/gnus/ChangeLog
lisp/gnus/gnus-sum.el
lisp/gnus/gnus-util.el

index 8d4b14fa4565804a23c9a342dc4a9733e8657ddf..1c274a891e5e845f083455a36d2009b7ac204954 100644 (file)
@@ -1,3 +1,10 @@
+2010-12-03  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+       * gnus-util.el (gnus-macroexpand-all): New function.
+
+       * gnus-sum.el (gnus-summary-line-format-alist): Use gnus-macroexpand-all
+       instead of macroexpand-all that is unavailable in XEmacs.
+
 2010-12-02  Andrew Cohen  <cohen@andy.bu.edu>
 
        * nnir.el (nnir-summary-line-format): New variable.
index 840e7d5a00035505e1d0ca1433caa1ec3a815d42..bb8947b5c86266133cdffcd0fcbbe1180d326fc3 100644 (file)
@@ -1361,13 +1361,13 @@ the normal Gnus MIME machinery."
     (?c (or (mail-header-chars gnus-tmp-header) 0) ?d)
     (?k (gnus-summary-line-message-size gnus-tmp-header) ?s)
     (?L gnus-tmp-lines ?s)
-    (?Z (or ,(macroexpand-all
+    (?Z (or ,(gnus-macroexpand-all
              '(nnir-article-rsv (mail-header-number gnus-tmp-header)))
            0) ?d)
-    (?G (or ,(macroexpand-all
+    (?G (or ,(gnus-macroexpand-all
              '(nnir-article-group (mail-header-number gnus-tmp-header)))
            "") ?s)
-    (?g (or ,(macroexpand-all
+    (?g (or ,(gnus-macroexpand-all
              '(gnus-group-short-name
                (nnir-article-group (mail-header-number gnus-tmp-header))))
            "") ?s)
index 9deedbeb010b4c03396dc526e3a589633a53f2c8..d71035754a738a0b5d0a2813c1cb82d151525b96 100644 (file)
@@ -2034,6 +2034,24 @@ Same as `string-match' except this function does not change the match data."
     (save-match-data
       (string-match regexp string start))))
 
+(if (fboundp 'macroexpand-all)
+    (defalias 'gnus-macroexpand-all 'macroexpand-all)
+  (defun gnus-macroexpand-all (form)
+    "Return result of expanding macros at all levels in FORM.
+If no macros are expanded, FORM is returned unchanged."
+    (if (consp form)
+       (let ((idx 1)
+             (len (length form))
+             elem expanded)
+         (while (< idx len)
+           (when (consp (setq elem (nth idx form)))
+             (setcar (nthcdr idx form) (gnus-macroexpand-all elem)))
+           (setq idx (1+ idx)))
+         (if (eq (setq expanded (macroexpand form)) form)
+             form
+           (gnus-macroexpand-all expanded)))
+      form)))
+
 (provide 'gnus-util)
 
 ;;; gnus-util.el ends here