From 674439465f70ff04dc483df45a4581a113ca44cf Mon Sep 17 00:00:00 2001 From: Lars Ingebrigtsen Date: Wed, 1 Feb 2012 16:00:44 +0100 Subject: [PATCH] Make nnimap message better when initially fetching data * nnimap.el (nnimap-retrieve-group-data-early): Keep track of how many groups we do a total scan for. (nnimap-wait-for-response): Say that we're doing a total scan, if we're doing that. --- lisp/ChangeLog | 7 +++++++ lisp/nnimap.el | 17 +++++++++++++---- 2 files changed, 20 insertions(+), 4 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 6321ece3d..f541ee1d8 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,10 @@ +2012-02-01 Lars Ingebrigtsen + + * nnimap.el (nnimap-retrieve-group-data-early): Keep track of how many + groups we do a total scan for. + (nnimap-wait-for-response): Say that we're doing a total scan, if we're + doing that. + 2012-01-31 Jim Meyering * gnus-agent.el (gnus-agent-expire-unagentized-dirs): diff --git a/lisp/nnimap.el b/lisp/nnimap.el index 36245af4b..c3b367099 100644 --- a/lisp/nnimap.el +++ b/lisp/nnimap.el @@ -134,7 +134,7 @@ textual parts.") (defstruct nnimap group process commands capabilities select-result newlinep server - last-command-time greeting examined stream-type) + last-command-time greeting examined stream-type initial-resync) (defvar nnimap-object nil) @@ -288,7 +288,8 @@ textual parts.") (gnus-add-buffer) (set (make-local-variable 'after-change-functions) nil) (set (make-local-variable 'nnimap-object) - (make-nnimap :server (nnoo-current-server 'nnimap))) + (make-nnimap :server (nnoo-current-server 'nnimap) + :initial-resync 0)) (push (list buffer (current-buffer)) nnimap-connection-alist) (push (current-buffer) nnimap-process-buffers) (current-buffer))) @@ -1218,6 +1219,7 @@ textual parts.") (with-current-buffer (nnimap-buffer) (erase-buffer) (setf (nnimap-group nnimap-object) nil) + (setf (nnimap-initial-resync nnimap-object) 0) (let ((qresyncp (nnimap-capability "QRESYNC")) params groups sequences active uidvalidity modseq group) ;; Go through the infos and gather the data needed to know @@ -1256,6 +1258,8 @@ textual parts.") ;; examine), but will tell us whether the group ;; is read-only or not. "SELECT"))) + (setf (nnimap-initial-resync nnimap-object) + (1+ (nnimap-initial-resync nnimap-object))) (push (list (nnimap-send-command "%s %S" command (utf7-encode group t)) (nnimap-send-command "UID FETCH %d:* FLAGS" start) @@ -1738,10 +1742,15 @@ textual parts.") (not (looking-at (format "%d .*\n" sequence))))) (when messagep (nnheader-message-maybe - 7 "nnimap read %dk from %s" (/ (buffer-size) 1000) - nnimap-address)) + 7 "nnimap read %dk from %s%s" (/ (buffer-size) 1000) + nnimap-address + (if (not (zerop (nnimap-initial-resync nnimap-object))) + (format " (initial sync of %d groups; please wait)" + (nnimap-initial-resync nnimap-object)) + ""))) (nnheader-accept-process-output process) (goto-char (point-max))) + (setf (nnimap-initial-resync nnimap-object) 0) openp) (quit (when debug-on-quit -- 2.25.1