changeset 14630:584eb99710a6

(unforward-rmail-message): New command.
author Karl Heuer <kwzh@gnu.org>
date Wed, 21 Feb 1996 21:28:05 +0000
parents f00693d65ff3
children 25ecb6e5fffc
files lisp/mail/undigest.el
diffstat 1 files changed, 36 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/mail/undigest.el	Wed Feb 21 21:27:39 1996 +0000
+++ b/lisp/mail/undigest.el	Wed Feb 21 21:28:05 1996 +0000
@@ -132,4 +132,40 @@
 	     (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