diff options
| author | Richard M. Stallman | 2011-09-23 19:44:32 -0400 |
|---|---|---|
| committer | Richard M. Stallman | 2011-09-23 19:44:32 -0400 |
| commit | e08b633bd6e6396af85cd52482949c01c73fbb3a (patch) | |
| tree | 907e2dfdf750dcb3ed68633915d3acd37ce29bab | |
| parent | 953ea722f439a38914cdf723341ac7b41deeec5f (diff) | |
| download | emacs-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/ChangeLog | 6 | ||||
| -rw-r--r-- | lisp/mail/rmail.el | 20 |
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 @@ | |||
| 1 | 2011-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 | |||
| 1 | 2011-09-23 Andreas Schwab <schwab@linux-m68k.org> | 7 | 2011-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 () |