diff options
author | Richard M. Stallman <rms@gnu.org> | 2000-01-21 02:04:16 +0000 |
---|---|---|
committer | Richard M. Stallman <rms@gnu.org> | 2000-01-21 02:04:16 +0000 |
commit | 5ea4b65bfe16cb7b22096418202da9963fb851d3 (patch) | |
tree | 88ec22c222dd91c079885dc7cb18c40ca7f7f167 | |
parent | 757081353df933080416901d87c28fc0237ab5ea (diff) | |
download | emacs-5ea4b65bfe16cb7b22096418202da9963fb851d3.tar.gz emacs-5ea4b65bfe16cb7b22096418202da9963fb851d3.tar.bz2 emacs-5ea4b65bfe16cb7b22096418202da9963fb851d3.zip |
(rmail-digest-end-regexps): Variable replaces rmail-digest-end-regexp.
Allows multiple regexps for detecting the end line.
(undigestify-rmail-message): Corresponding changes.
-rw-r--r-- | lisp/mail/undigest.el | 36 |
1 files changed, 21 insertions, 15 deletions
diff --git a/lisp/mail/undigest.el b/lisp/mail/undigest.el index a85d280022d..bb03205981c 100644 --- a/lisp/mail/undigest.el +++ b/lisp/mail/undigest.el @@ -30,12 +30,15 @@ (require 'rmail) -(defcustom rmail-digest-end-regexp (concat "End of.*Digest.*\n" - (regexp-quote "*********") "*" - "\\(\n------*\\)*") - "*Regexp matching the end of a digest message." +(defcustom rmail-digest-end-regexps + (list (concat "End of.*Digest.*\n" + (regexp-quote "*********") "*" + "\\(\n------*\\)*") + (concat "End of.*\n" + (regexp-quote "*") "*")) + "*Regexps matching the end of a digest message." :group 'rmail - :type 'regexp) + :type '(repeat regexp)) ;;;###autoload (defun undigestify-rmail-message () @@ -79,16 +82,19 @@ Leaves original message, deleted, before the undigestified messages." (mail-fetch-field "From"))) (error "Message is not a digest--bad header"))))) (save-excursion - (goto-char (point-max)) - (skip-chars-backward " \t\n") - (let (found) - ;; compensate for broken un*x digestifiers. Sigh Sigh. - (while (and (> (point) start) (not found)) - (forward-line -1) - (if (looking-at rmail-digest-end-regexp) - (setq found t))) - (if (not found) - (error "Message is not a digest--no end line")))) + (let (found + (regexps rmail-digest-end-regexps)) + (while (and regexps (not found)) + (goto-char (point-max)) + (skip-chars-backward " \t\n") + ;; compensate for broken un*x digestifiers. Sigh Sigh. + (while (and (> (point) start) (not found)) + (forward-line -1) + (if (looking-at (car regexps)) + (setq found t)) + (setq regexps (cdr regexps))) + (unless found + (error "Message is not a digest--no end line")))) (re-search-forward (concat "^" (make-string 55 ?-) "-*\n*")) (replace-match "\^_\^L\n0, unseen,,\n*** EOOH ***\n") (save-restriction |