Function: nnimap-request-group-scan

nnimap-request-group-scan is a byte-compiled function defined in nnimap.el.gz.

Signature

(nnimap-request-group-scan GROUP &optional SERVER INFO)

Source Code

;; Defined in /usr/src/emacs/lisp/gnus/nnimap.el.gz
(deffoo nnimap-request-group-scan (group &optional server info)
  (when (nnimap-change-group nil server)
    (let (marks high low)
      (with-current-buffer (nnimap-buffer)
	(erase-buffer)
	(let ((group-sequence
	       (nnimap-send-command "SELECT %S" (nnimap-group-to-imap group)))
	      (flag-sequence
	       (nnimap-send-command "UID FETCH 1:* FLAGS")))
	  (setf (nnimap-group nnimap-object) group)
	  (nnimap-wait-for-response flag-sequence)
	  (setq marks
		(nnimap-flags-to-marks
		 (nnimap-parse-flags
		  (list (list group-sequence flag-sequence
			      1 group "SELECT")))))
	  (when (and info
		     marks)
	    (nnimap-update-infos marks (list info))
	    (nnimap-store-info info (gnus-active (gnus-info-group info))))
	  (goto-char (point-max))
	  (let ((uidnext (nth 5 (car marks))))
	    (setq high (or (if uidnext
			       (1- uidnext)
			     (nth 3 (car marks)))
			   0)
		  low (or (nth 4 (car marks)) uidnext 1)))))
      (with-current-buffer nntp-server-buffer
	(erase-buffer)
	(insert
	 (format
	  "211 %d %d %d %S\n" (1+ (- high low)) low high
	  group))
	t))))