Function: nnvirtual-request-article
nnvirtual-request-article is a byte-compiled function defined in
nnvirtual.el.gz.
Signature
(nnvirtual-request-article ARTICLE &optional GROUP SERVER BUFFER)
Source Code
;; Defined in /usr/src/emacs/lisp/gnus/nnvirtual.el.gz
(deffoo nnvirtual-request-article (article &optional _group server buffer)
(when (nnvirtual-possibly-change-server server)
(if (stringp article)
;; This is a fetch by Message-ID.
(cond
((not nnvirtual-last-accessed-component-group)
(nnheader-report
'nnvirtual "Don't know what server to request from"))
(t
(save-excursion
(when buffer
(set-buffer buffer))
(let* ((gnus-override-method nil)
(gnus-command-method
(gnus-find-method-for-group
nnvirtual-last-accessed-component-group)))
(funcall (gnus-get-function gnus-command-method 'request-article)
article nil (nth 1 gnus-command-method) buffer)))))
;; This is a fetch by number.
(let* ((amap (nnvirtual-map-article article))
(cgroup (car amap)))
(cond
((not amap)
(nnheader-report 'nnvirtual "No such article: %s" article))
((not (gnus-check-group cgroup))
(nnheader-report
'nnvirtual "Can't open server where %s exists" cgroup))
((not (gnus-request-group cgroup t))
(nnheader-report 'nnvirtual "Can't open component group %s" cgroup))
(t
(setq nnvirtual-last-accessed-component-group cgroup)
(if buffer
(with-current-buffer buffer
;; We bind this here to avoid double decoding.
(let ((gnus-article-decode-hook nil))
(gnus-request-article-this-buffer (cdr amap) cgroup)))
(gnus-request-article (cdr amap) cgroup))))))))