From: Simon Josefsson Date: Fri, 5 Nov 1999 23:39:44 +0000 (+0000) Subject: (gnus-read-method): Add methods from `gnus-opened-servers' to X-Git-Url: https://cgit.sxemacs.org/?a=commitdiff_plain;h=f96656e03e1b23fd2299118157a57abdbd7f4d2e;p=gnus (gnus-read-method): Add methods from `gnus-opened-servers' to completion. Map entered method/address into existing methods if possible. --- diff --git a/lisp/gnus.el b/lisp/gnus.el index 0b19cef78..16fb68d20 100644 --- a/lisp/gnus.el +++ b/lisp/gnus.el @@ -2772,6 +2772,9 @@ Disallow invalid group names." Allow completion over sensible values." (let* ((servers (append gnus-valid-select-methods + (mapcar (lambda (i) (list (format "%s:%s" (caar i) + (cadar i)))) + gnus-opened-servers) gnus-predefined-server-alist gnus-server-alist)) (method @@ -2782,11 +2785,18 @@ Allow completion over sensible values." ((equal method "") (setq method gnus-select-method)) ((assoc method gnus-valid-select-methods) - (list (intern method) - (if (memq 'prompt-address - (assoc method gnus-valid-select-methods)) - (read-string "Address: ") - ""))) + (let ((address (if (memq 'prompt-address + (assoc method gnus-valid-select-methods)) + (read-string "Address: ") + ""))) + (or (let ((opened gnus-opened-servers)) + (while (and opened + (not (equal (format "%s:%s" method address) + (format "%s:%s" (caaar opened) + (cadaar opened))))) + (pop opened)) + (caar opened)) + (list (intern method) address)))) ((assoc method servers) method) (t