Function: erc-server-MODE
erc-server-MODE is a byte-compiled function defined in
erc-backend.el.gz.
Signature
(erc-server-MODE PROC PARSED)
Documentation
Handle server mode changes.
Handler for a MODE 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-MODE-functions instead.
Source Code
;; Defined in /usr/src/emacs/lisp/erc/erc-backend.el.gz
(define-erc-response-handler (MODE)
"Handle server mode changes." nil
(let ((tgt (car (erc-response.command-args parsed)))
(mode (mapconcat #'identity (cdr (erc-response.command-args parsed))
" ")))
(pcase-let ((`(,nick ,login ,host)
(erc-parse-user (erc-response.sender parsed))))
(erc-log (format "MODE: %s -> %s: %s" nick tgt mode))
;; dirty hack
(let ((buf (cond ((erc-channel-p tgt)
(erc-get-buffer tgt proc))
((string= tgt (erc-current-nick)) nil)
((erc-active-buffer) (erc-active-buffer))
(t (erc-get-buffer tgt)))))
(with-current-buffer (or buf
(current-buffer))
(erc--update-modes (cdr (erc-response.command-args parsed))))
(if (or (string= login "") (string= host ""))
(erc-display-message parsed 'notice buf
'MODE-nick ?n nick
?t tgt ?m mode)
(erc-display-message parsed 'notice buf
'MODE ?n nick ?u login
?h host ?t tgt ?m mode)))
(erc-banlist-update proc parsed))))