From 050f62bf25833561382dc73e4026d2d5590f9ec1 Mon Sep 17 00:00:00 2001 From: Glenn Morris Date: Sun, 15 Feb 2009 03:26:17 +0000 Subject: [PATCH] (rmail-output-as-mbox): Start search from point-min. If constructing a "From " line, prefer the date header over the current time. --- lisp/ChangeLog | 2 ++ lisp/mail/rmailout.el | 40 ++++++++++++++++------------------------ 2 files changed, 18 insertions(+), 24 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index ff630eacc16..d097c18917d 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -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 diff --git a/lisp/mail/rmailout.el b/lisp/mail/rmailout.el index 31de99e7d29..747d84cb968 100644 --- a/lisp/mail/rmailout.el +++ b/lisp/mail/rmailout.el @@ -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) -- 2.39.5