Function: gnus-method-to-server

gnus-method-to-server is a byte-compiled function defined in gnus.el.gz.

Signature

(gnus-method-to-server METHOD &optional NOCACHE NO-ENTER-CACHE)

Source Code

;; Defined in /usr/src/emacs/lisp/gnus/gnus.el.gz
(defsubst gnus-method-to-server (method &optional nocache no-enter-cache)
  (catch 'server-name
    (setq method (or method gnus-select-method))

    ;; Perhaps it is already in the cache.
    (unless nocache
      (mapc (lambda (name-method)
	      (if (equal (cdr name-method) method)
		  (throw 'server-name (car name-method))))
	    gnus-server-method-cache))

    (dolist (server-alist
             (list gnus-server-alist
                   gnus-predefined-server-alist))
      (mapc (lambda (name-method)
	      (when (gnus-methods-equal-p (cdr name-method) method)
		(unless (member name-method gnus-server-method-cache)
		  (push name-method gnus-server-method-cache))
		(throw 'server-name (car name-method))))
	    server-alist))

    (let* ((name (if (member (cadr method) '(nil ""))
		     (format "%s" (car method))
		   (format "%s:%s" (car method) (cadr method))))
	   (name-method (cons name method)))
      (unless (or no-enter-cache
		  (member name-method gnus-server-method-cache)
		  (assoc (car name-method) gnus-server-method-cache))
	(push name-method gnus-server-method-cache))
      name)))