Function: message-wash-subject
message-wash-subject is a byte-compiled function defined in
message.el.gz.
Signature
(message-wash-subject SUBJECT)
Documentation
Remove junk like "Re:", "(fwd)", etc. added to subject string SUBJECT.
Previous forwarders, repliers, etc. may add it.
Source Code
;; Defined in /usr/src/emacs/lisp/gnus/message.el.gz
;;; Washing Subject:
(defun message-wash-subject (subject)
"Remove junk like \"Re:\", \"(fwd)\", etc. added to subject string SUBJECT.
Previous forwarders, repliers, etc. may add it."
(with-temp-buffer
(insert subject)
(goto-char (point-min))
;; strip Re/Fwd stuff off the beginning
(while (re-search-forward
"\\([Rr][Ee]:\\|[Ff][Ww][Dd]\\(\\[[0-9]*\\]\\)?:\\|[Ff][Ww]:\\)" nil t)
(replace-match ""))
;; and gnus-style forwards [foo@bar.com] subject
(goto-char (point-min))
(while (re-search-forward "\\[[^ \t]*\\(@\\|\\.\\)[^ \t]*\\]" nil t)
(replace-match ""))
;; and off the end
(goto-char (point-max))
(while (re-search-backward "([Ff][Ww][Dd])" nil t)
(replace-match ""))
;; and finally, any whitespace that was left-over
(goto-char (point-min))
(while (re-search-forward "^[ \t]+" nil t)
(replace-match ""))
(goto-char (point-max))
(while (re-search-backward "[ \t]+$" nil t)
(replace-match ""))
(buffer-string)))