[Mew-dist 11402] Re: auto refile to multiple folders with mew-refile-guess-by-alist

Tomohisa Yazaki yazaki at example.com
1999年 11月 22日 (月) 19:26:26 JST


矢崎です。

お返事遅くなりました。

From: Yoshinari NOMURA <nom at example.com>
Subject: [Mew-dist 11355] Re: auto refile to multiple folders with mew-refile-guess-by-alist
Date: Wed, 17 Nov 1999 14:38:11 +0900
Message-ID: <19991117143806Z.nom at example.com>

nom> 割と偶然です。guess は、`+mailingList/mew,+inbox' を意味的に 1つ
nom> のフォルダだと思って提示しています。
nom> 
nom> しかし、`o' の場合は、ミニバッファの入力関数を一度系由するので、
nom> そのおかげで ',' が 2つの folder の区切りだと解釈されます。
nom> 一方、`M-o' の場合は、そのプロセスがないので、literal に 
nom> `+mailingList/mew,+inbox' という folder だと解釈されます。

ああ、やっぱり偶然だったのですか…。

nom> 確かにおっしゃる通りですね。mew-reilfe.el の 
nom> 
nom> (defun mew-refile-guess-by-alist ()
nom>  (mew-refile-guess-by-alist1 mew-refile-guess-alist))
nom> 
nom> を以下のように置き換えるとうまくいきますか?
nom> 
nom> ;; In short, I want to do :
nom> ;;   (apply 'append (mapcar '(lambda (x) (mew-split x ?,)) lst)))
nom> ;;
nom> (defun mew-refile-guess-by-alist ()
nom>   (let* ((lst (mew-refile-guess-by-alist1 mew-refile-guess-alist))
nom> 	 (tmp lst) next split)
nom>     (while tmp
nom>       (setq next (cdr tmp))
nom>       (if (not (string-match "," (car tmp)))
nom> 	  ()
nom> 	(setq split (mew-split (car tmp) ?,))
nom> 	(setcar tmp (car split))
nom> 	(setcdr tmp (cdr split))
nom> 	(nconc  tmp next))
nom>       (setq tmp next))
nom>     (mew-uniq-list lst)
nom>     ))

これでうまく行きました。ありがとうございます。

nom> 逆に mew-refile-guess-by-alist で "+xxx,+yyy" を "+xxx", "+yyy"
nom> と解釈するように変更すると、不都合がある人はいないのか少し心配です。

ああ、なるほど。"," をフォルダの名前に入れたいという人がいるかも知れな
いのですね。

  (setq mew-refile-guess-alist
    '(("\\(To:\\|Cc:\\)"
      ("mew-dist at example.com" . "+'ML,mew'"))))

のように ' でくくってみましたが、これでは "o"(mew-summary-refile) でも
ちゃんと動きませんね。

ということで、"," をフォルダの名前に使うのはあきらめてもらうか、"," を 
quote するような仕組みをちゃんと作るか(今ないのであれば)、というところ
でしょうか。ちゃんと作るのは、フォルダの補完とかあるところからすると大
変そうですね。(…といろいろ言ってはみても自分では何も作れない…済みま
せんです)

では。

--
矢崎 友久
yazaki at example.com



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