;;; erc-join.el --- autojoin channels on connect and reconnects
-;; Copyright (C) 2002-2004, 2006-2014 Free Software Foundation, Inc.
+;; Copyright (C) 2002-2004, 2006-2015 Free Software Foundation, Inc.
;; Author: Alex Schroeder <alex@gnu.org>
;; Maintainer: emacs-devel@gnu.org
identification, or after `erc-autojoin-delay' seconds.
Any other value means the same as `connect'."
:group 'erc-autojoin
- :version "24.5"
+ :version "24.1"
:type '(choice (const :tag "On Connection" connect)
(const :tag "When Identified" ident)))
If NickServ identification occurs before this delay expires, ERC
autojoins immediately at that time."
:group 'erc-autojoin
- :version "24.5"
+ :version "24.1"
:type 'integer)
(defcustom erc-autojoin-domain-only t
(dolist (l erc-autojoin-channels-alist)
(when (string-match (car l) server)
(dolist (chan (cdr l))
- (erc-server-join-channel server chan)))))
+ (let ((buffer (erc-get-buffer chan)))
+ ;; Only auto-join the channels that we aren't already in
+ ;; using a different nick.
+ (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)
(password (if (functionp secret)
(funcall secret)
secret)))
- (erc-server-send (concat "join " channel
+ (erc-server-send (concat "JOIN " channel
(if password
(concat " " password)
"")))))