Function: erc-networks--server-select
erc-networks--server-select is a byte-compiled function defined in
erc-networks.el.gz.
Signature
(erc-networks--server-select)
Documentation
Prompt for a server in erc-server-alist and return its irc(s):// URL.
Choose port at random if multiple candidates exist, but always prefer TLS without asking. When a port can't be determined, return the host alone sans URL formatting (for compatibility).
Source Code
;; Defined in /usr/src/emacs/lisp/erc/erc-networks.el.gz
(defun erc-networks--server-select ()
"Prompt for a server in `erc-server-alist' and return its irc(s):// URL.
Choose port at random if multiple candidates exist, but always
prefer TLS without asking. When a port can't be determined,
return the host alone sans URL formatting (for compatibility)."
(let* ((completion-ignore-case t)
(net (intern
(completing-read "Network: "
(delete-dups
(mapcar (lambda (x)
(list (nth 1 x)))
erc-server-alist)))))
(s-choose (lambda (entry)
(and (equal (nth 1 entry) net)
(if-let ((b (string-search ": " (car entry))))
(cons (format "%s (%s)" (nth 2 entry)
(substring (car entry) (+ b 2)))
(cdr entry))
entry))))
(s-entries (delq nil (mapcar s-choose erc-server-alist)))
(srv (assoc (completing-read "Server: " s-entries) s-entries))
(host (nth 2 srv))
(pspec (nthcdr 3 srv))
(ports (erc-ports-list (or (cadr pspec) (car pspec))))
(scheme (if (cdr pspec) "ircs" "irc")))
(if ports (format "%s://%s:%d" scheme host (seq-random-elt ports)) host)))