]> git.eshelyaron.com Git - emacs.git/commitdiff
(rmail-output-as-mbox): Start search from point-min. If constructing a
authorGlenn Morris <rgm@gnu.org>
Sun, 15 Feb 2009 03:26:17 +0000 (03:26 +0000)
committerGlenn Morris <rgm@gnu.org>
Sun, 15 Feb 2009 03:26:17 +0000 (03:26 +0000)
"From " line, prefer the date header over the current time.

lisp/ChangeLog
lisp/mail/rmailout.el

index ff630eacc16cad4e1d66759935552741f035cb15..d097c18917d18464f4f861ade33f98df3a836165 100644 (file)
@@ -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>
 
index 31de99e7d29e8424be19c74c7230889ec5e8b5dc..747d84cb968c895fd7e34f84d847e4afe23b339a 100644 (file)
@@ -307,45 +307,37 @@ It alters the current buffer's text, so call with a temp buffer current.
 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)