Function: gnus-read-method
gnus-read-method is a byte-compiled function defined in gnus.el.gz.
Signature
(gnus-read-method PROMPT)
Documentation
Prompt the user for a method.
Allow completion over sensible values.
Source Code
;; Defined in /usr/src/emacs/lisp/gnus/gnus.el.gz
(defun gnus-read-method (prompt)
"Prompt the user for a method.
Allow completion over sensible values."
(let* ((open-servers
(mapcar (lambda (i) (cons (format "%s:%s" (caar i) (cadar i)) i))
gnus-opened-servers))
(valid-methods
(let (methods)
(dolist (method gnus-valid-select-methods)
(if (or (memq 'prompt-address method)
(not (assoc (format "%s:" (car method)) open-servers)))
(push method methods)))
methods))
(servers
(append valid-methods
open-servers
gnus-predefined-server-alist
gnus-server-alist))
(method
(gnus-completing-read
prompt (mapcar #'car servers)
t nil 'gnus-method-history)))
(cond
((equal method "")
(setq method gnus-select-method))
((assoc method gnus-valid-select-methods)
(let ((address (if (memq 'prompt-address
(assoc method gnus-valid-select-methods))
(read-string "Address: ")
"")))
(or (cadr (assoc (format "%s:%s" method address) open-servers))
(list (intern method) address))))
((assoc method servers)
method)
(t
(list (intern method) "")))))