Function: erc-server-PART
erc-server-PART is a byte-compiled function defined in
erc-backend.el.gz.
Signature
(erc-server-PART PROC PARSED)
Documentation
Handle part messages.
Handler for a PART server response.
PROC is the server process which returned the response.
PARSED is the actual response as an erc-response struct.
If you want to add responses don't modify this function, but rather
add things to erc-server-PART-functions instead.
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)