Function: erc--wrangle-query-buffers-on-nick-change
erc--wrangle-query-buffers-on-nick-change is a byte-compiled function
defined in erc-backend.el.gz.
Signature
(erc--wrangle-query-buffers-on-nick-change OLD NEW)
Documentation
Create or reuse a query buffer for NEW nick after considering OLD nick.
Return a list of buffers in which to announce the change.
Source Code
;; Defined in /usr/src/emacs/lisp/erc/erc-backend.el.gz
(defun erc--wrangle-query-buffers-on-nick-change (old new)
"Create or reuse a query buffer for NEW nick after considering OLD nick.
Return a list of buffers in which to announce the change."
;; Note that `new-buffer' may be older than `old-buffer', e.g., if
;; the query target is switching to a previously used nick.
(let ((new-buffer (erc-get-buffer new erc-server-process))
(old-buffer (erc-get-buffer old erc-server-process))
(selfp (erc-current-nick-p old)) ; e.g., for note taking, etc.
buffers)
(when new-buffer
(push new-buffer buffers))
(when old-buffer
(push old-buffer buffers)
;; Ensure the new nick is absent from the old query.
(unless selfp
(erc-remove-channel-member old-buffer old))
(when (or selfp (null new-buffer))
(let ((target (erc--target-from-string new))
(id (erc-networks--id-given erc-networks--id)))
(with-current-buffer old-buffer
(setq erc-default-recipients (cons new
(cdr erc-default-recipients))
erc--target target))
(setq new-buffer (erc-get-buffer-create erc-session-server
erc-session-port
nil target id)))))
(when new-buffer
(with-current-buffer new-buffer
(erc-update-mode-line)))
buffers))