Mercurial > emacs
changeset 102065:8dfd81b55840
(rmail-mbox-from): New function.
(rmail-output-as-mbox): Use rmail-mbox-from.
(rmail-output): Ensure a From line in the not-rmail Babyl case.
author | Glenn Morris <rgm@gnu.org> |
---|---|
date | Tue, 17 Feb 2009 02:54:14 +0000 |
parents | f87990d77917 |
children | 0fb11e475237 |
files | lisp/ChangeLog lisp/mail/rmailout.el |
diffstat | 2 files changed, 27 insertions(+), 15 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/ChangeLog Tue Feb 17 02:38:54 2009 +0000 +++ b/lisp/ChangeLog Tue Feb 17 02:54:14 2009 +0000 @@ -4,6 +4,9 @@ (rmail-delete-unwanted-fields): Ignore case. Use line-beg-pos. (rmail-output, rmail-output-as-seen): Change the "from-gnus" argument to "not-rmail", and make it work. Simplify. + (rmail-mbox-from): New function. + (rmail-output-as-mbox): Use rmail-mbox-from. + (rmail-output): Ensure a From line in the not-rmail Babyl case. * mail/rmail.el (rmail-get-attr-names): Give a warning rather than an error if the header is corrupt.
--- a/lisp/mail/rmailout.el Tue Feb 17 02:38:54 2009 +0000 +++ b/lisp/mail/rmailout.el Tue Feb 17 02:54:14 2009 +0000 @@ -308,6 +308,21 @@ "From: \\1\n")) t))))))) +;; Note this is duplicated in unrmail.el. +(defun rmail-mbox-from () + "Return a \"From \" line for the current message. +The buffer should be narrowed to just the header." + (let ((from (or (mail-fetch-field "from") + (mail-fetch-field "really-from") + (mail-fetch-field "sender") + "unknown")) + (date (mail-fetch-field "date"))) + (format "From %s %s\n" (mail-strip-quoted-names from) + (or (and date + (ignore-errors + (current-time-string (date-to-time date)))) + (current-time-string))))) + (defun rmail-output-as-mbox (file-name nomsg &optional as-seen) "Convert the current buffer's text to mbox and output to FILE-NAME. Alters the current buffer's text, so it should be a temporary buffer. @@ -327,20 +342,9 @@ (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")) + (or (looking-at "From ") + (insert (rmail-mbox-from))) (widen) ;; Make sure message ends with blank line. (goto-char (point-max)) @@ -439,11 +443,16 @@ (cur (current-buffer))) (if not-rmail ; eg via message-fcc-handler-function (with-temp-buffer - ;; FIXME need to ensure a From line for rmail-convert-to-babyl-format. (insert-buffer-substring cur) ;; Output in the appropriate format. (if babyl-format - (rmail-output-as-babyl file-name noattribute) + (progn + (goto-char (point-min)) + ;; rmail-convert-to-babyl-format errors if no From line, + ;; whereas rmail-output-as-mbox inserts one. + (or (looking-at "From ") + (insert (rmail-mbox-from))) + (rmail-output-as-babyl file-name noattribute)) (rmail-output-as-mbox file-name noattribute))) ;; Called from an Rmail buffer. (if rmail-buffer