;;; 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.
;;; Code:
(require 'erc)
-(eval-when-compile (require 'cl))
+(eval-when-compile (require 'cl-lib))
;; Variables
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")
(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")
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."
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)))
;; indent-tabs-mode: t
;; tab-width: 8
;; End:
-