]> code.delx.au - gnu-emacs/blobdiff - lisp/erc/erc-networks.el
; Merge from origin/emacs-25
[gnu-emacs] / lisp / erc / erc-networks.el
index 885e47fc233c8aee0926ed57e7c8d896d8425ece..f911d6438be0bcf315cfe91ce84f4c00f1a8f940 100644 (file)
@@ -1,9 +1,9 @@
 ;;; erc-networks.el --- IRC networks
 
-;; Copyright (C) 2002, 2004-2013 Free Software Foundation, Inc.
+;; Copyright (C) 2002, 2004-2016 Free Software Foundation, Inc.
 
 ;; Author: Mario Lang <mlang@lexx.delysid.org>
-;; Maintainer: FSF
+;; Maintainer: emacs-devel@gnu.org
 ;; Keywords: comm
 
 ;; This file is part of GNU Emacs.
@@ -40,7 +40,7 @@
 ;;; Code:
 
 (require 'erc)
-(eval-when-compile (require 'cl))
+(eval-when-compile (require 'cl-lib))
 
 ;; Variables
 
@@ -443,7 +443,15 @@ NET is a symbol indicating to which network from `erc-networks-alist' this
 HOST is the servers hostname and
 PORTS is either a number, a list of numbers, or a list of port ranges."
   :group 'erc-networks
-  :type 'sexp)
+  :type '(alist :key-type (string :tag "Name")
+               :value-type
+               (group symbol (string :tag "Hostname")
+                      (choice :tag "Ports"
+                              (integer :tag "Port number")
+                              (repeat :tag "List of ports or ranges"
+                                      (choice (integer :tag "Port number")
+                                              (list :tag "Port range"
+                                                    integer integer)))))))
 
 (defcustom erc-networks-alist
   '((4-irc "4-irc.com")
@@ -588,7 +596,7 @@ PORTS is either a number, a list of numbers, or a list of port ranges."
     (LagNet "lagnet.org.za")
     (Librenet "librenet.net")
     (LinkNet "link-net.org")
-    (LinuxChix "cats\.meow\.at\\|linuxchix\.org")
+    (LinuxChix "cats\\.meow\\.at\\|linuxchix\\.org")
     (Liquidized "liquidized.net")
     (M-IRC "m-sys.org")
     (MagicStar "magicstar.net")
@@ -724,16 +732,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)))
-       (loop for (name matcher) in erc-networks-alist
-            when (and matcher
-                      (string-match (concat matcher "\\'") server))
-            do (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."
@@ -781,16 +790,16 @@ PORTS should be a list of either:
   numbers between LOW and HIGH (inclusive) is returned.
 
 As an example:
-  (erc-ports-list '(1)) => (1)
-  (erc-ports-list '((1 5))) => (1 2 3 4 5)
-  (erc-ports-list '(1 (3 5))) => (1 3 4 5)"
+  (erc-ports-list \\='(1)) => (1)
+  (erc-ports-list \\='((1 5))) => (1 2 3 4 5)
+  (erc-ports-list \\='(1 (3 5))) => (1 3 4 5)"
   (let (result)
     (dolist (p ports)
       (cond ((numberp p)
             (push p result))
            ((listp p)
-            (setq result (nconc (loop for i from (cadr p) downto (car p)
-                                      collect i)
+            (setq result (nconc (cl-loop for i from (cadr p) downto (car p)
+                                         collect i)
                                 result)))))
     (nreverse result)))
 
@@ -865,4 +874,3 @@ VALUE is the options value.")
 ;; indent-tabs-mode: t
 ;; tab-width: 8
 ;; End:
-