summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLars Ingebrigtsen <larsi@gnus.org>2016-02-26 13:54:41 +1030
committerLars Ingebrigtsen <larsi@gnus.org>2016-02-26 13:54:41 +1030
commita1e7304fc45ed356f35459697ea8415d52008fd8 (patch)
treee716df929d471a99db9101bbfad558c50dedfc9d
parentc1415cc98c4bba699f870277b5311ed320df22cc (diff)
downloademacs-a1e7304fc45ed356f35459697ea8415d52008fd8.tar.gz
Remove killed buffers from the list of Gnus buffers
* lisp/gnus/gnus.el (gnus-prune-buffers): Remove killed buffers from the list of Gnus buffers (bug#18522).
-rw-r--r--lisp/gnus/gnus.el10
1 files changed, 8 insertions, 2 deletions
diff --git a/lisp/gnus/gnus.el b/lisp/gnus/gnus.el
index f83932513bb..edf46f173b1 100644
--- a/lisp/gnus/gnus.el
+++ b/lisp/gnus/gnus.el
@@ -903,14 +903,20 @@ be set in `.emacs' instead."
(defun gnus-add-buffer ()
"Add the current buffer to the list of Gnus buffers."
+ (gnus-prune-buffers)
(push (current-buffer) gnus-buffers))
(defmacro gnus-kill-buffer (buffer)
"Kill BUFFER and remove from the list of Gnus buffers."
`(let ((buf ,buffer))
(when (gnus-buffer-exists-p buf)
- (setq gnus-buffers (delete (get-buffer buf) gnus-buffers))
- (kill-buffer buf))))
+ (kill-buffer buf)
+ (gnus-prune-buffers))))
+
+(defun gnus-prune-buffers ()
+ (dolist (buf gnus-buffers)
+ (unless (buffer-live-p buf)
+ (setq gnus-buffers (delete buf gnus-buffers)))))
(defun gnus-buffers ()
"Return a list of live Gnus buffers."