;;;
(defun gnus-agent-synchronize-group-flags (group actions server)
-"Update a plugged group by performing the indicated actions."
+ "Update a plugged group by performing the indicated actions."
(let* ((gnus-command-method (gnus-server-to-method server))
(info
;; This initializer is required as gnus-request-set-mark
((memq mark '(tick))
(let ((info-marks (assoc mark (gnus-info-marks info))))
(unless info-marks
- (gnus-info-set-marks info (cons (setq info-marks (list mark)) (gnus-info-marks info))))
- (setcdr info-marks (funcall (if (eq what 'add)
- 'gnus-range-add
- 'gnus-remove-from-range)
- (cdr info-marks)
- range))))))))
-
- ;;Marks can be synchronized at any time by simply toggling from
- ;;unplugged to plugged. If that is what is happening right now, make
- ;;sure that the group buffer is up to date.
- (when (gnus-buffer-live-p gnus-group-buffer)
- (gnus-group-update-group group t)))
+ (gnus-info-set-marks
+ info (cons (setq info-marks (list mark))
+ (gnus-info-marks info))))
+ (setcdr info-marks
+ (funcall (if (eq what 'add)
+ 'gnus-range-add
+ 'gnus-remove-from-range)
+ (cdr info-marks)
+ range))))))))
+
+ ;; Marks can be synchronized at any time by simply toggling from
+ ;; unplugged to plugged. If that is what is happening right now,
+ ;; make sure that the group buffer is up to date.
+ (when (gnus-buffer-live-p gnus-group-buffer)
+ (gnus-group-update-group group t)))
nil))
(defun gnus-agent-save-active (method &optional groups-p)
(interactive "P")
(dolist (buf (gnus-buffers))
(with-current-buffer buf
- (when (derived-mode-p 'gnus-sticky-article-mode)
- (if (not arg)
- (gnus-kill-buffer buf)
- (when (yes-or-no-p (concat "Kill buffer " (buffer-name buf) "? "))
- (gnus-kill-buffer buf)))))))
+ (and (derived-mode-p 'gnus-sticky-article-mode)
+ (or (not arg)
+ (yes-or-no-p (format "Kill buffer %s? " buf)))
+ (gnus-kill-buffer buf)))))
;;;
;;; Gnus MIME viewing functions
;; doesn't belong in this newsgroup (possibly), so we find its
;; message-id and request it by id instead of number.
(when (and (numberp article)
- gnus-summary-buffer
- (get-buffer gnus-summary-buffer)
- (gnus-buffer-exists-p gnus-summary-buffer))
+ (gnus-buffer-live-p gnus-summary-buffer))
(with-current-buffer gnus-summary-buffer
(let ((header (gnus-summary-article-header article)))
(when (< article 0)
(cond
;; Refuse to select canceled articles.
((and (numberp article)
- gnus-summary-buffer
- (get-buffer gnus-summary-buffer)
- (gnus-buffer-exists-p gnus-summary-buffer)
- (eq (cdr (with-current-buffer gnus-summary-buffer
- (assq article gnus-newsgroup-reads)))
+ (gnus-buffer-live-p gnus-summary-buffer)
+ (eq (with-current-buffer gnus-summary-buffer
+ (cdr (assq article gnus-newsgroup-reads)))
gnus-canceled-mark))
nil)
;; We first check `gnus-original-article-buffer'.
(defun gnus-backlog-shutdown ()
"Clear all backlog variables and buffers."
(interactive)
- (when (get-buffer gnus-backlog-buffer)
- (gnus-kill-buffer gnus-backlog-buffer))
+ (gnus-kill-buffer gnus-backlog-buffer)
(setq gnus-backlog-articles nil))
(defun gnus-backlog-enter-article (group number buffer)
(unless (or topic (setq info (gnus-get-info group)))
(error "Killed group; can't be edited"))
;; Ready.
- (gnus-kill-buffer (gnus-get-buffer-create "*Gnus Customize*"))
+ (gnus-kill-buffer "*Gnus Customize*")
(switch-to-buffer (gnus-get-buffer-create "*Gnus Customize*"))
(gnus-custom-mode)
(make-local-variable 'gnus-custom-group)
(cons 'agent-low-score gnus-agent-low-score)
(cons 'agent-high-score gnus-agent-high-score))))
- (let ((old (get-buffer "*Gnus Agent Category Customize*")))
- (when old
- (gnus-kill-buffer old)))
+ (gnus-kill-buffer "*Gnus Agent Category Customize*")
(switch-to-buffer (gnus-get-buffer-create
"*Gnus Agent Category Customize*"))
(when (get-buffer gnus-category-buffer)
(switch-to-buffer (get-buffer gnus-category-buffer))
(gnus-category-list)))
- "Done")
+ "Done")
(widget-insert
"\n Note: Empty fields default to the customizable global\
variables.\n\n")
(save-restriction
(message-narrow-to-headers)
(message-remove-header "date")))
- (let ((message-draft-headers
- (delq 'Date (copy-sequence message-draft-headers))))
+ (let ((message-draft-headers (remq 'Date message-draft-headers)))
(save-buffer))
(let ((gnus-verbose-backends nil))
(gnus-request-expire-articles (list article) group t))
(push
`((lambda ()
- (when (gnus-buffer-exists-p ,gnus-summary-buffer)
+ (when (gnus-buffer-live-p ,gnus-summary-buffer)
(save-excursion
(set-buffer ,gnus-summary-buffer)
(gnus-cache-possibly-remove-article ,article nil nil nil t)))))
gnus-tmp-header ;Dummy binding for user-defined formats
;; Get the resulting string.
(modified
- (and gnus-dribble-buffer
- (buffer-name gnus-dribble-buffer)
+ (and (buffer-live-p gnus-dribble-buffer)
(buffer-modified-p gnus-dribble-buffer)
(with-current-buffer gnus-dribble-buffer
(not (zerop (buffer-size))))))
(defun gnus--abort-on-unsaved-message-buffers ()
(dolist (buffer (gnus-buffers))
- (when (gnus-buffer-exists-p buffer)
- (with-current-buffer buffer
- (when (and (derived-mode-p 'message-mode)
- (buffer-modified-p)
- (not (y-or-n-p
- (format "Message buffer %s unsaved, continue exit? "
- (buffer-name)))))
- (error "Gnus exit aborted due to unsaved %s buffer"
- (buffer-name)))))))
+ (with-current-buffer buffer
+ (when (and (derived-mode-p 'message-mode)
+ (buffer-modified-p)
+ (not (y-or-n-p
+ (format "Message buffer %s unsaved, continue exit? "
+ buffer))))
+ (error "Gnus exit aborted due to unsaved buffer %s" buffer)))))
(defun gnus-group-quit ()
"Quit reading news without updating .newsrc.eld or .newsrc.
;; Invalidate the "original article" buffer which might be out of date.
;; #### NOTE: Yes, this might be a bit rude, but since compaction
;; #### will not happen very often, I think this is acceptable.
- (let ((original (get-buffer gnus-original-article-buffer)))
- (and original (gnus-kill-buffer original)))
+ (gnus-kill-buffer gnus-original-article-buffer)
;; Update the group line to reflect new information (art number etc).
(gnus-group-update-group-line))))
(message-add-action
`(progn
(setq gnus-current-window-configuration ',winconf-name)
- (when (gnus-buffer-exists-p ,buffer)
+ (when (gnus-buffer-live-p ,buffer)
(set-window-configuration ,winconf)))
'exit 'postpone 'kill)
(let ((to-be-marked (cond
(article (if (listp article) article (list article)))
(t nil))))
(message-add-action
- `(when (gnus-buffer-exists-p ,buffer)
+ `(when (gnus-buffer-live-p ,buffer)
(with-current-buffer ,buffer
,(when to-be-marked
(if (eq config 'forward)
(message-supersede)
(push
`((lambda ()
- (when (gnus-buffer-exists-p ,gnus-summary-buffer)
+ (when (gnus-buffer-live-p ,gnus-summary-buffer)
(with-current-buffer ,gnus-summary-buffer
(gnus-cache-possibly-remove-article ,article nil nil nil t)
(gnus-summary-mark-as-read ,article gnus-canceled-mark)))))
(mm-enable-multibyte))
(let ((article-buffer (or article-buffer gnus-article-buffer))
end beg)
- (if (not (and (get-buffer article-buffer)
- (gnus-buffer-exists-p article-buffer)))
+ (if (not (gnus-buffer-live-p article-buffer))
(error "Can't find any article buffer")
(with-current-buffer article-buffer
(let ((gnus-newsgroup-charset (or gnus-article-charset
(if (not gnus-current-score-file)
(error "No current score file")
(let ((winconf (current-window-configuration)))
- (when (buffer-name gnus-summary-buffer)
+ (when (buffer-live-p gnus-summary-buffer)
(gnus-score-save))
(gnus-make-directory (file-name-directory file))
(setq gnus-score-edit-buffer (find-file-noselect file))
(interactive
(list (read-file-name "Edit score file: " gnus-kill-files-directory)))
(gnus-make-directory (file-name-directory file))
- (when (buffer-name gnus-summary-buffer)
+ (when (buffer-live-p gnus-summary-buffer)
(gnus-score-save))
(let ((winconf (current-window-configuration)))
(setq gnus-score-edit-buffer (find-file-noselect file))
(let ((buffer (intern (format "gnus-%s-buffer" type))))
(when (and (boundp buffer)
(setq val (symbol-value buffer))
- (gnus-buffer-exists-p val))
+ (gnus-buffer-live-p val))
(set-buffer val))
(setq new-format (symbol-value
(intern (format "gnus-%s-line-format" type)))))
;; Invalidate the original article buffer which might be out of date.
;; #### NOTE: Yes, this might be a bit rude, but since compaction
;; #### will not happen very often, I think this is acceptable.
- (let ((original (get-buffer gnus-original-article-buffer)))
- (and original (gnus-kill-buffer original))))))
+ (gnus-kill-buffer gnus-original-article-buffer))))
(defun gnus-server-toggle-cloud-server ()
"Toggle whether the server under point is replicated in the Emacs Cloud."
;; Kill Gnus buffers.
(do-auto-save t)
(dolist (buffer (gnus-buffers))
- (when (gnus-buffer-exists-p buffer)
- (with-current-buffer buffer
- (set-buffer-modified-p nil)
- (when (local-variable-p 'kill-buffer-hook)
- (setq kill-buffer-hook nil))))
+ (with-current-buffer buffer
+ (set-buffer-modified-p nil)
+ (when (local-variable-p 'kill-buffer-hook)
+ (setq kill-buffer-hook nil)))
(gnus-kill-buffer buffer))
;; Remove Gnus frames.
(gnus-kill-gnus-frames))
"Enter STRING into the dribble buffer.
If REGEXP is given, lines that match it will be deleted."
(when (and (not gnus-dribble-ignore)
- gnus-dribble-buffer
- (buffer-name gnus-dribble-buffer))
+ (buffer-live-p gnus-dribble-buffer))
(let ((obuf (current-buffer)))
(set-buffer gnus-dribble-buffer)
(when regexp
(set-buffer-modified-p nil)))))
(defun gnus-dribble-save ()
- (when (and gnus-dribble-buffer
- (buffer-name gnus-dribble-buffer))
+ (when (buffer-live-p gnus-dribble-buffer)
(with-current-buffer gnus-dribble-buffer
(when (> (buffer-size) 0)
(save-buffer)))))
(defun gnus-dribble-clear ()
- (when (gnus-buffer-exists-p gnus-dribble-buffer)
+ (when (gnus-buffer-live-p gnus-dribble-buffer)
(with-current-buffer gnus-dribble-buffer
(erase-buffer)
(set-buffer-modified-p nil)
(save-excursion
(if (and (or gnus-use-dribble-file gnus-slave)
(not force)
- (or (not gnus-dribble-buffer)
- (not (buffer-name gnus-dribble-buffer))
+ (or (not (buffer-live-p gnus-dribble-buffer))
(zerop (with-current-buffer gnus-dribble-buffer
(buffer-size)))))
(gnus-message 4 "(No changes need to be saved)")
(dead-name (concat "*Dead Summary "
(gnus-group-decoded-name group) "*")))
;; If a dead summary buffer exists, we kill it.
- (when (gnus-buffer-live-p dead-name)
- (gnus-kill-buffer dead-name))
+ (gnus-kill-buffer dead-name)
(if (get-buffer buffer)
(progn
(set-buffer buffer)
(defun gnus-update-summary-mark-positions ()
"Compute where the summary marks are to go."
(save-excursion
- (when (gnus-buffer-exists-p gnus-summary-buffer)
+ (when (gnus-buffer-live-p gnus-summary-buffer)
(set-buffer gnus-summary-buffer))
(let ((spec gnus-summary-line-format-spec)
pos)
(gnus-summary-update-info))
(gnus-close-group group)
;; Make sure where we were, and go to next newsgroup.
- (when (buffer-live-p (get-buffer gnus-group-buffer))
+ (when (gnus-buffer-live-p gnus-group-buffer)
(set-buffer gnus-group-buffer))
(unless quit-config
(gnus-group-jump-to-group group))
(defun gnus-deaden-summary ()
"Make the current summary buffer into a dead summary buffer."
;; Kill any previous dead summary buffer.
- (when (and gnus-dead-summary
- (buffer-name gnus-dead-summary))
+ (when (buffer-live-p gnus-dead-summary)
(with-current-buffer gnus-dead-summary
(when gnus-dead-summary-mode
(kill-buffer (current-buffer)))))
(defun gnus-kill-or-deaden-summary (buffer)
"Kill or deaden the summary BUFFER."
(save-excursion
- (when (and (buffer-name buffer)
+ (when (and (buffer-live-p buffer)
(not gnus-single-article-buffer))
(with-current-buffer buffer
(gnus-kill-buffer gnus-article-buffer)
;; Kill the buffer.
(gnus-kill-summary-on-exit
(when (and gnus-use-trees
- (gnus-buffer-exists-p buffer))
+ (gnus-buffer-live-p buffer))
(with-current-buffer buffer
(gnus-tree-close)))
(gnus-kill-buffer buffer))
;; Deaden the buffer.
- ((gnus-buffer-exists-p buffer)
+ ((gnus-buffer-live-p buffer)
(with-current-buffer buffer
(gnus-deaden-summary))))))
(and unreads (not (zerop unreads))))
(gnus-summary-read-group
target-group nil no-article
- (and (buffer-name current-buffer) current-buffer)
+ (and (buffer-live-p current-buffer) current-buffer)
nil backward))
(setq entered t)
(setq current-group target-group
(defsubst gnus-goto-char (point)
(and point (goto-char point)))
-(defmacro gnus-buffer-exists-p (buffer)
- `(let ((buffer ,buffer))
- (when buffer
- (funcall (if (stringp buffer) 'get-buffer 'buffer-name)
- buffer))))
-
(defun gnus-delete-first (elt list)
"Delete by side effect the first occurrence of ELT as a member of LIST."
(if (equal (car list) elt)
(match-string 1 references))))))
(defsubst gnus-buffer-live-p (buffer)
- "Say whether BUFFER is alive or not."
- (and buffer (buffer-live-p (get-buffer buffer))))
+ "If BUFFER names a live buffer, return its object; else nil."
+ (and buffer (buffer-live-p (setq buffer (get-buffer buffer)))
+ buffer))
+
+(define-obsolete-function-alias 'gnus-buffer-exists-p
+ 'gnus-buffer-live-p "27.1")
(defun gnus-horizontal-recenter ()
"Recenter the current buffer horizontally."
(error "Invalid buffer type: %s" type))
(let ((buf (gnus-get-buffer-create
(gnus-window-to-buffer-helper buffer))))
- (when (buffer-name buf)
+ (when (buffer-live-p buf)
(cond
((eq buf (window-buffer (selected-window)))
(set-buffer buf))
(defun gnus-delete-windows-in-gnusey-frames ()
"Do a `delete-other-windows' in all frames that have Gnus windows."
(let ((buffers (gnus-buffers)))
- (mapcar
- (lambda (frame)
- (unless (eq (cdr (assq 'minibuffer
- (frame-parameters frame)))
- 'only)
- (select-frame frame)
- (let (do-delete)
- (walk-windows
- (lambda (window)
- (when (memq (window-buffer window) buffers)
- (setq do-delete t))))
- (when do-delete
- (delete-other-windows)))))
- (frame-list))))
+ (dolist (frame (frame-list))
+ (unless (eq (frame-parameter frame 'minibuffer) 'only)
+ (select-frame frame)
+ (when (get-window-with-predicate
+ (lambda (window)
+ (memq (window-buffer window) buffers)))
+ (delete-other-windows))))))
(defun gnus-all-windows-visible-p (split)
"Say whether all buffers in SPLIT are currently visible.
(nth 1 (window-edges window)))
(defun gnus-remove-some-windows ()
- (let ((buffers (gnus-buffers))
- buf bufs lowest-buf lowest)
+ (let (bufs lowest-buf lowest)
(save-excursion
;; Remove windows on all known Gnus buffers.
- (while (setq buf (pop buffers))
+ (dolist (buf (gnus-buffers))
(when (get-buffer-window buf)
(push buf bufs)
(pop-to-buffer buf)
(when lowest-buf
(pop-to-buffer lowest-buf)
(set-buffer nntp-server-buffer))
- (mapcar (lambda (b) (delete-windows-on b t))
- (delq lowest-buf bufs)))))
+ (dolist (b (delq lowest-buf bufs))
+ (delete-windows-on b t)))))
(defun gnus-get-buffer-window (buffer &optional frame)
"Return a window currently displaying BUFFER, or nil if none.
(defmacro gnus-kill-buffer (buffer)
"Kill BUFFER and remove from the list of Gnus buffers."
`(let ((buf ,buffer))
- (when (gnus-buffer-exists-p buf)
+ (when (gnus-buffer-live-p 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."
- (while (and gnus-buffers
- (not (buffer-name (car gnus-buffers))))
- (pop gnus-buffers))
- (let ((buffers gnus-buffers))
- (while (cdr buffers)
- (if (buffer-name (cadr buffers))
- (pop buffers)
- (setcdr buffers (cddr buffers)))))
- gnus-buffers)
+ (setq gnus-buffers (seq-filter #'buffer-live-p gnus-buffers)))
+
+(defalias 'gnus-prune-buffers #'gnus-buffers)
;;; Splash screen.
If you call this function inside a loop, consider using the faster
`gnus-group-fast-parameter' instead."
- (with-current-buffer (if (buffer-live-p (get-buffer gnus-group-buffer))
- gnus-group-buffer
- (current-buffer))
+ (with-current-buffer (or (gnus-buffer-live-p gnus-group-buffer)
+ (current-buffer))
(if symbol
(gnus-group-fast-parameter group symbol allow-list)
(nconc
(buffer-string) result))
(error "%s" (buffer-string)))
(setq to nil)))))))
- (when (and errors
- (buffer-name errors))
+ (when (buffer-live-p errors)
(kill-buffer errors))
;; Return whether we moved successfully or not.
to)))
(defmacro message-with-reply-buffer (&rest forms)
"Evaluate FORMS in the reply buffer, if it exists."
- `(when (and (bufferp message-reply-buffer)
- (buffer-name message-reply-buffer))
+ `(when (buffer-live-p message-reply-buffer)
(with-current-buffer message-reply-buffer
,@forms)))
"Widen the reply to include maximum recipients."
(interactive)
(let ((follow-to
- (and (bufferp message-reply-buffer)
- (buffer-name message-reply-buffer)
+ (and (buffer-live-p message-reply-buffer)
(with-current-buffer message-reply-buffer
(message-get-reply-headers t)))))
(save-excursion
(let ((buf (current-buffer))
(actions message-exit-actions))
(when (and (message-send arg)
- (buffer-name buf))
+ (buffer-live-p buf))
(message-bury buf)
(if message-kill-buffer-on-exit
(kill-buffer buf))
(if (not (zerop (buffer-size)))
(error "Sending...failed to %s"
(buffer-string))))))
- (when (bufferp errbuf)
+ (when (buffer-live-p errbuf)
(kill-buffer errbuf)))))
(defun message-send-mail-with-qmail ()
(defun message-pop-to-buffer (name &optional switch-function)
"Pop to buffer NAME, and warn if it already exists and is modified."
(let ((buffer (get-buffer name)))
- (if (and buffer
- (buffer-name buffer))
+ (if (buffer-live-p buffer)
(let ((window (get-buffer-window buffer 0)))
(if window
;; Raise the frame already displaying the message buffer.
(>= (length message-buffer-list) message-max-buffers))
;; Kill the oldest buffer -- unless it has been changed.
(let ((buffer (pop message-buffer-list)))
- (when (and (buffer-name buffer)
+ (when (and (buffer-live-p buffer)
(not (buffer-modified-p buffer)))
(kill-buffer buffer))))
;; Rename the buffer.
(unless (multibyte-string-p contents)
(error "Attempt to insert unibyte string from the buffer \"%s\"\
to the multibyte buffer \"%s\""
- (if (bufferp forward-buffer)
- (buffer-name forward-buffer)
- forward-buffer)
+ forward-buffer
(buffer-name)))
(insert (mm-with-multibyte-buffer
(insert contents)
(unless (multibyte-string-p contents)
(error "Attempt to insert unibyte string from the buffer \"%s\"\
to the multibyte buffer \"%s\""
- (if (bufferp forward-buffer)
- (buffer-name forward-buffer)
- forward-buffer)
+ forward-buffer
(buffer-name)))
(insert (mm-with-multibyte-buffer
(insert contents)
(if method
(progn
(when (and (boundp 'gnus-summary-buffer)
- (bufferp gnus-summary-buffer)
- (buffer-name gnus-summary-buffer))
+ (buffer-live-p gnus-summary-buffer))
(when attachment-filename
(with-current-buffer mm
(rename-buffer (format "*mm* %s" attachment-filename) t)))
(ignore-errors (delete-file (car object)))
(ignore-errors (delete-directory (file-name-directory
(car object)))))
- ((bufferp object)
- (when (buffer-live-p object)
- (kill-buffer object)))))
+ ((buffer-live-p object)
+ (kill-buffer object))))
(mm-handle-set-undisplayer handle nil))))
(defun mm-display-inline (handle)
(deffoo nnbabyl-server-opened (&optional server)
(and (nnoo-current-server-p 'nnbabyl server)
- nnbabyl-mbox-buffer
- (buffer-name nnbabyl-mbox-buffer)
- nntp-server-buffer
- (buffer-name nntp-server-buffer)))
+ (buffer-live-p nnbabyl-mbox-buffer)
+ (buffer-live-p nntp-server-buffer)))
(deffoo nnbabyl-request-article (article &optional newsgroup server buffer)
(nnbabyl-possibly-change-newsgroup newsgroup server)
(when (and server
(not (nnbabyl-server-opened server)))
(nnbabyl-open-server server))
- (when (or (not nnbabyl-mbox-buffer)
- (not (buffer-name nnbabyl-mbox-buffer)))
+ (unless (buffer-live-p nnbabyl-mbox-buffer)
(save-excursion (nnbabyl-read-mbox)))
(unless nnbabyl-group-alist
(nnmail-activate 'nnbabyl))
(nnmail-activate 'nnbabyl)
(nnbabyl-create-mbox)
- (unless (and nnbabyl-mbox-buffer
- (buffer-name nnbabyl-mbox-buffer)
+ (unless (and (buffer-live-p nnbabyl-mbox-buffer)
(with-current-buffer nnbabyl-mbox-buffer
(= (buffer-size) (nnheader-file-size nnbabyl-mbox-file))))
;; This buffer has changed since we read it last. Possibly.
(let ((idents (gnus-make-hashtable 1000))
id)
(save-excursion
- (when (or (not nnbabyl-mbox-buffer)
- (not (buffer-name nnbabyl-mbox-buffer)))
+ (unless (buffer-live-p nnbabyl-mbox-buffer)
(nnbabyl-read-mbox))
(set-buffer nnbabyl-mbox-buffer)
(goto-char (point-min))
(defun nndiary-save-nov ()
(save-excursion
(while nndiary-nov-buffer-alist
- (when (buffer-name (cdar nndiary-nov-buffer-alist))
+ (when (buffer-live-p (cdar nndiary-nov-buffer-alist))
(set-buffer (cdar nndiary-nov-buffer-alist))
(when (buffer-modified-p)
(nnmail-write-region 1 (point-max) nndiary-nov-buffer-file-name
(deffoo nndoc-close-group (group &optional server)
(nndoc-possibly-change-buffer group server)
- (and nndoc-current-buffer
- (buffer-name nndoc-current-buffer)
+ (and (buffer-live-p nndoc-current-buffer)
(kill-buffer nndoc-current-buffer))
(setq nndoc-group-alist (delq (assoc group nndoc-group-alist)
nndoc-group-alist))
(let (buf)
(cond
;; The current buffer is this group's buffer.
- ((and nndoc-current-buffer
- (buffer-name nndoc-current-buffer)
+ ((and (buffer-live-p nndoc-current-buffer)
(eq nndoc-current-buffer
(setq buf (cdr (assoc group nndoc-group-alist))))))
;; We change buffers by taking an old from the group alist.
(buf
(setq nndoc-current-buffer buf))
;; It's a totally new group.
- ((or (and (bufferp nndoc-address)
- (buffer-name nndoc-address))
+ ((or (buffer-live-p nndoc-address)
(and (stringp nndoc-address)
(file-exists-p nndoc-address)
(not (file-directory-p nndoc-address))))
(delq inf nnfolder-buffer-alist))
(setq nnfolder-current-buffer (cadr inf)
nnfolder-current-group (car inf))))
- (when (and nnfolder-current-buffer
- (buffer-name nnfolder-current-buffer))
+ (when (buffer-live-p nnfolder-current-buffer)
(with-current-buffer nnfolder-current-buffer
;; If the buffer was modified, write the file out now.
(nnfolder-save-buffer)
(defun nnfolder-save-nov ()
(save-excursion
(while nnfolder-nov-buffer-alist
- (when (buffer-name (cdar nnfolder-nov-buffer-alist))
+ (when (buffer-live-p (cdar nnfolder-nov-buffer-alist))
(set-buffer (cdar nnfolder-nov-buffer-alist))
(when (buffer-modified-p)
(gnus-make-directory (file-name-directory
(with-current-buffer
(generate-new-buffer (format " *nnimap %s %s %s*"
nnimap-address nnimap-server-port
- (gnus-buffer-exists-p buffer)))
+ buffer))
(mm-disable-multibyte)
(buffer-disable-undo)
(gnus-add-buffer)
(defun nnimap-keepalive ()
(let ((now (current-time)))
(dolist (buffer nnimap-process-buffers)
- (when (buffer-name buffer)
+ (when (buffer-live-p buffer)
(with-current-buffer buffer
(when (and nnimap-object
(nnimap-last-command-time nnimap-object)
"Find the connection delivering to BUFFER."
(let ((entry (assoc buffer nnimap-connection-alist)))
(when entry
- (if (and (buffer-name (cadr entry))
+ (if (and (buffer-live-p (cadr entry))
(get-buffer-process (cadr entry))
(memq (process-status (get-buffer-process (cadr entry)))
'(open run)))
(defun nnmail-cache-open ()
(if (or (not nnmail-treat-duplicates)
- (and nnmail-cache-buffer
- (buffer-name nnmail-cache-buffer)))
+ (buffer-live-p nnmail-cache-buffer))
() ; The buffer is open.
(with-current-buffer
(setq nnmail-cache-buffer
(current-buffer))))
(defun nnmail-cache-close ()
- (when (and nnmail-cache-buffer
- nnmail-treat-duplicates
- (buffer-name nnmail-cache-buffer)
+ (when (and nnmail-treat-duplicates
+ (buffer-live-p nnmail-cache-buffer)
(buffer-modified-p nnmail-cache-buffer))
(with-current-buffer nnmail-cache-buffer
;; Weed out the excess number of Message-IDs.
t)))
(deffoo nnmbox-close-server (&optional server)
- (when (and nnmbox-mbox-buffer
- (buffer-name nnmbox-mbox-buffer))
+ (when (buffer-live-p nnmbox-mbox-buffer)
(kill-buffer nnmbox-mbox-buffer))
(nnoo-close-server 'nnmbox server)
t)
(deffoo nnmbox-server-opened (&optional server)
(and (nnoo-current-server-p 'nnmbox server)
- nnmbox-mbox-buffer
- (buffer-name nnmbox-mbox-buffer)
- nntp-server-buffer
- (buffer-name nntp-server-buffer)))
+ (buffer-live-p nnmbox-mbox-buffer)
+ (buffer-live-p nntp-server-buffer)))
(deffoo nnmbox-request-article (article &optional newsgroup server buffer)
(nnmbox-possibly-change-newsgroup newsgroup server)
(when (and server
(not (nnmbox-server-opened server)))
(nnmbox-open-server server))
- (when (or (not nnmbox-mbox-buffer)
- (not (buffer-name nnmbox-mbox-buffer)))
+ (unless (buffer-live-p nnmbox-mbox-buffer)
(nnmbox-read-mbox))
(when (not nnmbox-group-alist)
(nnmail-activate 'nnmbox))
(defun nnmbox-read-mbox ()
(nnmail-activate 'nnmbox)
(nnmbox-create-mbox)
- (if (and nnmbox-mbox-buffer
- (buffer-name nnmbox-mbox-buffer)
+ (if (and (buffer-live-p nnmbox-mbox-buffer)
(with-current-buffer nnmbox-mbox-buffer
(= (buffer-size) (nnheader-file-size nnmbox-mbox-file))))
()
(defun nnml-save-incremental-nov ()
(save-excursion
(while nnml-incremental-nov-buffer-alist
- (when (buffer-name (cdar nnml-incremental-nov-buffer-alist))
+ (when (buffer-live-p (cdar nnml-incremental-nov-buffer-alist))
(set-buffer (cdar nnml-incremental-nov-buffer-alist))
(when (buffer-modified-p)
(nnmail-write-region (point-min) (point-max)
buffer))
(defun nnml-open-nov (group)
- (or (let ((buffer (cdr (assoc group nnml-nov-buffer-alist))))
- (and (buffer-name buffer)
- buffer))
+ (or (gnus-buffer-live-p (cdr (assoc group nnml-nov-buffer-alist)))
(let ((buffer (nnml-get-nov-buffer group)))
(push (cons group buffer) nnml-nov-buffer-alist)
buffer)))
(defun nnml-save-nov ()
(save-excursion
(while nnml-nov-buffer-alist
- (when (buffer-name (cdar nnml-nov-buffer-alist))
+ (when (buffer-live-p (cdar nnml-nov-buffer-alist))
(set-buffer (cdar nnml-nov-buffer-alist))
(when (buffer-modified-p)
(nnmail-write-region (point-min) (point-max)
(defun nnoo-server-opened (backend server)
(and (nnoo-current-server-p backend server)
- nntp-server-buffer
- (buffer-name nntp-server-buffer)))
+ (buffer-live-p nntp-server-buffer)))
(defmacro nnoo-define-basics (backend)
"Define `close-server', `server-opened' and `status-message'."
(erase-buffer)))))
(defun nntp-kill-buffer (buffer)
- (when (buffer-name buffer)
+ (when (buffer-live-p buffer)
(let ((process (get-buffer-process buffer)))
(when process
(delete-process process)))
(with-current-buffer
(generate-new-buffer
(format " *server %s %s %s*"
- nntp-address nntp-port-number
- (gnus-buffer-exists-p buffer)))
+ nntp-address nntp-port-number buffer))
(mm-disable-multibyte)
- (set (make-local-variable 'after-change-functions) nil)
- (set (make-local-variable 'nntp-process-wait-for) nil)
- (set (make-local-variable 'nntp-process-callback) nil)
- (set (make-local-variable 'nntp-process-to-buffer) nil)
- (set (make-local-variable 'nntp-process-start-point) nil)
- (set (make-local-variable 'nntp-process-decode) nil)
- (set (make-local-variable 'nntp-retrieval-in-progress) nil)
+ (setq-local after-change-functions nil)
+ (setq-local nntp-process-wait-for nil)
+ (setq-local nntp-process-callback nil)
+ (setq-local nntp-process-to-buffer nil)
+ (setq-local nntp-process-start-point nil)
+ (setq-local nntp-process-decode nil)
+ (setq-local nntp-retrieval-in-progress nil)
(current-buffer)))
(defun nntp-open-connection (buffer)
(setq process nil))
(unless process
(nntp-kill-buffer pbuffer))
- (when (and (buffer-name pbuffer)
+ (when (and (buffer-live-p pbuffer)
process)
(when (eq (process-type process) 'network)
;; Use TCP-keepalive so that connections that pass through a NAT router
(defun nntp-async-trigger (process)
(with-current-buffer (process-buffer process)
(when nntp-process-callback
- ;; do we have an error message?
+ ;; Do we have an error message?
(goto-char nntp-process-start-point)
(if (memq (following-char) '(?4 ?5))
- ;; wants credentials?
- (if (looking-at "480")
+ ;; Wants credentials?
+ (if (looking-at-p "480")
(nntp-handle-authinfo process)
- ;; report error message.
+ ;; Report error message.
(nntp-snarf-error-message)
(nntp-do-callback nil))
- ;; got what we expect?
+ ;; Got what we expect?
(goto-char (point-max))
(when (re-search-backward
nntp-process-wait-for nntp-process-start-point t)
(with-current-buffer nntp-server-buffer
(setq nntp-process-response response)))
(nntp-async-stop process)
- ;; convert it.
- (when (gnus-buffer-exists-p nntp-process-to-buffer)
+ ;; Convert it.
+ (when (gnus-buffer-live-p nntp-process-to-buffer)
(let ((buf (current-buffer))
(start nntp-process-start-point)
(decode nntp-process-decode))
(nnheader-insert-buffer-substring buf start)
(when decode
(nntp-decode-text))))))
- ;; report it.
+ ;; Report it.
(goto-char (point-max))
(nntp-do-callback
(buffer-name (get-buffer nntp-process-to-buffer))))))))
;;; Gnus
-;; For gnus-buffer-exists-p, although it seems that could be replaced by:
-;; (and buffer (get-buffer buffer))
-(eval-when-compile (require 'gnus-util))
+(eval-when-compile (require 'gnus-util)) ; For `gnus-buffer-live-p'.
(defvar gnus-article-buffer)
(declare-function gnus-group-read-ephemeral-group "gnus-group"
(group method &optional activate quit-config
(unless (and (fboundp 'gnus-alive-p)
(gnus-alive-p))
(error "Gnus is not running"))
- (unless (gnus-buffer-exists-p gnus-article-buffer)
+ (unless (gnus-buffer-live-p gnus-article-buffer)
(error "No article buffer available"))
(with-current-buffer gnus-article-buffer
;; gnus-art requires gnus-sum and message.