aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBasil L. Contovounesios2019-05-05 01:28:57 +0100
committerBasil L. Contovounesios2019-05-30 02:56:28 +0100
commitceca1740ea2c9bc98da8c11765b78c696b27c79e (patch)
tree8f878809e34325af181edac66385307345c3ef03
parent46a176169b9050a5e6d97b11f265bd58b4b5eb05 (diff)
downloademacs-ceca1740ea2c9bc98da8c11765b78c696b27c79e.tar.gz
emacs-ceca1740ea2c9bc98da8c11765b78c696b27c79e.zip
Simplify Gnus buffer liveness checking and killing
* lisp/gnus/gnus-agent.el (gnus-agent-synchronize-group-flags): Fix indentation. * lisp/gnus/gnus-util.el (gnus-buffer-exists-p): Define as obsolete alias of gnus-buffer-live-p. (gnus-buffer-live-p): If the given argument is or names a live buffer, return the corresponding buffer object instead of a boolean. * lisp/gnus/gnus-win.el (gnus-delete-windows-in-gnusey-frames) (gnus-remove-some-windows): Simplify. * lisp/gnus/gnus.el (gnus-prune-buffers): Redefine as alias of gnus-buffers. (gnus-kill-buffer, gnus-buffers, gnus-group-find-parameter): * lisp/gnus/gnus-art.el (gnus-kill-sticky-article-buffers) (gnus-request-article-this-buffer): * lisp/gnus/gnus-bcklg.el (gnus-backlog-shutdown): * lisp/gnus/gnus-cus.el (gnus-group-customize) (gnus-agent-customize-category): * lisp/gnus/gnus-draft.el (gnus-draft-edit-message): * lisp/gnus/gnus-group.el (gnus-group-set-mode-line) (gnus--abort-on-unsaved-message-buffers, gnus-group-compact-group): * lisp/gnus/gnus-msg.el (gnus-inews-add-send-actions) (gnus-summary-supersede-article, gnus-copy-article-buffer): * lisp/gnus/gnus-score.el (gnus-score-edit-current-scores) (gnus-score-edit-file): * lisp/gnus/gnus-spec.el (gnus-update-format-specifications): * lisp/gnus/gnus-srvr.el (gnus-server-compact-server): * lisp/gnus/gnus-start.el (gnus-clear-system, gnus-dribble-enter) (gnus-dribble-save, gnus-dribble-clear, gnus-save-newsrc-file): * lisp/gnus/gnus-sum.el (gnus-summary-setup-buffer) (gnus-update-summary-mark-positions, gnus-summary-exit) (gnus-deaden-summary, gnus-kill-or-deaden-summary) (gnus-summary-next-group): * lisp/gnus/gnus-win.el (gnus-configure-frame): * lisp/gnus/mail-source.el (mail-source-movemail): * lisp/gnus/message.el (message-with-reply-buffer) (message-with-reply, message-send-and-exit) (message-send-mail-with-sendmail, message-pop-to-buffer) (message-do-send-housekeeping, message-forward-make-body-plain) (message-forward-make-body-mml): * lisp/gnus/mm-decode.el (mm-display-external, mm-remove-part): * lisp/gnus/nnbabyl.el (nnbabyl-server-opened) (nnbabyl-possibly-change-newsgroup, nnbabyl-read-mbox) (nnbabyl-check-mbox): * lisp/gnus/nndiary.el (nndiary-save-nov): * lisp/gnus/nndoc.el (nndoc-close-group) (nndoc-possibly-change-buffer): * lisp/gnus/nnfolder.el (nnfolder-close-group, nnfolder-save-nov): * lisp/gnus/nnimap.el (nnimap-make-process-buffer, nnimap-keepalive) (nnimap-find-connection): * lisp/gnus/nnmail.el (nnmail-cache-open, nnmail-cache-close): * lisp/gnus/nnmbox.el (nnmbox-close-server, nnmbox-server-opened) (nnmbox-possibly-change-newsgroup, nnmbox-read-mbox): * lisp/gnus/nnml.el (nnml-save-incremental-nov, nnml-open-nov) (nnml-save-nov): * lisp/gnus/nnoo.el (nnoo-server-opened): * lisp/gnus/nntp.el (nntp-kill-buffer, nntp-make-process-buffer) (nntp-open-connection, nntp-async-trigger): * lisp/net/mairix.el (mairix-gnus-fetch-field): Simplify buffer liveness checking and killing, replacing buffer-name with buffer-live-p and gnus-buffer-exists-p with gnus-buffer-live-p or equivalent where applicable.
-rw-r--r--lisp/gnus/gnus-agent.el29
-rw-r--r--lisp/gnus/gnus-art.el21
-rw-r--r--lisp/gnus/gnus-bcklg.el3
-rw-r--r--lisp/gnus/gnus-cus.el8
-rw-r--r--lisp/gnus/gnus-draft.el5
-rw-r--r--lisp/gnus/gnus-group.el22
-rw-r--r--lisp/gnus/gnus-msg.el9
-rw-r--r--lisp/gnus/gnus-score.el4
-rw-r--r--lisp/gnus/gnus-spec.el2
-rw-r--r--lisp/gnus/gnus-srvr.el3
-rw-r--r--lisp/gnus/gnus-start.el20
-rw-r--r--lisp/gnus/gnus-sum.el18
-rw-r--r--lisp/gnus/gnus-util.el14
-rw-r--r--lisp/gnus/gnus-win.el32
-rw-r--r--lisp/gnus/gnus.el24
-rw-r--r--lisp/gnus/mail-source.el3
-rw-r--r--lisp/gnus/message.el23
-rw-r--r--lisp/gnus/mm-decode.el8
-rw-r--r--lisp/gnus/nnbabyl.el15
-rw-r--r--lisp/gnus/nndiary.el2
-rw-r--r--lisp/gnus/nndoc.el9
-rw-r--r--lisp/gnus/nnfolder.el5
-rw-r--r--lisp/gnus/nnimap.el6
-rw-r--r--lisp/gnus/nnmail.el8
-rw-r--r--lisp/gnus/nnmbox.el15
-rw-r--r--lisp/gnus/nnml.el8
-rw-r--r--lisp/gnus/nnoo.el3
-rw-r--r--lisp/gnus/nntp.el37
-rw-r--r--lisp/net/mairix.el6
29 files changed, 145 insertions, 217 deletions
diff --git a/lisp/gnus/gnus-agent.el b/lisp/gnus/gnus-agent.el
index bed480f5541..a09b4368893 100644
--- a/lisp/gnus/gnus-agent.el
+++ b/lisp/gnus/gnus-agent.el
@@ -1193,7 +1193,7 @@ This can be added to `gnus-select-article-hook' or
1193;;; 1193;;;
1194 1194
1195(defun gnus-agent-synchronize-group-flags (group actions server) 1195(defun gnus-agent-synchronize-group-flags (group actions server)
1196"Update a plugged group by performing the indicated actions." 1196 "Update a plugged group by performing the indicated actions."
1197 (let* ((gnus-command-method (gnus-server-to-method server)) 1197 (let* ((gnus-command-method (gnus-server-to-method server))
1198 (info 1198 (info
1199 ;; This initializer is required as gnus-request-set-mark 1199 ;; This initializer is required as gnus-request-set-mark
@@ -1227,18 +1227,21 @@ This can be added to `gnus-select-article-hook' or
1227 ((memq mark '(tick)) 1227 ((memq mark '(tick))
1228 (let ((info-marks (assoc mark (gnus-info-marks info)))) 1228 (let ((info-marks (assoc mark (gnus-info-marks info))))
1229 (unless info-marks 1229 (unless info-marks
1230 (gnus-info-set-marks info (cons (setq info-marks (list mark)) (gnus-info-marks info)))) 1230 (gnus-info-set-marks
1231 (setcdr info-marks (funcall (if (eq what 'add) 1231 info (cons (setq info-marks (list mark))
1232 'gnus-range-add 1232 (gnus-info-marks info))))
1233 'gnus-remove-from-range) 1233 (setcdr info-marks
1234 (cdr info-marks) 1234 (funcall (if (eq what 'add)
1235 range)))))))) 1235 'gnus-range-add
1236 1236 'gnus-remove-from-range)
1237 ;;Marks can be synchronized at any time by simply toggling from 1237 (cdr info-marks)
1238 ;;unplugged to plugged. If that is what is happening right now, make 1238 range))))))))
1239 ;;sure that the group buffer is up to date. 1239
1240 (when (gnus-buffer-live-p gnus-group-buffer) 1240 ;; Marks can be synchronized at any time by simply toggling from
1241 (gnus-group-update-group group t))) 1241 ;; unplugged to plugged. If that is what is happening right now,
1242 ;; make sure that the group buffer is up to date.
1243 (when (gnus-buffer-live-p gnus-group-buffer)
1244 (gnus-group-update-group group t)))
1242 nil)) 1245 nil))
1243 1246
1244(defun gnus-agent-save-active (method &optional groups-p) 1247(defun gnus-agent-save-active (method &optional groups-p)
diff --git a/lisp/gnus/gnus-art.el b/lisp/gnus/gnus-art.el
index 0cd34e445cc..d826faca5bd 100644
--- a/lisp/gnus/gnus-art.el
+++ b/lisp/gnus/gnus-art.el
@@ -4799,11 +4799,10 @@ If a prefix ARG is given, ask for confirmation."
4799 (interactive "P") 4799 (interactive "P")
4800 (dolist (buf (gnus-buffers)) 4800 (dolist (buf (gnus-buffers))
4801 (with-current-buffer buf 4801 (with-current-buffer buf
4802 (when (derived-mode-p 'gnus-sticky-article-mode) 4802 (and (derived-mode-p 'gnus-sticky-article-mode)
4803 (if (not arg) 4803 (or (not arg)
4804 (gnus-kill-buffer buf) 4804 (yes-or-no-p (format "Kill buffer %s? " buf)))
4805 (when (yes-or-no-p (concat "Kill buffer " (buffer-name buf) "? ")) 4805 (gnus-kill-buffer buf)))))
4806 (gnus-kill-buffer buf)))))))
4807 4806
4808;;; 4807;;;
4809;;; Gnus MIME viewing functions 4808;;; Gnus MIME viewing functions
@@ -6979,9 +6978,7 @@ If given a prefix, show the hidden text instead."
6979 ;; doesn't belong in this newsgroup (possibly), so we find its 6978 ;; doesn't belong in this newsgroup (possibly), so we find its
6980 ;; message-id and request it by id instead of number. 6979 ;; message-id and request it by id instead of number.
6981 (when (and (numberp article) 6980 (when (and (numberp article)
6982 gnus-summary-buffer 6981 (gnus-buffer-live-p gnus-summary-buffer))
6983 (get-buffer gnus-summary-buffer)
6984 (gnus-buffer-exists-p gnus-summary-buffer))
6985 (with-current-buffer gnus-summary-buffer 6982 (with-current-buffer gnus-summary-buffer
6986 (let ((header (gnus-summary-article-header article))) 6983 (let ((header (gnus-summary-article-header article)))
6987 (when (< article 0) 6984 (when (< article 0)
@@ -7015,11 +7012,9 @@ If given a prefix, show the hidden text instead."
7015 (cond 7012 (cond
7016 ;; Refuse to select canceled articles. 7013 ;; Refuse to select canceled articles.
7017 ((and (numberp article) 7014 ((and (numberp article)
7018 gnus-summary-buffer 7015 (gnus-buffer-live-p gnus-summary-buffer)
7019 (get-buffer gnus-summary-buffer) 7016 (eq (with-current-buffer gnus-summary-buffer
7020 (gnus-buffer-exists-p gnus-summary-buffer) 7017 (cdr (assq article gnus-newsgroup-reads)))
7021 (eq (cdr (with-current-buffer gnus-summary-buffer
7022 (assq article gnus-newsgroup-reads)))
7023 gnus-canceled-mark)) 7018 gnus-canceled-mark))
7024 nil) 7019 nil)
7025 ;; We first check `gnus-original-article-buffer'. 7020 ;; We first check `gnus-original-article-buffer'.
diff --git a/lisp/gnus/gnus-bcklg.el b/lisp/gnus/gnus-bcklg.el
index c5a0e3ec4f0..f478c39f370 100644
--- a/lisp/gnus/gnus-bcklg.el
+++ b/lisp/gnus/gnus-bcklg.el
@@ -46,8 +46,7 @@
46(defun gnus-backlog-shutdown () 46(defun gnus-backlog-shutdown ()
47 "Clear all backlog variables and buffers." 47 "Clear all backlog variables and buffers."
48 (interactive) 48 (interactive)
49 (when (get-buffer gnus-backlog-buffer) 49 (gnus-kill-buffer gnus-backlog-buffer)
50 (gnus-kill-buffer gnus-backlog-buffer))
51 (setq gnus-backlog-articles nil)) 50 (setq gnus-backlog-articles nil))
52 51
53(defun gnus-backlog-enter-article (group number buffer) 52(defun gnus-backlog-enter-article (group number buffer)
diff --git a/lisp/gnus/gnus-cus.el b/lisp/gnus/gnus-cus.el
index d56066e6168..0938d6b6ed3 100644
--- a/lisp/gnus/gnus-cus.el
+++ b/lisp/gnus/gnus-cus.el
@@ -369,7 +369,7 @@ category."))
369 (unless (or topic (setq info (gnus-get-info group))) 369 (unless (or topic (setq info (gnus-get-info group)))
370 (error "Killed group; can't be edited")) 370 (error "Killed group; can't be edited"))
371 ;; Ready. 371 ;; Ready.
372 (gnus-kill-buffer (gnus-get-buffer-create "*Gnus Customize*")) 372 (gnus-kill-buffer "*Gnus Customize*")
373 (switch-to-buffer (gnus-get-buffer-create "*Gnus Customize*")) 373 (switch-to-buffer (gnus-get-buffer-create "*Gnus Customize*"))
374 (gnus-custom-mode) 374 (gnus-custom-mode)
375 (make-local-variable 'gnus-custom-group) 375 (make-local-variable 'gnus-custom-group)
@@ -1021,9 +1021,7 @@ articles in the thread.
1021 (cons 'agent-low-score gnus-agent-low-score) 1021 (cons 'agent-low-score gnus-agent-low-score)
1022 (cons 'agent-high-score gnus-agent-high-score)))) 1022 (cons 'agent-high-score gnus-agent-high-score))))
1023 1023
1024 (let ((old (get-buffer "*Gnus Agent Category Customize*"))) 1024 (gnus-kill-buffer "*Gnus Agent Category Customize*")
1025 (when old
1026 (gnus-kill-buffer old)))
1027 (switch-to-buffer (gnus-get-buffer-create 1025 (switch-to-buffer (gnus-get-buffer-create
1028 "*Gnus Agent Category Customize*")) 1026 "*Gnus Agent Category Customize*"))
1029 1027
@@ -1051,7 +1049,7 @@ articles in the thread.
1051 (when (get-buffer gnus-category-buffer) 1049 (when (get-buffer gnus-category-buffer)
1052 (switch-to-buffer (get-buffer gnus-category-buffer)) 1050 (switch-to-buffer (get-buffer gnus-category-buffer))
1053 (gnus-category-list))) 1051 (gnus-category-list)))
1054 "Done") 1052 "Done")
1055 (widget-insert 1053 (widget-insert
1056 "\n Note: Empty fields default to the customizable global\ 1054 "\n Note: Empty fields default to the customizable global\
1057 variables.\n\n") 1055 variables.\n\n")
diff --git a/lisp/gnus/gnus-draft.el b/lisp/gnus/gnus-draft.el
index ad1aa62a346..0616dc8fd5a 100644
--- a/lisp/gnus/gnus-draft.el
+++ b/lisp/gnus/gnus-draft.el
@@ -94,14 +94,13 @@
94 (save-restriction 94 (save-restriction
95 (message-narrow-to-headers) 95 (message-narrow-to-headers)
96 (message-remove-header "date"))) 96 (message-remove-header "date")))
97 (let ((message-draft-headers 97 (let ((message-draft-headers (remq 'Date message-draft-headers)))
98 (delq 'Date (copy-sequence message-draft-headers))))
99 (save-buffer)) 98 (save-buffer))
100 (let ((gnus-verbose-backends nil)) 99 (let ((gnus-verbose-backends nil))
101 (gnus-request-expire-articles (list article) group t)) 100 (gnus-request-expire-articles (list article) group t))
102 (push 101 (push
103 `((lambda () 102 `((lambda ()
104 (when (gnus-buffer-exists-p ,gnus-summary-buffer) 103 (when (gnus-buffer-live-p ,gnus-summary-buffer)
105 (save-excursion 104 (save-excursion
106 (set-buffer ,gnus-summary-buffer) 105 (set-buffer ,gnus-summary-buffer)
107 (gnus-cache-possibly-remove-article ,article nil nil nil t))))) 106 (gnus-cache-possibly-remove-article ,article nil nil nil t)))))
diff --git a/lisp/gnus/gnus-group.el b/lisp/gnus/gnus-group.el
index 4a14de33b0d..f49ed164439 100644
--- a/lisp/gnus/gnus-group.el
+++ b/lisp/gnus/gnus-group.el
@@ -1743,8 +1743,7 @@ already. If INFO-UNCHANGED is non-nil, dribble buffer is not updated."
1743 gnus-tmp-header ;Dummy binding for user-defined formats 1743 gnus-tmp-header ;Dummy binding for user-defined formats
1744 ;; Get the resulting string. 1744 ;; Get the resulting string.
1745 (modified 1745 (modified
1746 (and gnus-dribble-buffer 1746 (and (buffer-live-p gnus-dribble-buffer)
1747 (buffer-name gnus-dribble-buffer)
1748 (buffer-modified-p gnus-dribble-buffer) 1747 (buffer-modified-p gnus-dribble-buffer)
1749 (with-current-buffer gnus-dribble-buffer 1748 (with-current-buffer gnus-dribble-buffer
1750 (not (zerop (buffer-size)))))) 1749 (not (zerop (buffer-size))))))
@@ -4362,15 +4361,13 @@ The hook `gnus-exit-gnus-hook' is called before actually exiting."
4362 4361
4363(defun gnus--abort-on-unsaved-message-buffers () 4362(defun gnus--abort-on-unsaved-message-buffers ()
4364 (dolist (buffer (gnus-buffers)) 4363 (dolist (buffer (gnus-buffers))
4365 (when (gnus-buffer-exists-p buffer) 4364 (with-current-buffer buffer
4366 (with-current-buffer buffer 4365 (when (and (derived-mode-p 'message-mode)
4367 (when (and (derived-mode-p 'message-mode) 4366 (buffer-modified-p)
4368 (buffer-modified-p) 4367 (not (y-or-n-p
4369 (not (y-or-n-p 4368 (format "Message buffer %s unsaved, continue exit? "
4370 (format "Message buffer %s unsaved, continue exit? " 4369 buffer))))
4371 (buffer-name))))) 4370 (error "Gnus exit aborted due to unsaved buffer %s" buffer)))))
4372 (error "Gnus exit aborted due to unsaved %s buffer"
4373 (buffer-name)))))))
4374 4371
4375(defun gnus-group-quit () 4372(defun gnus-group-quit ()
4376 "Quit reading news without updating .newsrc.eld or .newsrc. 4373 "Quit reading news without updating .newsrc.eld or .newsrc.
@@ -4754,8 +4751,7 @@ Compacting group %s... (this may take a long time)"
4754 ;; Invalidate the "original article" buffer which might be out of date. 4751 ;; Invalidate the "original article" buffer which might be out of date.
4755 ;; #### NOTE: Yes, this might be a bit rude, but since compaction 4752 ;; #### NOTE: Yes, this might be a bit rude, but since compaction
4756 ;; #### will not happen very often, I think this is acceptable. 4753 ;; #### will not happen very often, I think this is acceptable.
4757 (let ((original (get-buffer gnus-original-article-buffer))) 4754 (gnus-kill-buffer gnus-original-article-buffer)
4758 (and original (gnus-kill-buffer original)))
4759 ;; Update the group line to reflect new information (art number etc). 4755 ;; Update the group line to reflect new information (art number etc).
4760 (gnus-group-update-group-line)))) 4756 (gnus-group-update-group-line))))
4761 4757
diff --git a/lisp/gnus/gnus-msg.el b/lisp/gnus/gnus-msg.el
index b7a97f19d00..0ae7fe2efc1 100644
--- a/lisp/gnus/gnus-msg.el
+++ b/lisp/gnus/gnus-msg.el
@@ -607,7 +607,7 @@ instead."
607 (message-add-action 607 (message-add-action
608 `(progn 608 `(progn
609 (setq gnus-current-window-configuration ',winconf-name) 609 (setq gnus-current-window-configuration ',winconf-name)
610 (when (gnus-buffer-exists-p ,buffer) 610 (when (gnus-buffer-live-p ,buffer)
611 (set-window-configuration ,winconf))) 611 (set-window-configuration ,winconf)))
612 'exit 'postpone 'kill) 612 'exit 'postpone 'kill)
613 (let ((to-be-marked (cond 613 (let ((to-be-marked (cond
@@ -617,7 +617,7 @@ instead."
617 (article (if (listp article) article (list article))) 617 (article (if (listp article) article (list article)))
618 (t nil)))) 618 (t nil))))
619 (message-add-action 619 (message-add-action
620 `(when (gnus-buffer-exists-p ,buffer) 620 `(when (gnus-buffer-live-p ,buffer)
621 (with-current-buffer ,buffer 621 (with-current-buffer ,buffer
622 ,(when to-be-marked 622 ,(when to-be-marked
623 (if (eq config 'forward) 623 (if (eq config 'forward)
@@ -902,7 +902,7 @@ header line with the old Message-ID."
902 (message-supersede) 902 (message-supersede)
903 (push 903 (push
904 `((lambda () 904 `((lambda ()
905 (when (gnus-buffer-exists-p ,gnus-summary-buffer) 905 (when (gnus-buffer-live-p ,gnus-summary-buffer)
906 (with-current-buffer ,gnus-summary-buffer 906 (with-current-buffer ,gnus-summary-buffer
907 (gnus-cache-possibly-remove-article ,article nil nil nil t) 907 (gnus-cache-possibly-remove-article ,article nil nil nil t)
908 (gnus-summary-mark-as-read ,article gnus-canceled-mark))))) 908 (gnus-summary-mark-as-read ,article gnus-canceled-mark)))))
@@ -922,8 +922,7 @@ header line with the old Message-ID."
922 (mm-enable-multibyte)) 922 (mm-enable-multibyte))
923 (let ((article-buffer (or article-buffer gnus-article-buffer)) 923 (let ((article-buffer (or article-buffer gnus-article-buffer))
924 end beg) 924 end beg)
925 (if (not (and (get-buffer article-buffer) 925 (if (not (gnus-buffer-live-p article-buffer))
926 (gnus-buffer-exists-p article-buffer)))
927 (error "Can't find any article buffer") 926 (error "Can't find any article buffer")
928 (with-current-buffer article-buffer 927 (with-current-buffer article-buffer
929 (let ((gnus-newsgroup-charset (or gnus-article-charset 928 (let ((gnus-newsgroup-charset (or gnus-article-charset
diff --git a/lisp/gnus/gnus-score.el b/lisp/gnus/gnus-score.el
index 476c36023ea..72fcc641559 100644
--- a/lisp/gnus/gnus-score.el
+++ b/lisp/gnus/gnus-score.el
@@ -1098,7 +1098,7 @@ EXTRA is the possible non-standard header."
1098 (if (not gnus-current-score-file) 1098 (if (not gnus-current-score-file)
1099 (error "No current score file") 1099 (error "No current score file")
1100 (let ((winconf (current-window-configuration))) 1100 (let ((winconf (current-window-configuration)))
1101 (when (buffer-name gnus-summary-buffer) 1101 (when (buffer-live-p gnus-summary-buffer)
1102 (gnus-score-save)) 1102 (gnus-score-save))
1103 (gnus-make-directory (file-name-directory file)) 1103 (gnus-make-directory (file-name-directory file))
1104 (setq gnus-score-edit-buffer (find-file-noselect file)) 1104 (setq gnus-score-edit-buffer (find-file-noselect file))
@@ -1126,7 +1126,7 @@ EXTRA is the possible non-standard header."
1126 (interactive 1126 (interactive
1127 (list (read-file-name "Edit score file: " gnus-kill-files-directory))) 1127 (list (read-file-name "Edit score file: " gnus-kill-files-directory)))
1128 (gnus-make-directory (file-name-directory file)) 1128 (gnus-make-directory (file-name-directory file))
1129 (when (buffer-name gnus-summary-buffer) 1129 (when (buffer-live-p gnus-summary-buffer)
1130 (gnus-score-save)) 1130 (gnus-score-save))
1131 (let ((winconf (current-window-configuration))) 1131 (let ((winconf (current-window-configuration)))
1132 (setq gnus-score-edit-buffer (find-file-noselect file)) 1132 (setq gnus-score-edit-buffer (find-file-noselect file))
diff --git a/lisp/gnus/gnus-spec.el b/lisp/gnus/gnus-spec.el
index b236f0a4018..47d722c9144 100644
--- a/lisp/gnus/gnus-spec.el
+++ b/lisp/gnus/gnus-spec.el
@@ -150,7 +150,7 @@ Return a list of updated types."
150 (let ((buffer (intern (format "gnus-%s-buffer" type)))) 150 (let ((buffer (intern (format "gnus-%s-buffer" type))))
151 (when (and (boundp buffer) 151 (when (and (boundp buffer)
152 (setq val (symbol-value buffer)) 152 (setq val (symbol-value buffer))
153 (gnus-buffer-exists-p val)) 153 (gnus-buffer-live-p val))
154 (set-buffer val)) 154 (set-buffer val))
155 (setq new-format (symbol-value 155 (setq new-format (symbol-value
156 (intern (format "gnus-%s-line-format" type))))) 156 (intern (format "gnus-%s-line-format" type)))))
diff --git a/lisp/gnus/gnus-srvr.el b/lisp/gnus/gnus-srvr.el
index 76a0f7d0fdb..972ff28e63f 100644
--- a/lisp/gnus/gnus-srvr.el
+++ b/lisp/gnus/gnus-srvr.el
@@ -1086,8 +1086,7 @@ Requesting compaction of %s... (this may take a long time)"
1086 ;; Invalidate the original article buffer which might be out of date. 1086 ;; Invalidate the original article buffer which might be out of date.
1087 ;; #### NOTE: Yes, this might be a bit rude, but since compaction 1087 ;; #### NOTE: Yes, this might be a bit rude, but since compaction
1088 ;; #### will not happen very often, I think this is acceptable. 1088 ;; #### will not happen very often, I think this is acceptable.
1089 (let ((original (get-buffer gnus-original-article-buffer))) 1089 (gnus-kill-buffer gnus-original-article-buffer))))
1090 (and original (gnus-kill-buffer original))))))
1091 1090
1092(defun gnus-server-toggle-cloud-server () 1091(defun gnus-server-toggle-cloud-server ()
1093 "Toggle whether the server under point is replicated in the Emacs Cloud." 1092 "Toggle whether the server under point is replicated in the Emacs Cloud."
diff --git a/lisp/gnus/gnus-start.el b/lisp/gnus/gnus-start.el
index ef07dcd23c0..85aefe0f5f6 100644
--- a/lisp/gnus/gnus-start.el
+++ b/lisp/gnus/gnus-start.el
@@ -720,11 +720,10 @@ the first newsgroup."
720 ;; Kill Gnus buffers. 720 ;; Kill Gnus buffers.
721 (do-auto-save t) 721 (do-auto-save t)
722 (dolist (buffer (gnus-buffers)) 722 (dolist (buffer (gnus-buffers))
723 (when (gnus-buffer-exists-p buffer) 723 (with-current-buffer buffer
724 (with-current-buffer buffer 724 (set-buffer-modified-p nil)
725 (set-buffer-modified-p nil) 725 (when (local-variable-p 'kill-buffer-hook)
726 (when (local-variable-p 'kill-buffer-hook) 726 (setq kill-buffer-hook nil)))
727 (setq kill-buffer-hook nil))))
728 (gnus-kill-buffer buffer)) 727 (gnus-kill-buffer buffer))
729 ;; Remove Gnus frames. 728 ;; Remove Gnus frames.
730 (gnus-kill-gnus-frames)) 729 (gnus-kill-gnus-frames))
@@ -842,8 +841,7 @@ prompt the user for the name of an NNTP server to use."
842 "Enter STRING into the dribble buffer. 841 "Enter STRING into the dribble buffer.
843If REGEXP is given, lines that match it will be deleted." 842If REGEXP is given, lines that match it will be deleted."
844 (when (and (not gnus-dribble-ignore) 843 (when (and (not gnus-dribble-ignore)
845 gnus-dribble-buffer 844 (buffer-live-p gnus-dribble-buffer))
846 (buffer-name gnus-dribble-buffer))
847 (let ((obuf (current-buffer))) 845 (let ((obuf (current-buffer)))
848 (set-buffer gnus-dribble-buffer) 846 (set-buffer gnus-dribble-buffer)
849 (when regexp 847 (when regexp
@@ -935,14 +933,13 @@ If REGEXP is given, lines that match it will be deleted."
935 (set-buffer-modified-p nil))))) 933 (set-buffer-modified-p nil)))))
936 934
937(defun gnus-dribble-save () 935(defun gnus-dribble-save ()
938 (when (and gnus-dribble-buffer 936 (when (buffer-live-p gnus-dribble-buffer)
939 (buffer-name gnus-dribble-buffer))
940 (with-current-buffer gnus-dribble-buffer 937 (with-current-buffer gnus-dribble-buffer
941 (when (> (buffer-size) 0) 938 (when (> (buffer-size) 0)
942 (save-buffer))))) 939 (save-buffer)))))
943 940
944(defun gnus-dribble-clear () 941(defun gnus-dribble-clear ()
945 (when (gnus-buffer-exists-p gnus-dribble-buffer) 942 (when (gnus-buffer-live-p gnus-dribble-buffer)
946 (with-current-buffer gnus-dribble-buffer 943 (with-current-buffer gnus-dribble-buffer
947 (erase-buffer) 944 (erase-buffer)
948 (set-buffer-modified-p nil) 945 (set-buffer-modified-p nil)
@@ -2726,8 +2723,7 @@ values from `gnus-newsrc-hashtb', and write a new value of
2726 (save-excursion 2723 (save-excursion
2727 (if (and (or gnus-use-dribble-file gnus-slave) 2724 (if (and (or gnus-use-dribble-file gnus-slave)
2728 (not force) 2725 (not force)
2729 (or (not gnus-dribble-buffer) 2726 (or (not (buffer-live-p gnus-dribble-buffer))
2730 (not (buffer-name gnus-dribble-buffer))
2731 (zerop (with-current-buffer gnus-dribble-buffer 2727 (zerop (with-current-buffer gnus-dribble-buffer
2732 (buffer-size))))) 2728 (buffer-size)))))
2733 (gnus-message 4 "(No changes need to be saved)") 2729 (gnus-message 4 "(No changes need to be saved)")
diff --git a/lisp/gnus/gnus-sum.el b/lisp/gnus/gnus-sum.el
index 31958ff7b04..5d5d2ec464b 100644
--- a/lisp/gnus/gnus-sum.el
+++ b/lisp/gnus/gnus-sum.el
@@ -3519,8 +3519,7 @@ Returns non-nil if the setup was successful."
3519 (dead-name (concat "*Dead Summary " 3519 (dead-name (concat "*Dead Summary "
3520 (gnus-group-decoded-name group) "*"))) 3520 (gnus-group-decoded-name group) "*")))
3521 ;; If a dead summary buffer exists, we kill it. 3521 ;; If a dead summary buffer exists, we kill it.
3522 (when (gnus-buffer-live-p dead-name) 3522 (gnus-kill-buffer dead-name)
3523 (gnus-kill-buffer dead-name))
3524 (if (get-buffer buffer) 3523 (if (get-buffer buffer)
3525 (progn 3524 (progn
3526 (set-buffer buffer) 3525 (set-buffer buffer)
@@ -3622,7 +3621,7 @@ buffer that was in action when the last article was fetched."
3622(defun gnus-update-summary-mark-positions () 3621(defun gnus-update-summary-mark-positions ()
3623 "Compute where the summary marks are to go." 3622 "Compute where the summary marks are to go."
3624 (save-excursion 3623 (save-excursion
3625 (when (gnus-buffer-exists-p gnus-summary-buffer) 3624 (when (gnus-buffer-live-p gnus-summary-buffer)
3626 (set-buffer gnus-summary-buffer)) 3625 (set-buffer gnus-summary-buffer))
3627 (let ((spec gnus-summary-line-format-spec) 3626 (let ((spec gnus-summary-line-format-spec)
3628 pos) 3627 pos)
@@ -7326,7 +7325,7 @@ If FORCE (the prefix), also save the .newsrc file(s)."
7326 (gnus-summary-update-info)) 7325 (gnus-summary-update-info))
7327 (gnus-close-group group) 7326 (gnus-close-group group)
7328 ;; Make sure where we were, and go to next newsgroup. 7327 ;; Make sure where we were, and go to next newsgroup.
7329 (when (buffer-live-p (get-buffer gnus-group-buffer)) 7328 (when (gnus-buffer-live-p gnus-group-buffer)
7330 (set-buffer gnus-group-buffer)) 7329 (set-buffer gnus-group-buffer))
7331 (unless quit-config 7330 (unless quit-config
7332 (gnus-group-jump-to-group group)) 7331 (gnus-group-jump-to-group group))
@@ -7501,8 +7500,7 @@ The state which existed when entering the ephemeral is reset."
7501(defun gnus-deaden-summary () 7500(defun gnus-deaden-summary ()
7502 "Make the current summary buffer into a dead summary buffer." 7501 "Make the current summary buffer into a dead summary buffer."
7503 ;; Kill any previous dead summary buffer. 7502 ;; Kill any previous dead summary buffer.
7504 (when (and gnus-dead-summary 7503 (when (buffer-live-p gnus-dead-summary)
7505 (buffer-name gnus-dead-summary))
7506 (with-current-buffer gnus-dead-summary 7504 (with-current-buffer gnus-dead-summary
7507 (when gnus-dead-summary-mode 7505 (when gnus-dead-summary-mode
7508 (kill-buffer (current-buffer))))) 7506 (kill-buffer (current-buffer)))))
@@ -7520,7 +7518,7 @@ The state which existed when entering the ephemeral is reset."
7520(defun gnus-kill-or-deaden-summary (buffer) 7518(defun gnus-kill-or-deaden-summary (buffer)
7521 "Kill or deaden the summary BUFFER." 7519 "Kill or deaden the summary BUFFER."
7522 (save-excursion 7520 (save-excursion
7523 (when (and (buffer-name buffer) 7521 (when (and (buffer-live-p buffer)
7524 (not gnus-single-article-buffer)) 7522 (not gnus-single-article-buffer))
7525 (with-current-buffer buffer 7523 (with-current-buffer buffer
7526 (gnus-kill-buffer gnus-article-buffer) 7524 (gnus-kill-buffer gnus-article-buffer)
@@ -7529,12 +7527,12 @@ The state which existed when entering the ephemeral is reset."
7529 ;; Kill the buffer. 7527 ;; Kill the buffer.
7530 (gnus-kill-summary-on-exit 7528 (gnus-kill-summary-on-exit
7531 (when (and gnus-use-trees 7529 (when (and gnus-use-trees
7532 (gnus-buffer-exists-p buffer)) 7530 (gnus-buffer-live-p buffer))
7533 (with-current-buffer buffer 7531 (with-current-buffer buffer
7534 (gnus-tree-close))) 7532 (gnus-tree-close)))
7535 (gnus-kill-buffer buffer)) 7533 (gnus-kill-buffer buffer))
7536 ;; Deaden the buffer. 7534 ;; Deaden the buffer.
7537 ((gnus-buffer-exists-p buffer) 7535 ((gnus-buffer-live-p buffer)
7538 (with-current-buffer buffer 7536 (with-current-buffer buffer
7539 (gnus-deaden-summary)))))) 7537 (gnus-deaden-summary))))))
7540 7538
@@ -7605,7 +7603,7 @@ previous group instead."
7605 (and unreads (not (zerop unreads)))) 7603 (and unreads (not (zerop unreads))))
7606 (gnus-summary-read-group 7604 (gnus-summary-read-group
7607 target-group nil no-article 7605 target-group nil no-article
7608 (and (buffer-name current-buffer) current-buffer) 7606 (and (buffer-live-p current-buffer) current-buffer)
7609 nil backward)) 7607 nil backward))
7610 (setq entered t) 7608 (setq entered t)
7611 (setq current-group target-group 7609 (setq current-group target-group
diff --git a/lisp/gnus/gnus-util.el b/lisp/gnus/gnus-util.el
index e4bc9b900c2..31421cc7555 100644
--- a/lisp/gnus/gnus-util.el
+++ b/lisp/gnus/gnus-util.el
@@ -109,12 +109,6 @@ This is a compatibility function for different Emacsen."
109(defsubst gnus-goto-char (point) 109(defsubst gnus-goto-char (point)
110 (and point (goto-char point))) 110 (and point (goto-char point)))
111 111
112(defmacro gnus-buffer-exists-p (buffer)
113 `(let ((buffer ,buffer))
114 (when buffer
115 (funcall (if (stringp buffer) 'get-buffer 'buffer-name)
116 buffer))))
117
118(defun gnus-delete-first (elt list) 112(defun gnus-delete-first (elt list)
119 "Delete by side effect the first occurrence of ELT as a member of LIST." 113 "Delete by side effect the first occurrence of ELT as a member of LIST."
120 (if (equal (car list) elt) 114 (if (equal (car list) elt)
@@ -562,8 +556,12 @@ If N, return the Nth ancestor instead."
562 (match-string 1 references)))))) 556 (match-string 1 references))))))
563 557
564(defsubst gnus-buffer-live-p (buffer) 558(defsubst gnus-buffer-live-p (buffer)
565 "Say whether BUFFER is alive or not." 559 "If BUFFER names a live buffer, return its object; else nil."
566 (and buffer (buffer-live-p (get-buffer buffer)))) 560 (and buffer (buffer-live-p (setq buffer (get-buffer buffer)))
561 buffer))
562
563(define-obsolete-function-alias 'gnus-buffer-exists-p
564 'gnus-buffer-live-p "27.1")
567 565
568(defun gnus-horizontal-recenter () 566(defun gnus-horizontal-recenter ()
569 "Recenter the current buffer horizontally." 567 "Recenter the current buffer horizontally."
diff --git a/lisp/gnus/gnus-win.el b/lisp/gnus/gnus-win.el
index 40c5b42d45f..e6906e99bb2 100644
--- a/lisp/gnus/gnus-win.el
+++ b/lisp/gnus/gnus-win.el
@@ -270,7 +270,7 @@ See the Gnus manual for an explanation of the syntax used.")
270 (error "Invalid buffer type: %s" type)) 270 (error "Invalid buffer type: %s" type))
271 (let ((buf (gnus-get-buffer-create 271 (let ((buf (gnus-get-buffer-create
272 (gnus-window-to-buffer-helper buffer)))) 272 (gnus-window-to-buffer-helper buffer))))
273 (when (buffer-name buf) 273 (when (buffer-live-p buf)
274 (cond 274 (cond
275 ((eq buf (window-buffer (selected-window))) 275 ((eq buf (window-buffer (selected-window)))
276 (set-buffer buf)) 276 (set-buffer buf))
@@ -430,20 +430,13 @@ See the Gnus manual for an explanation of the syntax used.")
430(defun gnus-delete-windows-in-gnusey-frames () 430(defun gnus-delete-windows-in-gnusey-frames ()
431 "Do a `delete-other-windows' in all frames that have Gnus windows." 431 "Do a `delete-other-windows' in all frames that have Gnus windows."
432 (let ((buffers (gnus-buffers))) 432 (let ((buffers (gnus-buffers)))
433 (mapcar 433 (dolist (frame (frame-list))
434 (lambda (frame) 434 (unless (eq (frame-parameter frame 'minibuffer) 'only)
435 (unless (eq (cdr (assq 'minibuffer 435 (select-frame frame)
436 (frame-parameters frame))) 436 (when (get-window-with-predicate
437 'only) 437 (lambda (window)
438 (select-frame frame) 438 (memq (window-buffer window) buffers)))
439 (let (do-delete) 439 (delete-other-windows))))))
440 (walk-windows
441 (lambda (window)
442 (when (memq (window-buffer window) buffers)
443 (setq do-delete t))))
444 (when do-delete
445 (delete-other-windows)))))
446 (frame-list))))
447 440
448(defun gnus-all-windows-visible-p (split) 441(defun gnus-all-windows-visible-p (split)
449 "Say whether all buffers in SPLIT are currently visible. 442 "Say whether all buffers in SPLIT are currently visible.
@@ -491,11 +484,10 @@ should have point."
491 (nth 1 (window-edges window))) 484 (nth 1 (window-edges window)))
492 485
493(defun gnus-remove-some-windows () 486(defun gnus-remove-some-windows ()
494 (let ((buffers (gnus-buffers)) 487 (let (bufs lowest-buf lowest)
495 buf bufs lowest-buf lowest)
496 (save-excursion 488 (save-excursion
497 ;; Remove windows on all known Gnus buffers. 489 ;; Remove windows on all known Gnus buffers.
498 (while (setq buf (pop buffers)) 490 (dolist (buf (gnus-buffers))
499 (when (get-buffer-window buf) 491 (when (get-buffer-window buf)
500 (push buf bufs) 492 (push buf bufs)
501 (pop-to-buffer buf) 493 (pop-to-buffer buf)
@@ -506,8 +498,8 @@ should have point."
506 (when lowest-buf 498 (when lowest-buf
507 (pop-to-buffer lowest-buf) 499 (pop-to-buffer lowest-buf)
508 (set-buffer nntp-server-buffer)) 500 (set-buffer nntp-server-buffer))
509 (mapcar (lambda (b) (delete-windows-on b t)) 501 (dolist (b (delq lowest-buf bufs))
510 (delq lowest-buf bufs))))) 502 (delete-windows-on b t)))))
511 503
512(defun gnus-get-buffer-window (buffer &optional frame) 504(defun gnus-get-buffer-window (buffer &optional frame)
513 "Return a window currently displaying BUFFER, or nil if none. 505 "Return a window currently displaying BUFFER, or nil if none.
diff --git a/lisp/gnus/gnus.el b/lisp/gnus/gnus.el
index 7538274e158..1c41e081b76 100644
--- a/lisp/gnus/gnus.el
+++ b/lisp/gnus/gnus.el
@@ -665,26 +665,15 @@ be used directly.")
665(defmacro gnus-kill-buffer (buffer) 665(defmacro gnus-kill-buffer (buffer)
666 "Kill BUFFER and remove from the list of Gnus buffers." 666 "Kill BUFFER and remove from the list of Gnus buffers."
667 `(let ((buf ,buffer)) 667 `(let ((buf ,buffer))
668 (when (gnus-buffer-exists-p buf) 668 (when (gnus-buffer-live-p buf)
669 (kill-buffer buf) 669 (kill-buffer buf)
670 (gnus-prune-buffers)))) 670 (gnus-prune-buffers))))
671 671
672(defun gnus-prune-buffers ()
673 (dolist (buf gnus-buffers)
674 (unless (buffer-live-p buf)
675 (setq gnus-buffers (delete buf gnus-buffers)))))
676
677(defun gnus-buffers () 672(defun gnus-buffers ()
678 "Return a list of live Gnus buffers." 673 "Return a list of live Gnus buffers."
679 (while (and gnus-buffers 674 (setq gnus-buffers (seq-filter #'buffer-live-p gnus-buffers)))
680 (not (buffer-name (car gnus-buffers)))) 675
681 (pop gnus-buffers)) 676(defalias 'gnus-prune-buffers #'gnus-buffers)
682 (let ((buffers gnus-buffers))
683 (while (cdr buffers)
684 (if (buffer-name (cadr buffers))
685 (pop buffers)
686 (setcdr buffers (cddr buffers)))))
687 gnus-buffers)
688 677
689;;; Splash screen. 678;;; Splash screen.
690 679
@@ -3638,9 +3627,8 @@ If SYMBOL, return the value of that symbol in the group parameters.
3638 3627
3639If you call this function inside a loop, consider using the faster 3628If you call this function inside a loop, consider using the faster
3640`gnus-group-fast-parameter' instead." 3629`gnus-group-fast-parameter' instead."
3641 (with-current-buffer (if (buffer-live-p (get-buffer gnus-group-buffer)) 3630 (with-current-buffer (or (gnus-buffer-live-p gnus-group-buffer)
3642 gnus-group-buffer 3631 (current-buffer))
3643 (current-buffer))
3644 (if symbol 3632 (if symbol
3645 (gnus-group-fast-parameter group symbol allow-list) 3633 (gnus-group-fast-parameter group symbol allow-list)
3646 (nconc 3634 (nconc
diff --git a/lisp/gnus/mail-source.el b/lisp/gnus/mail-source.el
index 9d70bd5afa9..69ecde30275 100644
--- a/lisp/gnus/mail-source.el
+++ b/lisp/gnus/mail-source.el
@@ -722,8 +722,7 @@ Deleting old (> %s day(s)) incoming mail file `%s'." diff bfile)
722 (buffer-string) result)) 722 (buffer-string) result))
723 (error "%s" (buffer-string))) 723 (error "%s" (buffer-string)))
724 (setq to nil))))))) 724 (setq to nil)))))))
725 (when (and errors 725 (when (buffer-live-p errors)
726 (buffer-name errors))
727 (kill-buffer errors)) 726 (kill-buffer errors))
728 ;; Return whether we moved successfully or not. 727 ;; Return whether we moved successfully or not.
729 to))) 728 to)))
diff --git a/lisp/gnus/message.el b/lisp/gnus/message.el
index 8b72ef88aba..29a8f25f31f 100644
--- a/lisp/gnus/message.el
+++ b/lisp/gnus/message.el
@@ -2034,8 +2034,7 @@ see `message-narrow-to-headers-or-head'."
2034 2034
2035(defmacro message-with-reply-buffer (&rest forms) 2035(defmacro message-with-reply-buffer (&rest forms)
2036 "Evaluate FORMS in the reply buffer, if it exists." 2036 "Evaluate FORMS in the reply buffer, if it exists."
2037 `(when (and (bufferp message-reply-buffer) 2037 `(when (buffer-live-p message-reply-buffer)
2038 (buffer-name message-reply-buffer))
2039 (with-current-buffer message-reply-buffer 2038 (with-current-buffer message-reply-buffer
2040 ,@forms))) 2039 ,@forms)))
2041 2040
@@ -3229,8 +3228,7 @@ or in the synonym headers, defined by `message-header-synonyms'."
3229 "Widen the reply to include maximum recipients." 3228 "Widen the reply to include maximum recipients."
3230 (interactive) 3229 (interactive)
3231 (let ((follow-to 3230 (let ((follow-to
3232 (and (bufferp message-reply-buffer) 3231 (and (buffer-live-p message-reply-buffer)
3233 (buffer-name message-reply-buffer)
3234 (with-current-buffer message-reply-buffer 3232 (with-current-buffer message-reply-buffer
3235 (message-get-reply-headers t))))) 3233 (message-get-reply-headers t)))))
3236 (save-excursion 3234 (save-excursion
@@ -4027,7 +4025,7 @@ It should typically alter the sending method in some way or other."
4027 (let ((buf (current-buffer)) 4025 (let ((buf (current-buffer))
4028 (actions message-exit-actions)) 4026 (actions message-exit-actions))
4029 (when (and (message-send arg) 4027 (when (and (message-send arg)
4030 (buffer-name buf)) 4028 (buffer-live-p buf))
4031 (message-bury buf) 4029 (message-bury buf)
4032 (if message-kill-buffer-on-exit 4030 (if message-kill-buffer-on-exit
4033 (kill-buffer buf)) 4031 (kill-buffer buf))
@@ -4740,7 +4738,7 @@ that instead."
4740 (if (not (zerop (buffer-size))) 4738 (if (not (zerop (buffer-size)))
4741 (error "Sending...failed to %s" 4739 (error "Sending...failed to %s"
4742 (buffer-string)))))) 4740 (buffer-string))))))
4743 (when (bufferp errbuf) 4741 (when (buffer-live-p errbuf)
4744 (kill-buffer errbuf))))) 4742 (kill-buffer errbuf)))))
4745 4743
4746(defun message-send-mail-with-qmail () 4744(defun message-send-mail-with-qmail ()
@@ -6377,8 +6375,7 @@ moved to the beginning "
6377(defun message-pop-to-buffer (name &optional switch-function) 6375(defun message-pop-to-buffer (name &optional switch-function)
6378 "Pop to buffer NAME, and warn if it already exists and is modified." 6376 "Pop to buffer NAME, and warn if it already exists and is modified."
6379 (let ((buffer (get-buffer name))) 6377 (let ((buffer (get-buffer name)))
6380 (if (and buffer 6378 (if (buffer-live-p buffer)
6381 (buffer-name buffer))
6382 (let ((window (get-buffer-window buffer 0))) 6379 (let ((window (get-buffer-window buffer 0)))
6383 (if window 6380 (if window
6384 ;; Raise the frame already displaying the message buffer. 6381 ;; Raise the frame already displaying the message buffer.
@@ -6409,7 +6406,7 @@ moved to the beginning "
6409 (>= (length message-buffer-list) message-max-buffers)) 6406 (>= (length message-buffer-list) message-max-buffers))
6410 ;; Kill the oldest buffer -- unless it has been changed. 6407 ;; Kill the oldest buffer -- unless it has been changed.
6411 (let ((buffer (pop message-buffer-list))) 6408 (let ((buffer (pop message-buffer-list)))
6412 (when (and (buffer-name buffer) 6409 (when (and (buffer-live-p buffer)
6413 (not (buffer-modified-p buffer))) 6410 (not (buffer-modified-p buffer)))
6414 (kill-buffer buffer)))) 6411 (kill-buffer buffer))))
6415 ;; Rename the buffer. 6412 ;; Rename the buffer.
@@ -7376,9 +7373,7 @@ Optional DIGEST will use digest to forward."
7376 (unless (multibyte-string-p contents) 7373 (unless (multibyte-string-p contents)
7377 (error "Attempt to insert unibyte string from the buffer \"%s\"\ 7374 (error "Attempt to insert unibyte string from the buffer \"%s\"\
7378 to the multibyte buffer \"%s\"" 7375 to the multibyte buffer \"%s\""
7379 (if (bufferp forward-buffer) 7376 forward-buffer
7380 (buffer-name forward-buffer)
7381 forward-buffer)
7382 (buffer-name))) 7377 (buffer-name)))
7383 (insert (mm-with-multibyte-buffer 7378 (insert (mm-with-multibyte-buffer
7384 (insert contents) 7379 (insert contents)
@@ -7440,9 +7435,7 @@ Optional DIGEST will use digest to forward."
7440 (unless (multibyte-string-p contents) 7435 (unless (multibyte-string-p contents)
7441 (error "Attempt to insert unibyte string from the buffer \"%s\"\ 7436 (error "Attempt to insert unibyte string from the buffer \"%s\"\
7442 to the multibyte buffer \"%s\"" 7437 to the multibyte buffer \"%s\""
7443 (if (bufferp forward-buffer) 7438 forward-buffer
7444 (buffer-name forward-buffer)
7445 forward-buffer)
7446 (buffer-name))) 7439 (buffer-name)))
7447 (insert (mm-with-multibyte-buffer 7440 (insert (mm-with-multibyte-buffer
7448 (insert contents) 7441 (insert contents)
diff --git a/lisp/gnus/mm-decode.el b/lisp/gnus/mm-decode.el
index 0b9cdde1fa5..85aa6944dd3 100644
--- a/lisp/gnus/mm-decode.el
+++ b/lisp/gnus/mm-decode.el
@@ -893,8 +893,7 @@ external if displayed external."
893 (if method 893 (if method
894 (progn 894 (progn
895 (when (and (boundp 'gnus-summary-buffer) 895 (when (and (boundp 'gnus-summary-buffer)
896 (bufferp gnus-summary-buffer) 896 (buffer-live-p gnus-summary-buffer))
897 (buffer-name gnus-summary-buffer))
898 (when attachment-filename 897 (when attachment-filename
899 (with-current-buffer mm 898 (with-current-buffer mm
900 (rename-buffer (format "*mm* %s" attachment-filename) t))) 899 (rename-buffer (format "*mm* %s" attachment-filename) t)))
@@ -1152,9 +1151,8 @@ external if displayed external."
1152 (ignore-errors (delete-file (car object))) 1151 (ignore-errors (delete-file (car object)))
1153 (ignore-errors (delete-directory (file-name-directory 1152 (ignore-errors (delete-directory (file-name-directory
1154 (car object))))) 1153 (car object)))))
1155 ((bufferp object) 1154 ((buffer-live-p object)
1156 (when (buffer-live-p object) 1155 (kill-buffer object))))
1157 (kill-buffer object)))))
1158 (mm-handle-set-undisplayer handle nil)))) 1156 (mm-handle-set-undisplayer handle nil))))
1159 1157
1160(defun mm-display-inline (handle) 1158(defun mm-display-inline (handle)
diff --git a/lisp/gnus/nnbabyl.el b/lisp/gnus/nnbabyl.el
index 3b316454107..0f4f4303cd8 100644
--- a/lisp/gnus/nnbabyl.el
+++ b/lisp/gnus/nnbabyl.el
@@ -145,10 +145,8 @@
145 145
146(deffoo nnbabyl-server-opened (&optional server) 146(deffoo nnbabyl-server-opened (&optional server)
147 (and (nnoo-current-server-p 'nnbabyl server) 147 (and (nnoo-current-server-p 'nnbabyl server)
148 nnbabyl-mbox-buffer 148 (buffer-live-p nnbabyl-mbox-buffer)
149 (buffer-name nnbabyl-mbox-buffer) 149 (buffer-live-p nntp-server-buffer)))
150 nntp-server-buffer
151 (buffer-name nntp-server-buffer)))
152 150
153(deffoo nnbabyl-request-article (article &optional newsgroup server buffer) 151(deffoo nnbabyl-request-article (article &optional newsgroup server buffer)
154 (nnbabyl-possibly-change-newsgroup newsgroup server) 152 (nnbabyl-possibly-change-newsgroup newsgroup server)
@@ -452,8 +450,7 @@
452 (when (and server 450 (when (and server
453 (not (nnbabyl-server-opened server))) 451 (not (nnbabyl-server-opened server)))
454 (nnbabyl-open-server server)) 452 (nnbabyl-open-server server))
455 (when (or (not nnbabyl-mbox-buffer) 453 (unless (buffer-live-p nnbabyl-mbox-buffer)
456 (not (buffer-name nnbabyl-mbox-buffer)))
457 (save-excursion (nnbabyl-read-mbox))) 454 (save-excursion (nnbabyl-read-mbox)))
458 (unless nnbabyl-group-alist 455 (unless nnbabyl-group-alist
459 (nnmail-activate 'nnbabyl)) 456 (nnmail-activate 'nnbabyl))
@@ -556,8 +553,7 @@
556 (nnmail-activate 'nnbabyl) 553 (nnmail-activate 'nnbabyl)
557 (nnbabyl-create-mbox) 554 (nnbabyl-create-mbox)
558 555
559 (unless (and nnbabyl-mbox-buffer 556 (unless (and (buffer-live-p nnbabyl-mbox-buffer)
560 (buffer-name nnbabyl-mbox-buffer)
561 (with-current-buffer nnbabyl-mbox-buffer 557 (with-current-buffer nnbabyl-mbox-buffer
562 (= (buffer-size) (nnheader-file-size nnbabyl-mbox-file)))) 558 (= (buffer-size) (nnheader-file-size nnbabyl-mbox-file))))
563 ;; This buffer has changed since we read it last. Possibly. 559 ;; This buffer has changed since we read it last. Possibly.
@@ -627,8 +623,7 @@
627 (let ((idents (gnus-make-hashtable 1000)) 623 (let ((idents (gnus-make-hashtable 1000))
628 id) 624 id)
629 (save-excursion 625 (save-excursion
630 (when (or (not nnbabyl-mbox-buffer) 626 (unless (buffer-live-p nnbabyl-mbox-buffer)
631 (not (buffer-name nnbabyl-mbox-buffer)))
632 (nnbabyl-read-mbox)) 627 (nnbabyl-read-mbox))
633 (set-buffer nnbabyl-mbox-buffer) 628 (set-buffer nnbabyl-mbox-buffer)
634 (goto-char (point-min)) 629 (goto-char (point-min))
diff --git a/lisp/gnus/nndiary.el b/lisp/gnus/nndiary.el
index edbdc65d3f2..f8ec222616f 100644
--- a/lisp/gnus/nndiary.el
+++ b/lisp/gnus/nndiary.el
@@ -1015,7 +1015,7 @@ all. This may very well take some time.")
1015(defun nndiary-save-nov () 1015(defun nndiary-save-nov ()
1016 (save-excursion 1016 (save-excursion
1017 (while nndiary-nov-buffer-alist 1017 (while nndiary-nov-buffer-alist
1018 (when (buffer-name (cdar nndiary-nov-buffer-alist)) 1018 (when (buffer-live-p (cdar nndiary-nov-buffer-alist))
1019 (set-buffer (cdar nndiary-nov-buffer-alist)) 1019 (set-buffer (cdar nndiary-nov-buffer-alist))
1020 (when (buffer-modified-p) 1020 (when (buffer-modified-p)
1021 (nnmail-write-region 1 (point-max) nndiary-nov-buffer-file-name 1021 (nnmail-write-region 1 (point-max) nndiary-nov-buffer-file-name
diff --git a/lisp/gnus/nndoc.el b/lisp/gnus/nndoc.el
index 532ba11fa09..9c8cab597a6 100644
--- a/lisp/gnus/nndoc.el
+++ b/lisp/gnus/nndoc.el
@@ -309,8 +309,7 @@ from the document.")
309 309
310(deffoo nndoc-close-group (group &optional server) 310(deffoo nndoc-close-group (group &optional server)
311 (nndoc-possibly-change-buffer group server) 311 (nndoc-possibly-change-buffer group server)
312 (and nndoc-current-buffer 312 (and (buffer-live-p nndoc-current-buffer)
313 (buffer-name nndoc-current-buffer)
314 (kill-buffer nndoc-current-buffer)) 313 (kill-buffer nndoc-current-buffer))
315 (setq nndoc-group-alist (delq (assoc group nndoc-group-alist) 314 (setq nndoc-group-alist (delq (assoc group nndoc-group-alist)
316 nndoc-group-alist)) 315 nndoc-group-alist))
@@ -335,8 +334,7 @@ from the document.")
335 (let (buf) 334 (let (buf)
336 (cond 335 (cond
337 ;; The current buffer is this group's buffer. 336 ;; The current buffer is this group's buffer.
338 ((and nndoc-current-buffer 337 ((and (buffer-live-p nndoc-current-buffer)
339 (buffer-name nndoc-current-buffer)
340 (eq nndoc-current-buffer 338 (eq nndoc-current-buffer
341 (setq buf (cdr (assoc group nndoc-group-alist)))))) 339 (setq buf (cdr (assoc group nndoc-group-alist))))))
342 ;; We change buffers by taking an old from the group alist. 340 ;; We change buffers by taking an old from the group alist.
@@ -344,8 +342,7 @@ from the document.")
344 (buf 342 (buf
345 (setq nndoc-current-buffer buf)) 343 (setq nndoc-current-buffer buf))
346 ;; It's a totally new group. 344 ;; It's a totally new group.
347 ((or (and (bufferp nndoc-address) 345 ((or (buffer-live-p nndoc-address)
348 (buffer-name nndoc-address))
349 (and (stringp nndoc-address) 346 (and (stringp nndoc-address)
350 (file-exists-p nndoc-address) 347 (file-exists-p nndoc-address)
351 (not (file-directory-p nndoc-address)))) 348 (not (file-directory-p nndoc-address))))
diff --git a/lisp/gnus/nnfolder.el b/lisp/gnus/nnfolder.el
index 41963f32efc..6334b1c998d 100644
--- a/lisp/gnus/nnfolder.el
+++ b/lisp/gnus/nnfolder.el
@@ -328,8 +328,7 @@ all. This may very well take some time.")
328 (delq inf nnfolder-buffer-alist)) 328 (delq inf nnfolder-buffer-alist))
329 (setq nnfolder-current-buffer (cadr inf) 329 (setq nnfolder-current-buffer (cadr inf)
330 nnfolder-current-group (car inf)))) 330 nnfolder-current-group (car inf))))
331 (when (and nnfolder-current-buffer 331 (when (buffer-live-p nnfolder-current-buffer)
332 (buffer-name nnfolder-current-buffer))
333 (with-current-buffer nnfolder-current-buffer 332 (with-current-buffer nnfolder-current-buffer
334 ;; If the buffer was modified, write the file out now. 333 ;; If the buffer was modified, write the file out now.
335 (nnfolder-save-buffer) 334 (nnfolder-save-buffer)
@@ -1110,7 +1109,7 @@ This command does not work if you use short group names."
1110(defun nnfolder-save-nov () 1109(defun nnfolder-save-nov ()
1111 (save-excursion 1110 (save-excursion
1112 (while nnfolder-nov-buffer-alist 1111 (while nnfolder-nov-buffer-alist
1113 (when (buffer-name (cdar nnfolder-nov-buffer-alist)) 1112 (when (buffer-live-p (cdar nnfolder-nov-buffer-alist))
1114 (set-buffer (cdar nnfolder-nov-buffer-alist)) 1113 (set-buffer (cdar nnfolder-nov-buffer-alist))
1115 (when (buffer-modified-p) 1114 (when (buffer-modified-p)
1116 (gnus-make-directory (file-name-directory 1115 (gnus-make-directory (file-name-directory
diff --git a/lisp/gnus/nnimap.el b/lisp/gnus/nnimap.el
index ac1d28644f7..9e52abc1ca7 100644
--- a/lisp/gnus/nnimap.el
+++ b/lisp/gnus/nnimap.el
@@ -346,7 +346,7 @@ textual parts.")
346 (with-current-buffer 346 (with-current-buffer
347 (generate-new-buffer (format " *nnimap %s %s %s*" 347 (generate-new-buffer (format " *nnimap %s %s %s*"
348 nnimap-address nnimap-server-port 348 nnimap-address nnimap-server-port
349 (gnus-buffer-exists-p buffer))) 349 buffer))
350 (mm-disable-multibyte) 350 (mm-disable-multibyte)
351 (buffer-disable-undo) 351 (buffer-disable-undo)
352 (gnus-add-buffer) 352 (gnus-add-buffer)
@@ -382,7 +382,7 @@ textual parts.")
382(defun nnimap-keepalive () 382(defun nnimap-keepalive ()
383 (let ((now (current-time))) 383 (let ((now (current-time)))
384 (dolist (buffer nnimap-process-buffers) 384 (dolist (buffer nnimap-process-buffers)
385 (when (buffer-name buffer) 385 (when (buffer-live-p buffer)
386 (with-current-buffer buffer 386 (with-current-buffer buffer
387 (when (and nnimap-object 387 (when (and nnimap-object
388 (nnimap-last-command-time nnimap-object) 388 (nnimap-last-command-time nnimap-object)
@@ -1899,7 +1899,7 @@ Return the server's response to the SELECT or EXAMINE command."
1899 "Find the connection delivering to BUFFER." 1899 "Find the connection delivering to BUFFER."
1900 (let ((entry (assoc buffer nnimap-connection-alist))) 1900 (let ((entry (assoc buffer nnimap-connection-alist)))
1901 (when entry 1901 (when entry
1902 (if (and (buffer-name (cadr entry)) 1902 (if (and (buffer-live-p (cadr entry))
1903 (get-buffer-process (cadr entry)) 1903 (get-buffer-process (cadr entry))
1904 (memq (process-status (get-buffer-process (cadr entry))) 1904 (memq (process-status (get-buffer-process (cadr entry)))
1905 '(open run))) 1905 '(open run)))
diff --git a/lisp/gnus/nnmail.el b/lisp/gnus/nnmail.el
index 37f6e75b90e..ed3d5712708 100644
--- a/lisp/gnus/nnmail.el
+++ b/lisp/gnus/nnmail.el
@@ -1561,8 +1561,7 @@ See the documentation for the variable `nnmail-split-fancy' for details."
1561 1561
1562(defun nnmail-cache-open () 1562(defun nnmail-cache-open ()
1563 (if (or (not nnmail-treat-duplicates) 1563 (if (or (not nnmail-treat-duplicates)
1564 (and nnmail-cache-buffer 1564 (buffer-live-p nnmail-cache-buffer))
1565 (buffer-name nnmail-cache-buffer)))
1566 () ; The buffer is open. 1565 () ; The buffer is open.
1567 (with-current-buffer 1566 (with-current-buffer
1568 (setq nnmail-cache-buffer 1567 (setq nnmail-cache-buffer
@@ -1574,9 +1573,8 @@ See the documentation for the variable `nnmail-split-fancy' for details."
1574 (current-buffer)))) 1573 (current-buffer))))
1575 1574
1576(defun nnmail-cache-close () 1575(defun nnmail-cache-close ()
1577 (when (and nnmail-cache-buffer 1576 (when (and nnmail-treat-duplicates
1578 nnmail-treat-duplicates 1577 (buffer-live-p nnmail-cache-buffer)
1579 (buffer-name nnmail-cache-buffer)
1580 (buffer-modified-p nnmail-cache-buffer)) 1578 (buffer-modified-p nnmail-cache-buffer))
1581 (with-current-buffer nnmail-cache-buffer 1579 (with-current-buffer nnmail-cache-buffer
1582 ;; Weed out the excess number of Message-IDs. 1580 ;; Weed out the excess number of Message-IDs.
diff --git a/lisp/gnus/nnmbox.el b/lisp/gnus/nnmbox.el
index bba41336dd9..110f39a867f 100644
--- a/lisp/gnus/nnmbox.el
+++ b/lisp/gnus/nnmbox.el
@@ -131,18 +131,15 @@
131 t))) 131 t)))
132 132
133(deffoo nnmbox-close-server (&optional server) 133(deffoo nnmbox-close-server (&optional server)
134 (when (and nnmbox-mbox-buffer 134 (when (buffer-live-p nnmbox-mbox-buffer)
135 (buffer-name nnmbox-mbox-buffer))
136 (kill-buffer nnmbox-mbox-buffer)) 135 (kill-buffer nnmbox-mbox-buffer))
137 (nnoo-close-server 'nnmbox server) 136 (nnoo-close-server 'nnmbox server)
138 t) 137 t)
139 138
140(deffoo nnmbox-server-opened (&optional server) 139(deffoo nnmbox-server-opened (&optional server)
141 (and (nnoo-current-server-p 'nnmbox server) 140 (and (nnoo-current-server-p 'nnmbox server)
142 nnmbox-mbox-buffer 141 (buffer-live-p nnmbox-mbox-buffer)
143 (buffer-name nnmbox-mbox-buffer) 142 (buffer-live-p nntp-server-buffer)))
144 nntp-server-buffer
145 (buffer-name nntp-server-buffer)))
146 143
147(deffoo nnmbox-request-article (article &optional newsgroup server buffer) 144(deffoo nnmbox-request-article (article &optional newsgroup server buffer)
148 (nnmbox-possibly-change-newsgroup newsgroup server) 145 (nnmbox-possibly-change-newsgroup newsgroup server)
@@ -463,8 +460,7 @@
463 (when (and server 460 (when (and server
464 (not (nnmbox-server-opened server))) 461 (not (nnmbox-server-opened server)))
465 (nnmbox-open-server server)) 462 (nnmbox-open-server server))
466 (when (or (not nnmbox-mbox-buffer) 463 (unless (buffer-live-p nnmbox-mbox-buffer)
467 (not (buffer-name nnmbox-mbox-buffer)))
468 (nnmbox-read-mbox)) 464 (nnmbox-read-mbox))
469 (when (not nnmbox-group-alist) 465 (when (not nnmbox-group-alist)
470 (nnmail-activate 'nnmbox)) 466 (nnmail-activate 'nnmbox))
@@ -622,8 +618,7 @@
622(defun nnmbox-read-mbox () 618(defun nnmbox-read-mbox ()
623 (nnmail-activate 'nnmbox) 619 (nnmail-activate 'nnmbox)
624 (nnmbox-create-mbox) 620 (nnmbox-create-mbox)
625 (if (and nnmbox-mbox-buffer 621 (if (and (buffer-live-p nnmbox-mbox-buffer)
626 (buffer-name nnmbox-mbox-buffer)
627 (with-current-buffer nnmbox-mbox-buffer 622 (with-current-buffer nnmbox-mbox-buffer
628 (= (buffer-size) (nnheader-file-size nnmbox-mbox-file)))) 623 (= (buffer-size) (nnheader-file-size nnmbox-mbox-file))))
629 () 624 ()
diff --git a/lisp/gnus/nnml.el b/lisp/gnus/nnml.el
index b95f3c82388..89c8b23b65a 100644
--- a/lisp/gnus/nnml.el
+++ b/lisp/gnus/nnml.el
@@ -772,7 +772,7 @@ article number. This function is called narrowed to an article."
772(defun nnml-save-incremental-nov () 772(defun nnml-save-incremental-nov ()
773 (save-excursion 773 (save-excursion
774 (while nnml-incremental-nov-buffer-alist 774 (while nnml-incremental-nov-buffer-alist
775 (when (buffer-name (cdar nnml-incremental-nov-buffer-alist)) 775 (when (buffer-live-p (cdar nnml-incremental-nov-buffer-alist))
776 (set-buffer (cdar nnml-incremental-nov-buffer-alist)) 776 (set-buffer (cdar nnml-incremental-nov-buffer-alist))
777 (when (buffer-modified-p) 777 (when (buffer-modified-p)
778 (nnmail-write-region (point-min) (point-max) 778 (nnmail-write-region (point-min) (point-max)
@@ -838,9 +838,7 @@ article number. This function is called narrowed to an article."
838 buffer)) 838 buffer))
839 839
840(defun nnml-open-nov (group) 840(defun nnml-open-nov (group)
841 (or (let ((buffer (cdr (assoc group nnml-nov-buffer-alist)))) 841 (or (gnus-buffer-live-p (cdr (assoc group nnml-nov-buffer-alist)))
842 (and (buffer-name buffer)
843 buffer))
844 (let ((buffer (nnml-get-nov-buffer group))) 842 (let ((buffer (nnml-get-nov-buffer group)))
845 (push (cons group buffer) nnml-nov-buffer-alist) 843 (push (cons group buffer) nnml-nov-buffer-alist)
846 buffer))) 844 buffer)))
@@ -848,7 +846,7 @@ article number. This function is called narrowed to an article."
848(defun nnml-save-nov () 846(defun nnml-save-nov ()
849 (save-excursion 847 (save-excursion
850 (while nnml-nov-buffer-alist 848 (while nnml-nov-buffer-alist
851 (when (buffer-name (cdar nnml-nov-buffer-alist)) 849 (when (buffer-live-p (cdar nnml-nov-buffer-alist))
852 (set-buffer (cdar nnml-nov-buffer-alist)) 850 (set-buffer (cdar nnml-nov-buffer-alist))
853 (when (buffer-modified-p) 851 (when (buffer-modified-p)
854 (nnmail-write-region (point-min) (point-max) 852 (nnmail-write-region (point-min) (point-max)
diff --git a/lisp/gnus/nnoo.el b/lisp/gnus/nnoo.el
index 0cf2362b36a..c65668a7199 100644
--- a/lisp/gnus/nnoo.el
+++ b/lisp/gnus/nnoo.el
@@ -269,8 +269,7 @@
269 269
270(defun nnoo-server-opened (backend server) 270(defun nnoo-server-opened (backend server)
271 (and (nnoo-current-server-p backend server) 271 (and (nnoo-current-server-p backend server)
272 nntp-server-buffer 272 (buffer-live-p nntp-server-buffer)))
273 (buffer-name nntp-server-buffer)))
274 273
275(defmacro nnoo-define-basics (backend) 274(defmacro nnoo-define-basics (backend)
276 "Define `close-server', `server-opened' and `status-message'." 275 "Define `close-server', `server-opened' and `status-message'."
diff --git a/lisp/gnus/nntp.el b/lisp/gnus/nntp.el
index 0e5057e1a45..9bc215c12f2 100644
--- a/lisp/gnus/nntp.el
+++ b/lisp/gnus/nntp.el
@@ -400,7 +400,7 @@ retried once before actually displaying the error report."
400 (erase-buffer))))) 400 (erase-buffer)))))
401 401
402(defun nntp-kill-buffer (buffer) 402(defun nntp-kill-buffer (buffer)
403 (when (buffer-name buffer) 403 (when (buffer-live-p buffer)
404 (let ((process (get-buffer-process buffer))) 404 (let ((process (get-buffer-process buffer)))
405 (when process 405 (when process
406 (delete-process process))) 406 (delete-process process)))
@@ -1228,16 +1228,15 @@ If SEND-IF-FORCE, only send authinfo to the server if the
1228 (with-current-buffer 1228 (with-current-buffer
1229 (generate-new-buffer 1229 (generate-new-buffer
1230 (format " *server %s %s %s*" 1230 (format " *server %s %s %s*"
1231 nntp-address nntp-port-number 1231 nntp-address nntp-port-number buffer))
1232 (gnus-buffer-exists-p buffer)))
1233 (mm-disable-multibyte) 1232 (mm-disable-multibyte)
1234 (set (make-local-variable 'after-change-functions) nil) 1233 (setq-local after-change-functions nil)
1235 (set (make-local-variable 'nntp-process-wait-for) nil) 1234 (setq-local nntp-process-wait-for nil)
1236 (set (make-local-variable 'nntp-process-callback) nil) 1235 (setq-local nntp-process-callback nil)
1237 (set (make-local-variable 'nntp-process-to-buffer) nil) 1236 (setq-local nntp-process-to-buffer nil)
1238 (set (make-local-variable 'nntp-process-start-point) nil) 1237 (setq-local nntp-process-start-point nil)
1239 (set (make-local-variable 'nntp-process-decode) nil) 1238 (setq-local nntp-process-decode nil)
1240 (set (make-local-variable 'nntp-retrieval-in-progress) nil) 1239 (setq-local nntp-retrieval-in-progress nil)
1241 (current-buffer))) 1240 (current-buffer)))
1242 1241
1243(defun nntp-open-connection (buffer) 1242(defun nntp-open-connection (buffer)
@@ -1290,7 +1289,7 @@ If SEND-IF-FORCE, only send authinfo to the server if the
1290 (setq process nil)) 1289 (setq process nil))
1291 (unless process 1290 (unless process
1292 (nntp-kill-buffer pbuffer)) 1291 (nntp-kill-buffer pbuffer))
1293 (when (and (buffer-name pbuffer) 1292 (when (and (buffer-live-p pbuffer)
1294 process) 1293 process)
1295 (when (eq (process-type process) 'network) 1294 (when (eq (process-type process) 'network)
1296 ;; Use TCP-keepalive so that connections that pass through a NAT router 1295 ;; Use TCP-keepalive so that connections that pass through a NAT router
@@ -1358,17 +1357,17 @@ If SEND-IF-FORCE, only send authinfo to the server if the
1358(defun nntp-async-trigger (process) 1357(defun nntp-async-trigger (process)
1359 (with-current-buffer (process-buffer process) 1358 (with-current-buffer (process-buffer process)
1360 (when nntp-process-callback 1359 (when nntp-process-callback
1361 ;; do we have an error message? 1360 ;; Do we have an error message?
1362 (goto-char nntp-process-start-point) 1361 (goto-char nntp-process-start-point)
1363 (if (memq (following-char) '(?4 ?5)) 1362 (if (memq (following-char) '(?4 ?5))
1364 ;; wants credentials? 1363 ;; Wants credentials?
1365 (if (looking-at "480") 1364 (if (looking-at-p "480")
1366 (nntp-handle-authinfo process) 1365 (nntp-handle-authinfo process)
1367 ;; report error message. 1366 ;; Report error message.
1368 (nntp-snarf-error-message) 1367 (nntp-snarf-error-message)
1369 (nntp-do-callback nil)) 1368 (nntp-do-callback nil))
1370 1369
1371 ;; got what we expect? 1370 ;; Got what we expect?
1372 (goto-char (point-max)) 1371 (goto-char (point-max))
1373 (when (re-search-backward 1372 (when (re-search-backward
1374 nntp-process-wait-for nntp-process-start-point t) 1373 nntp-process-wait-for nntp-process-start-point t)
@@ -1376,8 +1375,8 @@ If SEND-IF-FORCE, only send authinfo to the server if the
1376 (with-current-buffer nntp-server-buffer 1375 (with-current-buffer nntp-server-buffer
1377 (setq nntp-process-response response))) 1376 (setq nntp-process-response response)))
1378 (nntp-async-stop process) 1377 (nntp-async-stop process)
1379 ;; convert it. 1378 ;; Convert it.
1380 (when (gnus-buffer-exists-p nntp-process-to-buffer) 1379 (when (gnus-buffer-live-p nntp-process-to-buffer)
1381 (let ((buf (current-buffer)) 1380 (let ((buf (current-buffer))
1382 (start nntp-process-start-point) 1381 (start nntp-process-start-point)
1383 (decode nntp-process-decode)) 1382 (decode nntp-process-decode))
@@ -1388,7 +1387,7 @@ If SEND-IF-FORCE, only send authinfo to the server if the
1388 (nnheader-insert-buffer-substring buf start) 1387 (nnheader-insert-buffer-substring buf start)
1389 (when decode 1388 (when decode
1390 (nntp-decode-text)))))) 1389 (nntp-decode-text))))))
1391 ;; report it. 1390 ;; Report it.
1392 (goto-char (point-max)) 1391 (goto-char (point-max))
1393 (nntp-do-callback 1392 (nntp-do-callback
1394 (buffer-name (get-buffer nntp-process-to-buffer)))))))) 1393 (buffer-name (get-buffer nntp-process-to-buffer))))))))
diff --git a/lisp/net/mairix.el b/lisp/net/mairix.el
index 07415667e1b..0c699c976ce 100644
--- a/lisp/net/mairix.el
+++ b/lisp/net/mairix.el
@@ -266,9 +266,7 @@ Currently there are `threads' and `flags'.")
266 266
267;;; Gnus 267;;; Gnus
268 268
269;; For gnus-buffer-exists-p, although it seems that could be replaced by: 269(eval-when-compile (require 'gnus-util)) ; For `gnus-buffer-live-p'.
270;; (and buffer (get-buffer buffer))
271(eval-when-compile (require 'gnus-util))
272(defvar gnus-article-buffer) 270(defvar gnus-article-buffer)
273(declare-function gnus-group-read-ephemeral-group "gnus-group" 271(declare-function gnus-group-read-ephemeral-group "gnus-group"
274 (group method &optional activate quit-config 272 (group method &optional activate quit-config
@@ -296,7 +294,7 @@ Currently there are `threads' and `flags'.")
296 (unless (and (fboundp 'gnus-alive-p) 294 (unless (and (fboundp 'gnus-alive-p)
297 (gnus-alive-p)) 295 (gnus-alive-p))
298 (error "Gnus is not running")) 296 (error "Gnus is not running"))
299 (unless (gnus-buffer-exists-p gnus-article-buffer) 297 (unless (gnus-buffer-live-p gnus-article-buffer)
300 (error "No article buffer available")) 298 (error "No article buffer available"))
301 (with-current-buffer gnus-article-buffer 299 (with-current-buffer gnus-article-buffer
302 ;; gnus-art requires gnus-sum and message. 300 ;; gnus-art requires gnus-sum and message.