aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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."
903 903
904(defun gnus-add-buffer () 904(defun gnus-add-buffer ()
905 "Add the current buffer to the list of Gnus buffers." 905 "Add the current buffer to the list of Gnus buffers."
906 (gnus-prune-buffers)
906 (push (current-buffer) gnus-buffers)) 907 (push (current-buffer) gnus-buffers))
907 908
908(defmacro gnus-kill-buffer (buffer) 909(defmacro gnus-kill-buffer (buffer)
909 "Kill BUFFER and remove from the list of Gnus buffers." 910 "Kill BUFFER and remove from the list of Gnus buffers."
910 `(let ((buf ,buffer)) 911 `(let ((buf ,buffer))
911 (when (gnus-buffer-exists-p buf) 912 (when (gnus-buffer-exists-p buf)
912 (setq gnus-buffers (delete (get-buffer buf) gnus-buffers)) 913 (kill-buffer buf)
913 (kill-buffer buf)))) 914 (gnus-prune-buffers))))
915
916(defun gnus-prune-buffers ()
917 (dolist (buf gnus-buffers)
918 (unless (buffer-live-p buf)
919 (setq gnus-buffers (delete buf gnus-buffers)))))
914 920
915(defun gnus-buffers () 921(defun gnus-buffers ()
916 "Return a list of live Gnus buffers." 922 "Return a list of live Gnus buffers."