1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2025-02-08 20:58:58 +00:00

lisp/gnus/nnimap.el (nnimap-request-group-scan): Further `M-g' group fixes

This commit is contained in:
Lars Magne Ingebrigtsen 2015-02-05 04:02:46 +00:00 committed by Katsumi Yamaoka
parent 2c6d035968
commit f518a387c9
2 changed files with 37 additions and 31 deletions

View 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.

View 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))