changeset 48957:d8dfc5e743b6

(unforward-rmail-message): Do not assume that the forwarded message's Date: header comes after From:. Use a Forwarded-from: rather than a Forwarded-by: header. Add a Forwarded-date: header.
author Francesco Potortì <pot@gnu.org>
date Mon, 23 Dec 2002 22:51:38 +0000
parents 53b3b6d148a3
children 6b4f6412de76
files lisp/mail/undigest.el
diffstat 1 files changed, 11 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/mail/undigest.el	Mon Dec 23 22:51:11 2002 +0000
+++ b/lisp/mail/undigest.el	Mon Dec 23 22:51:38 2002 +0000
@@ -228,7 +228,8 @@
 			  (rmail-msgend rmail-current-message))
 	(goto-char (point-min))
 	(let ((buffer-read-only nil)
-	      (who-forwarded-it (mail-fetch-field "From"))
+	      (forwarded-from (mail-fetch-field "From"))
+	      (forwarded-date (mail-fetch-field "Date"))
 	      beg end prefix forward-msg n)
 	  (cond ((re-search-forward
 		  "^----.*\\([Ff]orwarded\\|[Oo]riginal\\).*[Mm]essage" nil t)
@@ -239,12 +240,18 @@
 		 (setq forward-msg
 		       (replace-regexp-in-string
 			"^- -" "-" (buffer-substring beg end))))
-		((and (re-search-forward "^\\(> ?\\)From: .*\n" nil t)
+		((and (re-search-forward "^\\(> ?\\)[a-zA-Z-]+: .*\n" nil t)
 		      (setq beg (match-beginning 0))
 		      (setq prefix (match-string 1))
+		      (goto-char beg)
 		      (looking-at (concat "\\(" prefix ".+\n\\)*"
 					  prefix "Date: .+\n"
 					  "\\(" prefix ".+\n\\)*"
+					  "\\(> ?\\)?\n" prefix))
+		      (goto-char beg)
+		      (looking-at (concat "\\(" prefix ".+\n\\)*"
+					  prefix "From: .+\n"
+					  "\\(" prefix ".+\n\\)*"
 					  "\\(> ?\\)?\n" prefix)))
 		 (re-search-forward "^[^>\n]" nil 'move)
 		 (backward-char)
@@ -262,7 +269,8 @@
 	  (narrow-to-region (point) (point))
 	  (insert rmail-mail-separator)
 	  (narrow-to-region (point) (point))
-	  (insert "Forwarded-by: " who-forwarded-it "\n")
+	  (insert "Forwarded-from: " forwarded-from "\n")
+	  (insert "Forwarded-date: " forwarded-date "\n")
 	  (insert forward-msg)
 	  (save-restriction
 	    (goto-char (point-min))