aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRichard M. Stallman2011-09-23 19:44:32 -0400
committerRichard M. Stallman2011-09-23 19:44:32 -0400
commite08b633bd6e6396af85cd52482949c01c73fbb3a (patch)
tree907e2dfdf750dcb3ed68633915d3acd37ce29bab
parent953ea722f439a38914cdf723341ac7b41deeec5f (diff)
downloademacs-e08b633bd6e6396af85cd52482949c01c73fbb3a.tar.gz
emacs-e08b633bd6e6396af85cd52482949c01c73fbb3a.zip
Don't allow killing Rmail view buffer by itself.
It gets killed only when its Rmail buffer gets killed.
-rw-r--r--lisp/ChangeLog6
-rw-r--r--lisp/mail/rmail.el20
2 files changed, 22 insertions, 4 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 0b4a7aaea81..b5f458ecfbc 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,9 @@
12011-09-23 Richard Stallman <rms@gnu.org>
2
3 * mail/rmail.el (rmail-view-buffer-kill-buffer-hook): New function.
4 (rmail-generate-viewer-buffer): Put that hook on view buffer.
5 (rmail-mode-kill-buffer-hook): Override that hook, to kill view buffer.
6
12011-09-23 Andreas Schwab <schwab@linux-m68k.org> 72011-09-23 Andreas Schwab <schwab@linux-m68k.org>
2 8
3 * international/mule-diag.el (mule-diag): Insert a newline after 9 * international/mule-diag.el (mule-diag): Insert a newline after
diff --git a/lisp/mail/rmail.el b/lisp/mail/rmail.el
index db06de9be76..54de6310b5b 100644
--- a/lisp/mail/rmail.el
+++ b/lisp/mail/rmail.el
@@ -1310,9 +1310,14 @@ Create the buffer if necessary."
1310 (if (and (local-variable-p 'rmail-view-buffer) 1310 (if (and (local-variable-p 'rmail-view-buffer)
1311 (buffer-live-p rmail-view-buffer)) 1311 (buffer-live-p rmail-view-buffer))
1312 rmail-view-buffer 1312 rmail-view-buffer
1313 (generate-new-buffer 1313 (let ((newbuf
1314 (format " *message-viewer %s*" 1314 (generate-new-buffer
1315 (file-name-nondirectory (or buffer-file-name (buffer-name))))))) 1315 (format " *message-viewer %s*"
1316 (file-name-nondirectory
1317 (or buffer-file-name (buffer-name)))))))
1318 (with-current-buffer newbuf
1319 (add-hook 'kill-buffer-hook 'rmail-view-buffer-kill-buffer-hook nil t))
1320 newbuf)))
1316 1321
1317(defun rmail-swap-buffers () 1322(defun rmail-swap-buffers ()
1318 "Swap text between current buffer and `rmail-view-buffer'. 1323 "Swap text between current buffer and `rmail-view-buffer'.
@@ -1372,7 +1377,14 @@ If so restore the actual mbox message collection."
1372 (message "Marking buffer unmodified to avoid rewriting Babyl file as mbox file"))) 1377 (message "Marking buffer unmodified to avoid rewriting Babyl file as mbox file")))
1373 1378
1374(defun rmail-mode-kill-buffer-hook () 1379(defun rmail-mode-kill-buffer-hook ()
1375 (if (buffer-live-p rmail-view-buffer) (kill-buffer rmail-view-buffer))) 1380 ;; Turn off the hook on the view buffer, so we can kill it, then kill it.
1381 (if (buffer-live-p rmail-view-buffer)
1382 (with-current-buffer rmail-view-buffer
1383 (setq kill-buffer-hook nil)
1384 (kill-buffer rmail-view-buffer))))
1385
1386(defun rmail-view-buffer-kill-buffer-hook ()
1387 (error "Can't kill message view buffer by itself"))
1376 1388
1377;; Set up the permanent locals associated with an Rmail file. 1389;; Set up the permanent locals associated with an Rmail file.
1378(defun rmail-perm-variables () 1390(defun rmail-perm-variables ()