Further `M-g' group fixes
authorLars Magne Ingebrigtsen <larsi@gnus.org>
Thu, 5 Feb 2015 03:10:08 +0000 (14:10 +1100)
committerLars Magne Ingebrigtsen <larsi@gnus.org>
Thu, 5 Feb 2015 03:10:08 +0000 (14:10 +1100)
* nnimap.el (nnimap-request-group-scan): Ensure that we've selected the
correct server.

lisp/ChangeLog
lisp/nnimap.el

index d7483a4..949d45a 100644 (file)
@@ -1,3 +1,8 @@
+2015-02-05  Lars Ingebrigtsen  <larsi@gnus.org>
+
+       * nnimap.el (nnimap-request-group-scan): Ensure that we've selected the
+       correct server.
+
 2015-02-05  Vincent Bernat  <bernat@luffy.cx>  (tiny change)
 
        * nnimap.el (nnimap-request-group-scan): Fix the function name.
index cdbc2a6..e7f91b7 100644 (file)
@@ -822,37 +822,38 @@ textual parts.")
 
 (deffoo nnimap-request-group-scan (group &optional server info)
   (setq group (nnimap-decode-gnus-group group))
-  (let (marks high low)
-    (with-current-buffer (nnimap-buffer)
-      (erase-buffer)
-      (let ((group-sequence
-            (nnimap-send-command "SELECT %S" (utf7-encode group t)))
-           (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)))
+  (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" (utf7-encode group t)))
+             (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))))
 
 (deffoo nnimap-request-create-group (group &optional server args)
   (setq group (nnimap-decode-gnus-group group))