Function: nnselect-request-article
nnselect-request-article is a byte-compiled function defined in
nnselect.el.gz.
Signature
(nnselect-request-article ARTICLE &optional GROUP SERVER TO-BUFFER)
Source Code
;; Defined in /usr/src/emacs/lisp/gnus/nnselect.el.gz
(deffoo nnselect-request-article (article &optional _group server to-buffer)
(let* ((gnus-override-method nil)
servers group-art artlist)
(if (numberp article)
(with-current-buffer gnus-summary-buffer
(unless (zerop (nnselect-artlist-length
gnus-newsgroup-selection))
(setq group-art (cons (nnselect-article-group article)
(nnselect-article-number article)))))
;; message-id: either coming from a referral or a pseudo-article
;; find the servers for a pseudo-article
(if (eq 'nnselect (car (gnus-server-to-method server)))
(with-current-buffer gnus-summary-buffer
(let ((thread (gnus-id-to-thread article)))
(when (car thread)
(mapc
(lambda (x)
(when (and x (> x 0))
(cl-pushnew
(list
(gnus-method-to-server
(gnus-find-method-for-group
(nnselect-article-group x))))
servers :test 'equal)))
(gnus-articles-in-thread thread)))))
(setq servers (list (list server))))
(setq artlist
(gnus-search-run-query
(list
(cons 'search-query-spec
(list (cons 'query (format "id:%s" article))))
(cons 'search-group-spec servers))))
(unless (zerop (nnselect-artlist-length artlist))
(setq
group-art
(cons
(nnselect-artitem-group (nnselect-artlist-article artlist 1))
(nnselect-artitem-number (nnselect-artlist-article artlist 1))))))
(when (numberp (cdr group-art))
(message "Requesting article %d from group %s"
(cdr group-art) (car group-art))
(if to-buffer
(with-current-buffer to-buffer
(let ((gnus-article-decode-hook nil))
(gnus-request-article-this-buffer
(cdr group-art) (car group-art))))
(gnus-request-article (cdr group-art) (car group-art)))
group-art)))