summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lisp/erc/ChangeLog5
-rw-r--r--lisp/erc/erc-networks.el21
2 files changed, 16 insertions, 10 deletions
diff --git a/lisp/erc/ChangeLog b/lisp/erc/ChangeLog
index 8d0fc723f14..6d99fdf73d9 100644
--- a/lisp/erc/ChangeLog
+++ b/lisp/erc/ChangeLog
@@ -1,3 +1,8 @@
+2014-02-25 Julien Danjou <julien@danjou.info>
+
+ * erc-networks.el (erc-determine-network): Check that NETWORK as a
+ value, some servers set it to nothing.
+
2014-01-31 Glenn Morris <rgm@gnu.org>
* erc.el (erc-accidental-paste-threshold-seconds): Doc tweak.
diff --git a/lisp/erc/erc-networks.el b/lisp/erc/erc-networks.el
index 191aad0e0cc..29a13ae5e30 100644
--- a/lisp/erc/erc-networks.el
+++ b/lisp/erc/erc-networks.el
@@ -724,16 +724,17 @@ MATCHER is used to find a corresponding network to a server while connected to
server parameter NETWORK if provided, otherwise parse the server name and
search for a match in `erc-networks-alist'."
;; The server made it easy for us and told us the name of the NETWORK
- (if (assoc "NETWORK" erc-server-parameters)
- (intern (cdr (assoc "NETWORK" erc-server-parameters)))
- (or
- ;; Loop through `erc-networks-alist' looking for a match.
- (let ((server (or erc-server-announced-name erc-session-server)))
- (cl-loop for (name matcher) in erc-networks-alist
- when (and matcher
- (string-match (concat matcher "\\'") server))
- do (cl-return name)))
- 'Unknown)))
+ (let ((network-name (cdr (assoc "NETWORK" erc-server-parameters))))
+ (if network-name
+ (intern network-name)
+ (or
+ ;; Loop through `erc-networks-alist' looking for a match.
+ (let ((server (or erc-server-announced-name erc-session-server)))
+ (cl-loop for (name matcher) in erc-networks-alist
+ when (and matcher
+ (string-match (concat matcher "\\'") server))
+ do (cl-return name)))
+ 'Unknown))))
(defun erc-network ()
"Return the value of `erc-network' for the current server."