From 9f606031b3a15efc844eea8dc84ed46d26ced60a Mon Sep 17 00:00:00 2001 From: Karl Heuer Date: Wed, 21 Feb 1996 21:28:05 +0000 Subject: [PATCH] (unforward-rmail-message): New command. --- lisp/mail/undigest.el | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/lisp/mail/undigest.el b/lisp/mail/undigest.el index 9e78bcef3c1..814198f3baf 100644 --- a/lisp/mail/undigest.el +++ b/lisp/mail/undigest.el @@ -132,4 +132,40 @@ Leaves original message, deleted, before the undigestified messages." (delete-region (point-min) (point-max)) (rmail-show-message rmail-current-message)))))) +(defun unforward-rmail-message () + "Extract a forwarded message from the containing message. +This puts the forwarded message into a separate rmail message +following the containing message." + (interactive) + (narrow-to-region (rmail-msgbeg rmail-current-message) + (rmail-msgend rmail-current-message)) + (goto-char (point-min)) + (let (beg end (buffer-read-only nil) msg-string who-forwarded-it) + (setq who-forwarded-it (mail-fetch-field "From")) + (if (re-search-forward "^-* Start of forwarded message -*$" nil t) + (setq beg (1+ (point))) + (error "No forwarded message")) + (if (re-search-forward "^-* End of forwarded message -*$" nil t) + (setq end (match-beginning 0)) + (error "No terminator for forwarded message")) + (widen) + (setq msg-string (buffer-substring beg end)) + (goto-char (rmail-msgend rmail-current-message)) + (narrow-to-region (point) (point)) + (insert "\^_\^L\n0, unseen,,\n*** EOOH ***\n") + (narrow-to-region (point) (point)) + (insert "Forwarded-by: " who-forwarded-it "\n") + (insert msg-string) + (goto-char (point-min)) + (while (not (eobp)) + (if (looking-at "- ") + (delete-region (point) (+ 2 (point)))) + (forward-line 1)) + (let ((n rmail-current-message)) + (rmail-forget-messages) + (rmail-show-message n) + (if (rmail-summary-exists) + (rmail-select-summary + (rmail-update-summary)))))) + ;;; undigest.el ends here -- 2.39.2