[Mew-dist 2154] Delete mail in trash folder
Akihiro Motoki
motoki at example.com
1997年 9月 20日 (土) 12:14:40 JST
だいぶ前に、+trash フォルダのメールの消去に関する議論がありましたが、
trashフォルダでのメールの消去は実装されていないようだったので作りました。
デフォルトの動作は、もとのMewと同じです。
オプションは、3つ用意してあります。括弧内はデフォルトです。
(1) +trash で 'D' をつけたメールを消去できるオプション
mew-delete-msg-in-trash-folder (nil)
(2) すべてのフォルダで 'D' をつけたメールを消去するオプション
一切 +trash には refile しません。
mew-delete-msg-instantly (nil)
(3) 'D'をつけたメールをdeleteするフォルダを指定するリスト(正規表現可)
mew-delete-msg-folder-list (nil)
(1)は (setq mew-delete-msg-folder-list '("+trash")) と同じ。
(2)は (setq mew-delete-msg-folder-list '(".+")) と同じ。
基本的には(1)だけで十分だと思いますが、メーリングリストなどでは
いきなり消去できるのも便利かもしれないので一応(3)もサポートしました。
それでは。
-------------- next part --------------
--- mew.el.dist Thu Sep 18 10:31:38 1997
+++ mew.el Sat Sep 20 10:00:56 1997
@@ -117,6 +117,16 @@
(defvar mew-break-pages t)
(defvar mew-page-delimiter "^\^L")
+(defvar mew-delete-msg-in-trash-folder nil
+ "*If non-nil, delete messages marked with \"D\" in the trash folder.
+This variable is effective only in the trash folder.")
+(defvar mew-delete-msg-instantly nil
+ "*If non-nil, delete messages marked with \"D\" when mew-summary-exec.
+If nil, messages are moved to the trash folder(default).
+This variable affects all folders.")
+(defvar mew-delete-msg-folder-list nil
+ "*In a folder included in this list, messages are deleted not refiled
+to the trash folder. Regular expression can be used.")
;;
;; Highlight
;;
@@ -411,6 +421,7 @@
(defvar mew-prog-imput "imput")
(defvar mew-prog-imsort "imsort")
(defvar mew-prog-imgrep "imgrep")
+(defvar mew-prog-imrm "imrm")
(defvar mew-prog-mime-encode "mewencode")
(defvar mew-prog-mime-decode "mewdecode")
(defvar mew-prog-audio (list "cat" "/dev/audio" mew-buffer-tmp nil))
-------------- next part --------------
--- mew-mark.el.dist Thu Sep 18 10:29:15 1997
+++ mew-mark.el Sat Sep 20 09:59:02 1997
@@ -490,6 +490,8 @@
(let* ((msgs (mew-summary-mark-collect mew-mark-refile beg end))
(dels (mew-summary-mark-collect mew-mark-rmm beg end))
(src (buffer-name))
+ (del-list mew-delete-msg-folder-list)
+ (real-del mew-delete-msg-instantly)
refal folder folder-list tmp msg)
(if (not (mew-summary-exclusive-p))
()
@@ -556,13 +558,31 @@
;;
;; delete at once
;;
- (if (and dels (not (equal src mew-trash-folder)))
- (apply (function call-process)
- mew-prog-immv nil nil nil
- (format "--src=%s" src)
- "--link=no"
- mew-trash-folder
- dels))
+ ;;; check really delete msg or refile to +trash.
+ (while (and (not real-del) del-list)
+ (setq real-del (string-match (car del-list) src))
+ (setq del-list (cdr del-list))
+ )
+ (if dels
+ (cond
+ ((equal src mew-trash-folder)
+ (if (or mew-delete-msg-in-trash-folder real-del)
+ (apply (function call-process)
+ mew-prog-imrm nil nil nil
+ (format "--src=%s" src)
+ dels)))
+ (t
+ (if real-del
+ (apply (function call-process)
+ mew-prog-imrm nil nil nil
+ (format "--src=%s" src)
+ dels)
+ (apply (function call-process)
+ mew-prog-immv nil nil nil
+ (format "--src=%s" src)
+ "--link=off"
+ mew-trash-folder
+ dels)))))
;;
;; ending...
;;
-------------- next part --------------
--
━━━━━━━………‥・・ ・ ・・ .
元木 顕弘 / Akihiro Motoki ・
E-mail: motoki at example.com ・
URL: http://www.hal.t.u-tokyo.ac.jp ‘ ・・ ‥…━━☆
Mew-dist メーリングリストの案内