Don't use the "finish" method when we're reading from the agent.
authorLars Magne Ingebrigtsen <larsi@quimbies.gnus.org>
Fri, 17 Sep 2010 22:33:31 +0000 (00:33 +0200)
committerLars Magne Ingebrigtsen <larsi@quimbies.gnus.org>
Fri, 17 Sep 2010 22:33:31 +0000 (00:33 +0200)
Add some more nnimap-relevant agent stuff to nnagent.el.

lisp/ChangeLog
lisp/gnus-start.el
lisp/nnagent.el
lisp/nnimap.el

index e6b496e..34b490b 100644 (file)
@@ -1,5 +1,10 @@
 2010-09-17  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 
+       * gnus-start.el (gnus-read-active-for-groups): Don't use the "finish"
+       method when we're reading from the agent.
+
+       * nnagent.el (nnagent-retrieve-group-data-early): New dummy method.
+
        * auth-source.el (auth-sources): Add ~/.authinfo to the default, since
        that's probably most useful for users.
 
index 6aa0fa1..1d8093b 100644 (file)
@@ -1800,7 +1800,10 @@ If SCAN, request a scan of that group as well."
 (defun gnus-read-active-for-groups (method infos early-data)
   (with-current-buffer nntp-server-buffer
     (cond
-     ((gnus-check-backend-function 'finish-retrieve-group-infos (car method))
+     ((and
+       (gnus-check-backend-function 'finish-retrieve-group-infos (car method))
+       (or (not (gnus-agent-method-p method))
+          (gnus-online method)))
       (gnus-finish-retrieve-group-infos method infos early-data))
      ((gnus-check-backend-function 'retrieve-groups (car method))
       (when (gnus-check-backend-function 'request-scan (car method))
index 263d721..ccd4e89 100644 (file)
   (nnoo-parent-function 'nnagent 'nnml-request-regenerate
                        (list (nnagent-server server))))
 
+(deffoo nnagent-retrieve-group-data-early (server infos)
+  nil)
+
 ;; Use nnml functions for just about everything.
 (nnoo-import nnagent
   (nnml))
index c53b9db..6274e2f 100644 (file)
@@ -575,7 +575,8 @@ not done by default on servers that doesn't support that command.")
            (completep (and start-article
                            (= start-article 1))))
        ;; First set the active ranges based on high/low.
-       (if completep
+       (if (or completep
+               (not (gnus-active group)))
            (gnus-set-active group
                             (if high
                                 (cons low high)