Variable: erc-server-PART-functions
erc-server-PART-functions is a variable defined in erc-backend.el.gz.
Value
(erc-server-PART)
Documentation
Hook called upon receiving a PART server response.
Each function is called with two arguments, the process associated with the response and the parsed response. If the function returns non-nil, stop processing the hook. Otherwise, continue.
See also erc-server-PART.
Source Code
;; Defined in /usr/src/emacs/lisp/erc/erc-backend.el.gz
(define-erc-response-handler (PART)
"Handle part messages." nil
(let* ((chnl (car (erc-response.command-args parsed)))
(reason (erc-trim-string (erc-response.contents parsed)))
(buffer (erc-get-buffer chnl proc)))
(pcase-let ((`(,nick ,login ,host)
(erc-parse-user (erc-response.sender parsed))))
;; When `buffer' is nil, `erc-remove-channel-member' and
;; `erc-remove-channel-users' do almost nothing, and the message
;; is displayed in the server buffer.
(erc-display-message parsed 'notice buffer
'PART ?n nick ?u login
?h host ?c chnl ?r (or reason ""))
(cond
((string= nick (erc-current-nick))
(run-hook-with-args 'erc-part-hook buffer)
(erc-with-buffer
(buffer)
(erc--remove-channel-users-but nick))
(with-suppressed-warnings ((obsolete erc-delete-default-channel))
(erc-delete-default-channel chnl buffer))
(erc-update-mode-line buffer)
(defvar erc-kill-buffer-on-part)
(when (and erc-kill-buffer-on-part buffer)
(defvar erc-killing-buffer-on-part-p)
(let ((erc-killing-buffer-on-part-p t))
(kill-buffer buffer))))
(t (erc-remove-channel-member buffer nick)))))
nil)