;;; 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
(elmo-create-folder dst-folder))
(error "%s: create folder failed" dst-folder))
(if wl-expire-add-seen-list
- (elmo-msgdb-add-msgs-to-seen-list
+ (elmo-msgdb-add-msgs-to-seen-list
dst-folder
refile-list
- msgdb
+ msgdb
(concat wl-summary-important-mark
wl-summary-read-uncached-mark)))
(if (elmo-move-msgs folder
(setq copy-reserve-message t))))
(when refile-list
(if wl-expire-add-seen-list
- (elmo-msgdb-add-msgs-to-seen-list
+ (elmo-msgdb-add-msgs-to-seen-list
dst-folder
refile-list
- msgdb
+ msgdb
(concat wl-summary-important-mark
wl-summary-read-uncached-mark)))
(unless
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))
(when copy-reserve-message
(setq refile-list
(wl-expire-delete-reserve-marked-msgs-from-list
- refile-list
+ refile-list
mark-alist))
- (when refile-list
+ (when refile-list
(if (setq ret-val
(elmo-delete-msgs folder
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
(t
(setq dst-folder-base
(elmo-concat-path (format "%s%s" archive-spec (car spec))
- (elmo-replace-msgid-as-filename
+ (elmo-replace-msgid-as-filename
src-folder)))))
(setq dst-folder-fmt (format fmt
dst-folder-base
deleted-list
))
+(defun wl-expire-hide (folder hide-list 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)
- (message "no match %s in wl-expire-alist"
+ (message "no match %s in wl-expire-alist"
folder))
nil))
(or (not (interactive-p))
(setq msgs (cdr msgs))))))
((eq val-type 'date)
(let* ((overview (elmo-msgdb-get-overview msgdb))
- (key-date (elmo-date-get-offset-datevec
+ (key-date (elmo-date-get-offset-datevec
(timezone-fix-time (current-time-string)
(current-time-zone) nil)
value t)))
(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)
+ (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)
action
src-folder msgs)))
(if (file-writable-p filename)
- (write-region (point-min) (point-max)
+ (write-region (point-min) (point-max)
filename t 'no-msg)
(message (format "%s is not writable." filename)))
(kill-buffer tmp-buf)))))
-(provide 'wl-expire)
+(require 'product)
+(product-provide (provide 'wl-expire) (require 'wl-version))
;;; wl-expire.el ends here