From: Lars Magne Ingebrigtsen Date: Thu, 5 Feb 2015 04:02:46 +0000 (+0000) Subject: lisp/gnus/nnimap.el (nnimap-request-group-scan): Further `M-g' group fixes X-Git-Tag: emacs-25.0.90~2008^2~110 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=f518a387c952f8b0d70cfec4087ce0b14f79fd27;p=emacs.git lisp/gnus/nnimap.el (nnimap-request-group-scan): Further `M-g' group fixes --- diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog index 0de7af4128d..bd34bebf51a 100644 --- a/lisp/gnus/ChangeLog +++ b/lisp/gnus/ChangeLog @@ -1,3 +1,8 @@ +2015-02-05 Lars Ingebrigtsen + + * nnimap.el (nnimap-request-group-scan): Ensure that we've selected the + correct server. + 2015-02-05 Vincent Bernat (tiny change) * nnimap.el (nnimap-request-group-scan): Fix the function name. diff --git a/lisp/gnus/nnimap.el b/lisp/gnus/nnimap.el index cdbc2a68709..e7f91b7cc33 100644 --- a/lisp/gnus/nnimap.el +++ b/lisp/gnus/nnimap.el @@ -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))