Function: erc-networks--reclaim-orphaned-target-buffers

erc-networks--reclaim-orphaned-target-buffers is a byte-compiled function defined in erc-networks.el.gz.

Signature

(erc-networks--reclaim-orphaned-target-buffers NEW-PROC NID ANNOUNCED)

Documentation

Visit disowned buffers for same NID and associate with NEW-PROC.

Expect ANNOUNCED to be the server's reported host name.

Source Code

;; Defined in /usr/src/emacs/lisp/erc/erc-networks.el.gz
;; This should run whenever a network identity is updated.
(defun erc-networks--reclaim-orphaned-target-buffers (new-proc nid announced)
  "Visit disowned buffers for same NID and associate with NEW-PROC.
Expect ANNOUNCED to be the server's reported host name."
  (erc-buffer-filter
   (lambda ()
     (when (and erc--target
                (not erc-server-connected)
                (erc-networks--id-equal-p erc-networks--id nid)
                (or (not (erc--target-channel-local-p erc--target))
                    (string= erc-server-announced-name announced)))
       ;; If a target buffer exists for the current process, kill this
       ;; stale one after transplanting its content; else reinstate.
       (if-let ((actual (erc-get-buffer (erc--target-string erc--target)
                                        new-proc))
                (erc-networks--target-transplant-in-progress-p t))
           (progn
             (funcall erc-networks--transplant-target-buffer-function
                      (current-buffer) actual)
             (kill-buffer (current-buffer))
             (with-current-buffer actual
               (erc-networks--ensure-unique-target-buffer-name)))
         (setq erc-server-process new-proc
               erc-server-connected t
               erc-networks--id nid))))))