[Mew-dist 03854] Re: Mew 1.93b6: mew-config breaks out mew-config-list setting ?
Makoto MATSUSHITA ( まつしたまこと )
matusita at example.com
1998年 2月 20日 (金) 10:43:34 JST
ばたばたしていて反応が遅くなりました.ごめんなさい.
ksakai> これは C-c TAB の方を変更するべきことであって、mew-config-list の設定
ksakai> で対応するべきことではないと思います。
ksakai> 以下のパッチで対応できると思いますが、どうでしょうか?
こちらと,
ksakai> 書式としては、
ksakai> (setq mew-refile-guess-alist
ksakai> '(("To:"
ksakai> ("wide at example.com" . "+wide/wide")
ksakai> ("adam" . "+labo/adam"))
ksakai> ("Newsgroups:"
ksakai> ("^nifty\\.\\([^ ]+\\)" . "+Nifty/\\1"))
ksakai> ("From:"
ksakai> ("uucp" . "+adm/uucp")
ksakai> (".*" . "+misc"))
ksakai> (nil . "+notmatch")))
ksakai> で充分じゃないですか?
ksakai> この nil (その時点でマッチした値がないときに返すデフォルト値) と、
ksakai> t (無条件に追加して返す値) をサポートするためのパッチです。
こちらを実際に試してみました(前者が 3798, 後者が 3828).試してみた環境
は(この mail にもありますが) Mew 1.93b14, Mule 2.3 です.
基本的に問題なく動作していると思います.前者の patch で実装されている,
Config: 行での TAB 押しでは補完のみにする変更もとても良いと思いました.
後者の patch では,ここまできたらもしかすると
("To:"
("hoge" . "+ratta")
(nil . "+dayon"))
という書き方をしたい人がでてくるのだろうか,などと一瞬思いましたが,気
にしなくても良いような気もした(お手本は書いてあるので必要だと本当に思っ
た方が思いたってもたぶんすぐにできると思われる)ので,このままで良いか
なと思います.
推論 rule の解釈部分は refile と一緒(というか config のやつが refile
と一緒)なので,ひたすら残したいやつを rule で書いといて,一番最後に
(nil . "+trash") などと書くと,実はひたすら o 叩きまくるだけで消す話も
きれいに書けるのかなと思います.
最後に,簡単な patch をつけてみます.これは
・単純な typo をつぶす (3798 の方に,かっこの対応が 1 つ取れてない部分
があります)
・Config: 行にやっと複数の値を書いても楽しくなれるので,推論結果が複数
match したら複数書くようにする (変数 mew-config-ctrl-multi 導入)
・draft を作る時に Config: 行をいれる時の挙動と,code 上における
mew-draft-insert-config の場所がやっぱりどう考えてもへんだと思うので
(どうして separator をいれた後に書くんだろう)それを直す
ということをやります.2 番目のやつの実装をやるのに書いた elisp 部分は,
なんとなく直観的にへんなことしてるなあという気はするのですが,elisp 的
にかっこよく書く方法をまだ知らないので許してください _o_
# 以下蛇足:
# で,その部分ですが‥‥mew-config-ctrl-multi が t だった時にいちいち
# 推論結果が nil かどうかを判定しているのは,そのまま mew-join に処理
# させてしまうと意味がかわる(推論結果が「だめだった」ではなく「"" だっ
# た」ということになる)から,です.
-- -
Makoto `MAR' MATSUSHITA
*** mew-draft.el.dist Tue Feb 10 15:19:42 1998
--- mew-draft.el Fri Feb 20 10:34:59 1998
***************
*** 474,482 ****
(setq halist (cdr halist)))
)
(mew-header-insert-here "Mime-Version:" mew-mv:-num)
- (insert mew-header-separator "\n")
(if mew-config-auto-insert
! (mew-draft-insert-config))
(mew-draft-refresh)
(if nl
(save-excursion
--- 474,482 ----
(setq halist (cdr halist)))
)
(mew-header-insert-here "Mime-Version:" mew-mv:-num)
(if mew-config-auto-insert
! (if (mew-draft-insert-config) (insert "\n")))
! (insert mew-header-separator "\n")
(mew-draft-refresh)
(if nl
(save-excursion
***************
*** 868,875 ****
(y-or-n-p "Do you want to use current Config:?")) ()
(cond
((equal mew-config 'guess)
! (setq config-new (car (mew-config-guess-by-alist)))
! (or config-new (setq config-new (car mew-config-list))))
(t
(setq config-new mew-config))
)
--- 868,877 ----
(y-or-n-p "Do you want to use current Config:?")) ()
(cond
((equal mew-config 'guess)
! (setq config-new (mew-config-guess-by-alist))
! (if mew-config-ctrl-multi
! (if config-new (setq config-new (mew-join "," config-new)))
! (setq config-new (car config-new))))
(t
(setq config-new mew-config))
)
*** mew-vars.el.dist Fri Feb 20 09:12:25 1998
--- mew-vars.el Fri Feb 20 10:21:05 1998
***************
*** 440,445 ****
--- 440,448 ----
(defvar mew-config-guess-alist nil)
+ (defvar mew-config-ctrl-multi t
+ "*If non nil, guess functions guess multi folders.")
+
(defvar mew-header-alist nil
"*Alist of key and value pair for header field to be inserted on draft.
'((\"X-fingerprint:\" . \"6B 63 38 88 67 5E 96 8E CE A4 62 73 3F 11 64 94\")
***************
*** 468,474 ****
("Bcc:" . mew-complete-address)
("Reply-To:" . mew-complete-address)
("Fcc:" . mew-complete-folder)
! ("Config:" . mew-complete-config)))
"*Completion function alist concerned with the key."
)
--- 471,477 ----
("Bcc:" . mew-complete-address)
("Reply-To:" . mew-complete-address)
("Fcc:" . mew-complete-folder)
! ("Config:" . mew-complete-config))
"*Completion function alist concerned with the key."
)
Mew-dist メーリングリストの案内