;;; wl-expire.el -- Message expire modules for Wanderlust.
-;; Copyright 1998,1999,2000 Masahiro MURATA <muse@ba2.so-net.ne.jp>
-;; Yuuichi Teranishi <teranisi@gohome.org>
+;; Copyright (C) 1998,1999,2000 Masahiro MURATA <muse@ba2.so-net.ne.jp>
+;; Copyright (C) 1998,1999,2000 Yuuichi Teranishi <teranisi@gohome.org>
;; Author: Masahiro MURATA <muse@ba2.so-net.ne.jp>
;; Keywords: mail, net news
((eq wl-summary-expire-reserve-marks 'none)
t)
(t
- (error "invalid marks: %s" wl-summary-expire-reserve-marks))))
+ (error "Invalid marks: %s" wl-summary-expire-reserve-marks))))
(defmacro wl-expire-make-sortable-date (date)
(` (timezone-make-sortable-date
nil nil t
copy-reserve-message
preserve-number))
- (error "expire: move msgs to %s failed" dst-folder))
+ (error "Expire: move msgs to %s failed" dst-folder))
(wl-expire-append-log folder refile-list dst-folder
(if copy-reserve-message 'copy 'move))
(setq copy-len (length refile-list))
(cons refile-list copy-len))))
(defun wl-expire-archive-get-folder (src-folder &optional fmt)
- "Get archive folder name from src-folder."
+ "Get archive folder name from SRC-FOLDER."
(let* ((spec (elmo-folder-get-spec src-folder))
(fmt (or fmt wl-expire-archive-folder-name-fmt))
(archive-spec (char-to-string
deleted-list
))
+(defun wl-expire-hide (folder hide-list msgdb &optional no-reserve-marks)
+ "Hide message for expire."
+ (unless no-reserve-marks
+ (setq hide-list
+ (wl-expire-delete-reserve-marked-msgs-from-list
+ hide-list (elmo-msgdb-get-mark-alist msgdb))))
+ (let ((mess (format "Hiding %s msgs..." (length hide-list))))
+ (message mess)
+ (elmo-msgdb-delete-msgs folder hide-list msgdb t)
+ (elmo-msgdb-append-to-killed-list folder hide-list)
+ (elmo-msgdb-save folder msgdb)
+ (message (concat mess "done"))
+ (cons hide-list (length hide-list))))
+
(defsubst wl-expire-folder-p (folder)
+ "Return non-nil, when FOLDER matched `wl-expire-alist'."
(wl-get-assoc-list-value wl-expire-alist folder))
(defun wl-summary-expire (&optional folder-name notsummary nolist)
+ ""
(interactive)
(let ((folder (or folder-name wl-summary-buffer-folder-name))
(alist wl-expire-alist)
+ (deleting-info "Expiring...")
expires)
(when (and (or (setq expires (wl-expire-folder-p folder))
(progn (and (interactive-p)
(setq delete-list
(cond ((eq rm-type nil) nil)
((eq rm-type 'remove)
+ (setq deleting-info "Deleting...")
(car (wl-expire-delete folder delete-list msgdb)))
((eq rm-type 'trash)
+ (setq deleting-info "Deleting...")
(car (wl-expire-refile folder delete-list msgdb wl-trash-folder)))
+ ((eq rm-type 'hide)
+ (setq deleting-info "Hiding...")
+ (car (wl-expire-hide folder delete-list msgdb)))
((stringp rm-type)
+ (setq deleting-info "Refiling...")
(car (wl-expire-refile folder delete-list msgdb rm-type)))
((fboundp rm-type)
(apply rm-type (append (list folder delete-list msgdb)
(t
(error "%s: invalid type" rm-type))))
(when (and (not notsummary) delete-list)
- (wl-summary-delete-messages-on-buffer delete-list t)
+ (wl-summary-delete-messages-on-buffer delete-list deleting-info)
(wl-summary-folder-info-update)
(wl-summary-set-message-modified)
(wl-summary-set-mark-modified)