Function: erc-autojoin--mutate
erc-autojoin--mutate is a byte-compiled function defined in
erc-join.el.gz.
Signature
(erc-autojoin--mutate PROC PARSED REMOVE)
Source Code
;; Defined in /usr/src/emacs/lisp/erc/erc-join.el.gz
(defun erc-autojoin--mutate (proc parsed remove)
(when-let* ((nick (car (erc-parse-user (erc-response.sender parsed))))
((erc-current-nick-p nick))
(chnl (car (erc-response.command-args parsed)))
(elem (or (and (erc--valid-local-channel-p chnl)
(regexp-quote erc-server-announced-name))
(erc-networks--id-given erc-networks--id)
(erc-network)
(with-current-buffer (process-buffer proc)
(erc-autojoin-current-server))))
(test (if (symbolp elem) #'eq #'equal)))
(if remove
(let ((cs (delete chnl (assoc-default elem erc-autojoin-channels-alist
test))))
(setf (alist-get elem erc-autojoin-channels-alist nil (null cs) test)
cs))
(cl-pushnew chnl
(alist-get elem erc-autojoin-channels-alist nil nil test)
:test #'equal))))