Function: nnselect-retrieve-headers
nnselect-retrieve-headers is a byte-compiled function defined in
nnselect.el.gz.
Signature
(nnselect-retrieve-headers ARTICLES GROUP &optional SERVER FETCH-OLD)
Source Code
;; Defined in /usr/src/emacs/lisp/gnus/nnselect.el.gz
(deffoo nnselect-retrieve-headers (articles group &optional _server fetch-old)
(let ((group (nnselect-add-prefix group)))
(with-current-buffer (gnus-summary-buffer-name group)
(setq gnus-newsgroup-selection (or gnus-newsgroup-selection
(nnselect-get-artlist group)))
(let ((gnus-inhibit-demon t)
(gartids (ids-by-group articles))
headers)
(with-current-buffer nntp-server-buffer
(pcase-dolist (`(,artgroup . ,artids) gartids)
(let ((artlist (sort (mapcar #'cdr artids) #'<))
(gnus-override-method (gnus-find-method-for-group artgroup))
(fetch-old
(or
(car-safe
(gnus-group-find-parameter artgroup
'gnus-fetch-old-headers t))
fetch-old)))
(erase-buffer)
(pcase (setq gnus-headers-retrieved-by
(or
(and
nnselect-retrieve-headers-override-function
(funcall
nnselect-retrieve-headers-override-function
artlist artgroup))
(gnus-retrieve-headers
artlist artgroup fetch-old)))
('nov
(goto-char (point-min))
(while (not (eobp))
(nnselect-add-novitem
(nnheader-parse-nov))
(forward-line 1)))
('headers
(gnus-run-hooks 'gnus-parse-headers-hook)
(let ((nnmail-extra-headers gnus-extra-headers))
(goto-char (point-min))
(while (not (eobp))
(nnselect-add-novitem
(nnheader-parse-head))
(forward-line 1))))
((pred listp)
(dolist (novitem gnus-headers-retrieved-by)
(nnselect-add-novitem novitem)))
(_ (error "Unknown header type %s while requesting articles \
of group %s" gnus-headers-retrieved-by artgroup)))))
(setq headers
(sort
headers
(lambda (x y)
(< (mail-header-number x) (mail-header-number y))))))))))