From 352031235c30bc25a32207cd835d2228b602f888 Mon Sep 17 00:00:00 2001 From: vitaly Date: Mon, 2 Feb 2009 09:45:44 +0100 Subject: [PATCH] Expire reserved messages. There are problems expiring some folders at gmail. For example, certain messages are Cc'ed to LKML and ppc-dev mailing lists, but gmail stores only one copy of message in its database and labels this copy as LKML and ppc-dev. Wanderlust can't expire such messages, they are "reserved" for him. Now it is possible to allow expiration of such messages in Summary buffer. --- wl/wl-expire.el | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/wl/wl-expire.el b/wl/wl-expire.el index ca73443..376ccf8 100644 --- a/wl/wl-expire.el +++ b/wl/wl-expire.el @@ -97,7 +97,7 @@ (defun wl-expire-delete-reserved-messages (msgs folder) "Delete a number from NUMBERS when a message with the number is reserved." - (remove-if #'(lambda (x) (not (wl-expire-message-p folder x))) msgs)) + (remove-if-not #'(lambda (x) (wl-expire-message-p folder x))) msgs) ;; End New functions. @@ -592,14 +592,16 @@ ex. +ml/wl/1999_11/, +ml/wl/1999_12/." (y-or-n-p (format "Expire %s? " folder-name))) (save-excursion (run-hooks 'wl-summary-expire-pre-hook) - (let* ((expireable (apply #'wl-expireable-messages-list folder + (let* ((keep-reserved (or (not (interactive-p)) + (y-or-n-p (format "Keep reserved marks?")))) + (expireable (apply #'wl-expireable-messages-list folder all rule)) (expired (and expireable (or (not (interactive-p)) (y-or-n-p (format "Expire %d messages?" (length expireable)))) - (apply #'wl-expire-folder folder - expireable rule)))) + (wl-expire-folder folder expireable (car rule) + (cadr rule) (not keep-reserved))))) (when (and (not wl-expire-test) (not notsummary) expired) @@ -661,7 +663,7 @@ ex. +ml/wl/1999_11/, +ml/wl/1999_12/." (prog1 (cond ((eq action nil) nil) ((eq action 'remove) - (car (wl-expire-delete folder targets))) + (car (wl-expire-delete folder targets (car args)))) ((eq action 'trash) (car (wl-expire-refile folder targets wl-trash-folder))) ((eq action 'hide) -- 2.11.4.GIT