From de3bc99a8d21d742e0fea36094274b3ed85bcf11 Mon Sep 17 00:00:00 2001 From: "Richard M. Stallman" Date: Sat, 10 Mar 2012 03:54:24 -0500 Subject: [PATCH] rmail.el: If view buffer gets lost with the real text, don't save the Rmail file as just one message. --- lisp/ChangeLog | 5 +++++ lisp/mail/rmail.el | 12 ++++++++---- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index e1ece83b6a6..0648c9dc5cd 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,5 +1,10 @@ 2012-03-10 Richard Stallman + * mail/rmail.el (rmail-buffers-swapped-p): Don't assume dead + view buffer means not swapped. + (rmail-view-buffer-kill-buffer-hook): Give buf name in error msg. + (rmail-write-region-annotate): Error if real text has disappeared. + * epa-mail.el (epa-mail-encrypt): Bind inhibit-read-only. 2012-03-10 Chong Yidong diff --git a/lisp/mail/rmail.el b/lisp/mail/rmail.el index 2d327c7a0f0..3a9ba8122ab 100644 --- a/lisp/mail/rmail.el +++ b/lisp/mail/rmail.el @@ -1363,8 +1363,7 @@ sets the current buffer's `buffer-file-coding-system' to that of (defun rmail-buffers-swapped-p () "Return non-nil if the message collection is in `rmail-view-buffer'." ;; This is analogous to tar-data-swapped-p in tar-mode.el. - (and (buffer-live-p rmail-view-buffer) - rmail-buffer-swapped)) + rmail-buffer-swapped) (defun rmail-change-major-mode-hook () ;; Bring the actual Rmail messages back into the main buffer. @@ -1406,7 +1405,8 @@ If so restore the actual mbox message collection." (kill-buffer rmail-view-buffer)))) (defun rmail-view-buffer-kill-buffer-hook () - (error "Can't kill message view buffer by itself")) + (error "Can't kill Rmail view buffer `%s' by itself" + (buffer-name (current-buffer)))) ;; Set up the permanent locals associated with an Rmail file. (defun rmail-perm-variables () @@ -4472,7 +4472,11 @@ encoded string (and the same mask) will decode the string." ;; Used in `write-region-annotate-functions' to write rmail files. (defun rmail-write-region-annotate (start end) - (when (and (null start) (rmail-buffers-swapped-p)) + (when (and (null start) rmail-buffer-swapped) + (unless (buffer-live-p rmail-view-buffer) + (error "Buffer `%s' with real text of `%s' has disappeared" + (buffer-name rmail-view-buffer) + (buffer-name (current-buffer)))) (setq rmail-message-encoding buffer-file-coding-system) (set-buffer rmail-view-buffer) (widen) -- 2.39.2