[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 メーリングリストの案内