]> git.eshelyaron.com Git - emacs.git/commitdiff
Don't set marks on imap groups when there are no marks to set
authorEric Abrahamsen <eric@ericabrahamsen.net>
Thu, 25 Jul 2019 19:24:43 +0000 (12:24 -0700)
committerEric Abrahamsen <eric@ericabrahamsen.net>
Thu, 25 Jul 2019 19:24:43 +0000 (12:24 -0700)
* lisp/gnus/nnimap.el (nnimap-update-qresync-info): This code runs in
a fairly tight loop and shouldn't call all these functions if not
necessary.

lisp/gnus/nnimap.el

index ad2b1a4fb636c10f2797058f267196e8f307db24..99a610487fe76e9f9bc166766b31f64a7abe2709 100644 (file)
@@ -1702,18 +1702,19 @@ If LIMIT, first try to limit the search to the N last articles."
             (cdr (or (assoc (caddr type) flags) ; %Flagged
                      (assoc (intern (cadr type) obarray) flags)
                      (assoc (cadr type) flags))))) ; "\Flagged"
-       (setq marks (delq ticks marks))
-       (pop ticks)
-       ;; Add the new marks we got.
-       (setq ticks (gnus-add-to-range ticks new-marks))
-       ;; Remove the marks from messages that don't have them.
-       (setq ticks (gnus-remove-from-range
-                    ticks
-                    (gnus-compress-sequence
-                     (gnus-sorted-complement existing new-marks))))
-       (when ticks
-         (push (cons (car type) ticks) marks)))
-      (gnus-info-set-marks info marks t))
+       (when new-marks
+         (setq marks (delq ticks marks))
+         (pop ticks)
+         ;; Add the new marks we got.
+         (setq ticks (gnus-add-to-range ticks new-marks))
+         ;; Remove the marks from messages that don't have them.
+         (setq ticks (gnus-remove-from-range
+                      ticks
+                      (gnus-compress-sequence
+                       (gnus-sorted-complement existing new-marks))))
+         (when ticks
+           (push (cons (car type) ticks) marks))
+         (gnus-info-set-marks info marks t))))
     ;; Add vanished to the list of unexisting articles.
     (when vanished
       (let* ((old-unexists (assq 'unexist marks))