Function: erc-autojoin-channels
erc-autojoin-channels is a byte-compiled function defined in
erc-join.el.gz.
Signature
(erc-autojoin-channels SERVER NICK)
Documentation
Autojoin channels in erc-autojoin-channels-alist.
Source Code
;; Defined in /usr/src/emacs/lisp/erc/erc-join.el.gz
(defun erc-autojoin-channels (server nick)
"Autojoin channels in `erc-autojoin-channels-alist'."
(if (eq erc-autojoin-timing 'ident)
;; Prepare the delayed autojoin timer, in case ident doesn't
;; happen within the allotted time limit:
(when (> erc-autojoin-delay 0)
(setq erc--autojoin-timer
(run-with-timer erc-autojoin-delay nil
#'erc-autojoin-channels-delayed
server nick (current-buffer))))
;; `erc-autojoin-timing' is `connect':
(let ((server (or erc-session-server erc-server-announced-name)))
(dolist (l erc-autojoin-channels-alist)
(when (erc-autojoin-server-match (car l))
(dolist (chan (cdr l))
(let ((buffer
(car (erc-buffer-filter
(lambda ()
(let ((current (erc-default-target)))
(and (stringp current)
(erc-autojoin-server-match (car l))
(string-equal (erc-downcase chan)
(erc-downcase current)))))))))
(when (or (not buffer)
(not (with-current-buffer buffer
(erc-server-process-alive))))
(erc-server-join-channel server chan))))))))
;; Return nil to avoid stomping on any other hook funcs.
nil)