Function: nnimap-retrieve-headers
nnimap-retrieve-headers is a byte-compiled function defined in
nnimap.el.gz.
Signature
(nnimap-retrieve-headers ARTICLES &optional GROUP SERVER FETCH-OLD)
Source Code
;; Defined in /usr/src/emacs/lisp/gnus/nnimap.el.gz
(deffoo nnimap-retrieve-headers (articles &optional group server _fetch-old)
(with-current-buffer nntp-server-buffer
(erase-buffer)
(when (nnimap-change-group group server)
(with-current-buffer (nnimap-buffer)
(erase-buffer)
;; If we have a lot of ranges, split them up to avoid
;; generating too-long lines. (The limit is 8192 octets,
;; and this should guarantee that it's (much) shorter than
;; that.) We don't stream the requests, since the server
;; may respond to the requests out-of-order:
;; https://datatracker.ietf.org/doc/html/rfc3501#section-5.5
(dolist (ranges (seq-split (gnus-compress-sequence articles t)
nnimap--max-retrieve-headers))
(nnimap-wait-for-response
(nnimap-send-command
"UID FETCH %s %s"
(nnimap-article-ranges ranges)
(nnimap-header-parameters))
t))
(unless (process-live-p (get-buffer-process (current-buffer)))
(error "IMAP server %S closed connection" nnimap-address))
(nnimap-transform-headers)
(nnheader-remove-cr-followed-by-lf))
(insert-buffer-substring
(nnimap-find-process-buffer (current-buffer))))
'headers))