Make nnimap message better when initially fetching data
authorLars Ingebrigtsen <larsi@gnus.org>
Wed, 1 Feb 2012 15:00:44 +0000 (16:00 +0100)
committerLars Ingebrigtsen <larsi@gnus.org>
Wed, 1 Feb 2012 15:00:44 +0000 (16:00 +0100)
* 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
lisp/nnimap.el

index 6321ece..f541ee1 100644 (file)
@@ -1,3 +1,10 @@
+2012-02-01  Lars Ingebrigtsen  <larsi@gnus.org>
+
+       * 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  <jim@meyering.net>
 
        * gnus-agent.el (gnus-agent-expire-unagentized-dirs):
index 36245af..c3b3670 100644 (file)
@@ -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