Function: nnimap-request-list
nnimap-request-list is a byte-compiled function defined in
nnimap.el.gz.
Signature
(nnimap-request-list &optional SERVER)
Source Code
;; Defined in /usr/src/emacs/lisp/gnus/nnimap.el.gz
(deffoo nnimap-request-list (&optional server)
(when (nnimap-change-group nil server)
(with-current-buffer nntp-server-buffer
(erase-buffer)
(let ((groups
(with-current-buffer (nnimap-buffer)
(nnimap-get-groups)))
sequences responses)
(when groups
(with-current-buffer (nnimap-buffer)
(setf (nnimap-group nnimap-object) nil)
(dolist (group groups)
(setf (nnimap-examined nnimap-object) group)
(push (list (nnimap-send-command "EXAMINE %S"
(nnimap-group-to-imap group))
group)
sequences))
(nnimap-wait-for-response (caar sequences))
(setq responses
(nnimap-get-responses (mapcar #'car sequences))))
(dolist (response responses)
(let* ((sequence (car response))
(response (cadr response))
(group (cadr (assoc sequence sequences))))
(when (and group
(equal (caar response) "OK"))
(let ((uidnext (nnimap-find-parameter "UIDNEXT" response))
highest exists)
(dolist (elem response)
(when (equal (cadr elem) "EXISTS")
(setq exists (string-to-number (car elem)))))
(when uidnext
(setq highest (1- (string-to-number (car uidnext)))))
(cond
((null highest)
(insert (format "%S 0 1 y\n" group)))
((zerop exists)
;; Empty group.
(insert (format "%S %d %d y\n" group
highest (1+ highest))))
(t
;; Return the widest possible range.
(insert (format "%S %d 1 y\n" group
(or highest exists)))))))))
t)))))