diff options
author | Katsumi Yamaoka <yamaoka@jpl.org> | 2010-12-03 02:17:23 +0000 |
---|---|---|
committer | Katsumi Yamaoka <yamaoka@jpl.org> | 2010-12-03 02:17:23 +0000 |
commit | d6f6af81e8f7496f0569daa07745a1b5f01a6fa6 (patch) | |
tree | 2e4ca2449ce379fb5b357db9324fea73422c8b25 /lisp/gnus/gnus-util.el | |
parent | 3721e1246a7d23f47976b842c2dc56dc99a103fc (diff) | |
download | emacs-d6f6af81e8f7496f0569daa07745a1b5f01a6fa6.tar.gz |
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.
Diffstat (limited to 'lisp/gnus/gnus-util.el')
-rw-r--r-- | lisp/gnus/gnus-util.el | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/lisp/gnus/gnus-util.el b/lisp/gnus/gnus-util.el index 9deedbeb010..d71035754a7 100644 --- a/lisp/gnus/gnus-util.el +++ b/lisp/gnus/gnus-util.el @@ -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 |