changeset 102050:ec7d88c6aa9d

(rmail-output-as-mbox): Start search from point-min. If constructing a "From " line, prefer the date header over the current time.
author Glenn Morris <rgm@gnu.org>
date Sun, 15 Feb 2009 03:26:17 +0000
parents 37d66cffaf97
children cb3542dc1e2f
files lisp/ChangeLog lisp/mail/rmailout.el
diffstat 2 files changed, 18 insertions(+), 24 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/ChangeLog	Sun Feb 15 02:52:14 2009 +0000
+++ b/lisp/ChangeLog	Sun Feb 15 03:26:17 2009 +0000
@@ -6,6 +6,8 @@
 	(rmail-output-as-babyl, rmail-output-to-babyl-buffer): Remove
 	unnecessary use of with-no-warnings.
 	(rmail-output-as-mbox, rmail-output-as-seen): Doc fix.
+	(rmail-output-as-mbox): Start search from point-min.  If constructing a
+	"From " line, prefer the date header over the current time.
 
 2009-02-15  Richard M Stallman  <rms@gnu.org>
 
--- a/lisp/mail/rmailout.el	Sun Feb 15 02:52:14 2009 +0000
+++ b/lisp/mail/rmailout.el	Sun Feb 15 03:26:17 2009 +0000
@@ -307,45 +307,37 @@
 If FILE-NAME is visited, output into its buffer instead.
 AS-SEEN is non-nil if we are copying the message \"as seen\"."
   (let ((case-fold-search t)
-	mail-from mime-version content-type)
-
+	from date)
+    (goto-char (point-min))
     ;; Preserve the Mail-From and MIME-Version fields
     ;; even if they have been pruned.
     (search-forward "\n\n" nil 'move)
     (narrow-to-region (point-min) (point))
-
     (rmail-delete-unwanted-fields
      (if rmail-enable-mime "Mail-From"
        "Mail-From\\|MIME-Version\\|Content-type"))
-
+    ;; Generate a From line from other header fields if necessary.
+    ;; FIXME this duplicates code from unrmail.el.
+    (goto-char (point-min))
+    (unless (looking-at "From ")
+      (setq from (or (mail-fetch-field "from")
+		     (mail-fetch-field "really-from")
+		     (mail-fetch-field "sender")
+		     "unknown")
+	    date (mail-fetch-field "date")
+	    date (or (and date
+			  (ignore-errors
+			   (current-time-string (date-to-time date))))
+		     (current-time-string)))
+      (insert "From " (mail-strip-quoted-names from) " " date "\n"))
     (widen)
-
     ;; Make sure message ends with blank line.
     (goto-char (point-max))
     (unless (bolp)
        (insert "\n"))
     (unless (looking-back "\n\n")
       (insert "\n"))
-
-    ;; Generate a From line from other header fields
-    ;; if necessary.
     (goto-char (point-min))
-    (unless (looking-at "From ")
-      (insert "From "
-	      (mail-strip-quoted-names
-	       (save-excursion
-		 (save-restriction
-		   (goto-char (point-min))
-		   (narrow-to-region
-		    (point)
-		    (or (search-forward "\n\n" nil)
-			(point-max)))
-		   (or (mail-fetch-field "from")
-		       (mail-fetch-field "really-from")
-		       (mail-fetch-field "sender")
-		       "unknown"))))
-	      " " (current-time-string) "\n"))
-
     (let ((buf (find-buffer-visiting file-name))
 	  (tembuf (current-buffer)))
       (if (null buf)