From fa19a070ef0d1d38dcaca155e920b932920b995f Mon Sep 17 00:00:00 2001 From: Simon Josefsson Date: Tue, 17 Sep 2002 20:27:21 +0000 Subject: [PATCH] * nnimap.el (nnimap-expiry-target): Don't search for which articles exists here. (nnimap-request-expire-articles): Do it here instead. Only expire when articles are found. Suggested by Nevin Kapur . --- lisp/ChangeLog | 8 ++++++++ lisp/nnimap.el | 41 ++++++++++++++++++----------------------- 2 files changed, 26 insertions(+), 23 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index f70245cce..bc1595a62 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,11 @@ +2002-09-17 Simon Josefsson + + * nnimap.el (nnimap-expiry-target): Don't search for which + articles exists here. + (nnimap-request-expire-articles): Do it here instead. Only expire + when articles are found. Suggested by Nevin Kapur + . + 2002-09-17 Kai Gro,A_(Bjohann From Reiner Steib . diff --git a/lisp/nnimap.el b/lisp/nnimap.el index 381a6cf25..c824e88dc 100644 --- a/lisp/nnimap.el +++ b/lisp/nnimap.el @@ -1298,11 +1298,8 @@ function is generally only called when Gnus is shutting down." (defun nnimap-expiry-target (arts group server) (unless (eq nnmail-expiry-target 'delete) (with-temp-buffer - (dolist (art (imap-search (concat "UID " - (imap-range-to-message-set - (gnus-uncompress-sequence arts))) - nnimap-server-buffer)) - (nnimap-request-article art group server (current-buffer)) + (dolist (art arts) + (nnimap-request-article art group server (current-buffer)) ;; hints for optimization in `nnimap-request-accept-article' (let ((nnimap-current-move-article art) (nnimap-current-move-group group) @@ -1320,16 +1317,16 @@ function is generally only called when Gnus is shutting down." (let ((days (or (and nnmail-expiry-wait-function (funcall nnmail-expiry-wait-function group)) nnmail-expiry-wait))) - (cond (force - (nnimap-expiry-target artseq group server) - (when (imap-message-flags-add - (imap-range-to-message-set artseq) "\\Deleted") - (setq articles nil))) - ((eq days 'immediate) - (nnimap-expiry-target artseq group server) - (when (imap-message-flags-add - (imap-range-to-message-set artseq) "\\Deleted") - (setq articles nil))) + (cond ((or force (eq days 'immediate)) + (let ((oldarts (imap-search + (concat "UID " + (imap-range-to-message-set artseq))))) + (when oldarts + (nnimap-expiry-target oldarts group server)) + (when (imap-message-flags-add + (imap-range-to-message-set oldarts) "\\Deleted") + (setq articles (gnus-set-difference + articles oldarts))))) ((numberp days) (let ((oldarts (imap-search (format nnimap-expunge-search-string @@ -1337,14 +1334,12 @@ function is generally only called when Gnus is shutting down." (nnimap-date-days-ago days)))) (imap-fetch-data-hook '(nnimap-request-expire-articles-progress))) - (nnimap-expiry-target oldarts group server) - (and oldarts - (imap-message-flags-add - (imap-range-to-message-set - (gnus-compress-sequence oldarts)) - "\\Deleted") - (setq articles (gnus-set-difference - articles oldarts)))))))))) + (when oldarts + (nnimap-expiry-target oldarts group server)) + (when (imap-message-flags-add + (imap-range-to-message-set oldarts) "\\Deleted") + (setq articles (gnus-set-difference + articles oldarts)))))))))) ;; return articles not deleted articles) -- 2.25.1