changeset 102404:b2bd32bf5b5e

(rmail-output-as-mbox): Use rmail-ensure-blank-line. (rmail-output-to-rmail-buffer): Add the new message at the end of the existing messages, ensuring there is a blank line between them. (Bug#2521)
author Glenn Morris <rgm@gnu.org>
date Thu, 05 Mar 2009 03:43:01 +0000
parents b7059e95eba9
children 7289f3ee7996
files lisp/mail/rmailout.el
diffstat 1 files changed, 12 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/mail/rmailout.el	Thu Mar 05 03:42:22 2009 +0000
+++ b/lisp/mail/rmailout.el	Thu Mar 05 03:43:01 2009 +0000
@@ -33,6 +33,7 @@
   :type 'boolean
   :group 'rmail-output)
 
+;; FIXME risky?
 (defcustom rmail-output-file-alist nil
   "Alist matching regexps to suggested output Rmail files.
 This is a list of elements of the form (REGEXP . NAME-EXP).
@@ -335,15 +336,13 @@
     (widen)
     ;; Make sure message ends with blank line.
     (goto-char (point-max))
-    (unless (bolp)
-       (insert "\n"))
-    (unless (looking-back "\n\n")
-      (insert "\n"))
+    (rmail-ensure-blank-line)
     (goto-char (point-min))
     (let ((buf (find-buffer-visiting file-name))
 	  (tembuf (current-buffer)))
       (if (null buf)
 	  (let ((coding-system-for-write 'raw-text-unix))
+	    ;; FIXME should ensure existing file ends with a blank line.
 	    (write-region (point-min) (point-max) file-name t nomsg))
 	(if (eq buf (current-buffer))
 	    (error "Can't output message to same file it's already in"))
@@ -367,15 +366,22 @@
 display message number MSG."
   (save-excursion
     (rmail-swap-buffers-maybe)
-    ;; Turn on Auto Save mode, if it's off in this
-    ;; buffer but enabled by default.
+    ;; Turn on Auto Save mode, if it's off in this buffer but enabled
+    ;; by default.
     (and (not buffer-auto-save-file-name)
 	 auto-save-default
 	 (auto-save-mode t))
     (rmail-maybe-set-message-counters)
+    ;; Insert the new message after the last old message.
+    (widen)
+    ;; Make sure the last old message ends with a blank line.
+    (goto-char (point-max))
+    (rmail-ensure-blank-line)
+    ;; Insert the new message at the end.
     (narrow-to-region (point-max) (point-max))
     (insert-buffer-substring tembuf)
     (rmail-count-new-messages t)
+    ;; FIXME should re-use existing windows.
     (if (rmail-summary-exists)
 	(rmail-select-summary (rmail-update-summary)))
     (rmail-show-message-1 msg)))