Merge remote-tracking branch 'origin/no-gnus'
authorLars Ingebrigtsen <larsi@gnus.org>
Sun, 5 Feb 2012 02:25:24 +0000 (03:25 +0100)
committerLars Ingebrigtsen <larsi@gnus.org>
Sun, 5 Feb 2012 02:25:24 +0000 (03:25 +0100)
lisp/ChangeLog
lisp/nnimap.el

index 6552159..c3d0c4c 100644 (file)
 
        * gnus.el: Ma Gnus v0.1 is released.
 
+2012-02-05  Lars Ingebrigtsen  <larsi@gnus.org>
+
+       * nnimap.el (nnimap-open-server): Allow switching the nnoo server
+       without reconnecting.
+       (nnimap-possibly-change-group): Ditto.
+       (nnimap-finish-retrieve-group-infos): Don't reconnect if the server
+       connection has died before being called.
+
 2012-02-02  Lars Ingebrigtsen  <larsi@gnus.org>
 
        * nnimap.el (nnimap-retrieve-group-data-early): Don't say we're doing
index a5e8238..e62dc12 100644 (file)
@@ -269,14 +269,16 @@ textual parts.")
         result))
       (mapconcat #'identity (nreverse result) ",")))))
 
-(deffoo nnimap-open-server (server &optional defs)
+(deffoo nnimap-open-server (server &optional defs no-reconnect)
   (if (nnimap-server-opened server)
       t
     (unless (assq 'nnimap-address defs)
       (setq defs (append defs (list (list 'nnimap-address server)))))
     (nnoo-change-server 'nnimap server defs)
-    (or (nnimap-find-connection nntp-server-buffer)
-       (nnimap-open-connection nntp-server-buffer))))
+    (if no-reconnect
+       (nnimap-find-connection nntp-server-buffer)
+      (or (nnimap-find-connection nntp-server-buffer)
+         (nnimap-open-connection nntp-server-buffer)))))
 
 (defun nnimap-make-process-buffer (buffer)
   (with-current-buffer
@@ -1278,7 +1280,7 @@ textual parts.")
 
 (deffoo nnimap-finish-retrieve-group-infos (server infos sequences)
   (when (and sequences
-            (nnimap-possibly-change-group nil server)
+            (nnimap-possibly-change-group nil server t)
             ;; Check that the process is still alive.
             (get-buffer-process (nnimap-buffer))
             (memq (process-status (get-buffer-process (nnimap-buffer)))
@@ -1633,11 +1635,11 @@ textual parts.")
                                  (cdr (assoc "SEARCH" (cdr result))))))
            nil t))))))
 
-(defun nnimap-possibly-change-group (group server)
+(defun nnimap-possibly-change-group (group server &optional no-reconnect)
   (let ((open-result t))
     (when (and server
               (not (nnimap-server-opened server)))
-      (setq open-result (nnimap-open-server server)))
+      (setq open-result (nnimap-open-server server no-reconnect)))
     (cond
      ((not open-result)
       nil)