Function: nnmairix-backend-to-server
nnmairix-backend-to-server is a byte-compiled function defined in
nnmairix.el.gz.
Signature
(nnmairix-backend-to-server SERVER)
Documentation
Return nnmairix server most probably responsible for back end SERVER.
User will be asked if this cannot be determined. Result is saved in
parameter indexed-servers of corresponding default search
group.
Source Code
;; Defined in /usr/src/emacs/lisp/gnus/nnmairix.el.gz
(defun nnmairix-backend-to-server (server)
"Return nnmairix server most probably responsible for back end SERVER.
User will be asked if this cannot be determined. Result is saved in
parameter `indexed-servers' of corresponding default search
group."
(let ((allservers (nnmairix-get-nnmairix-servers))
mairixserver found defaultgroup)
(if (> (length allservers) 1)
(progn
;; If there is more than one nnmairix server, we go through them
(while (and allservers (not found))
(setq mairixserver (gnus-server-to-method (car (pop allservers))))
;; First we look if SERVER is the backend of current nnmairix server
(setq found (and (eq (cadr (assoc 'nnmairix-backend mairixserver))
(car server))
(string= (cadr (assoc 'nnmairix-backend-server mairixserver))
(nth 1 server))))
;; If that's not the case, we look at 'indexed-servers
;; variable in default search group
(when (not found)
(setq defaultgroup (cadr (assoc 'nnmairix-default-group mairixserver)))
(setq found (member (gnus-method-to-server server)
(gnus-group-get-parameter
(gnus-group-prefixed-name defaultgroup
mairixserver)
'indexed-servers t)))))
;; If still not found, we ask user
(when (not found)
(setq mairixserver
(gnus-server-to-method
(gnus-completing-read
(format "Cannot determine which nnmairix server indexes %s. Please specify"
(gnus-method-to-server server))
(nnmairix-get-nnmairix-servers) nil "nnmairix:")))
;; Save result in parameter of default search group so that
;; we don't have to ask again
(setq defaultgroup (gnus-group-prefixed-name
(cadr (assoc 'nnmairix-default-group mairixserver)) mairixserver))
(gnus-group-set-parameter
defaultgroup
'indexed-servers
(append (gnus-group-get-parameter defaultgroup 'indexed-servers t)
(list (gnus-method-to-server server)))))
mairixserver)
;; If there is just one (or none) nnmairix server:
(gnus-server-to-method (caar allservers)))))