[mew-dist 28905] Re: 特定フォルダ以下をauto-refileの対象から外すには?

Tatsuo Ishii ishii at example.com
2009年 3月 9日 (月) 15:18:53 JST


石井です。

> 例えば、以下のように mew-refile-guess-by-folder-not-old() を定義
> して、mew-refile-guess-control に追加すれば OK でしょう。
> 
> (defvar mew-refile-guess-by-folder-not-old-alist nil)
> 
> (defun mew-refile-guess-by-folder-not-old ()
>   (let ((to-cc (mew-header-parse-address-list mew-refile-guess-key-list))
> 	(proto mew-inherit-refile-proto)
> 	(case mew-inherit-refile-case)
> 	alist tmp sep ent ret ml-addr ml-name)
>     (when (mew-folder-localp proto)
>       (setq sep mew-path-separator)
>       (if mew-refile-guess-by-folder-not-old-alist
> 	  (setq alist mew-refile-guess-by-folder-not-old-alist)
> 	(setq alist (mew-proto-folder-alist proto case))
> 	(while alist
> 	  (unless (string-match "^\\+Mail-[12][0-9][0-9][0-9]" (car (car alist)))
> 	    (setq tmp (cons (car alist) tmp)))
> 	  (setq alist (cdr alist)))
> 	(setq alist (nreverse tmp))
> 	(setq mew-refile-guess-by-folder-not-old-alist alist))
>       (dolist (tc to-cc)
> 	(setq ml-addr (mew-addrstr-parse-address (or tc "")))
> 	(when ml-addr
> 	  (setq ml-name (mew-addrstr-extract-user ml-addr))
> 	  (setq ent (or (funcall mew-assoc-folder ml-addr alist sep)
> 			(funcall mew-assoc-folder ml-name alist sep)))
> 	  (mew-addq ret (nth 0 ent))))
>       (nreverse ret))))
> 
> (setq mew-refile-guess-control
>       '(mew-refile-guess-by-alist
> 	mew-refile-ctrl-throw
> 	mew-refile-guess-by-newsgroups
> 	mew-refile-guess-by-folder-not-old	;; 追加
> 	mew-refile-ctrl-throw
> 	mew-refile-ctrl-auto-boundary
> 	mew-refile-guess-by-folder		;; 適当な位置に動かす(消すのもあり)
> 	mew-refile-guess-by-thread
> 	mew-refile-ctrl-throw
> 	mew-refile-guess-by-from-folder
> 	mew-refile-ctrl-throw
> 	mew-refile-guess-by-from
> 	mew-refile-ctrl-throw
> 	mew-refile-guess-by-default))
> 
> これで、M-o のときに +Mail-2008/... が出てくることはなくなると思
> います。

試してみました。mew-refile-guess-by-folderをコメントアウトすることによ
り、+Mail-2008/... が出てこなくなりました。ありがとうございました!

> なお、
> 
> (1) 二回目以降は +Mail-XXXX を除いた alist を使いまわしているた
>     め、後からフォルダを追加したり、削除したりしたら、Emacs を立
>     ち上げ直すか、
>     (setq mew-refile-guess-by-folder-not-old-alist nil)
>     としないとダメです。 
> 
> (2) ローカルフォルダ限定です。IMAP にも対応出来ますが、少々面倒
>     くさくなるので、もし必要ならまた今度。

了解です。
--
Tatsuo Ishii
SRA OSS, Inc. Japan



Mew-dist メーリングリストの案内