[Mew-dist 3086] Mew 1.93b6: mew-config breaks out mew-config-list setting ?
Makoto MATSUSHITA ( まつしたまこと )
matusita at example.com
1997年 12月 7日 (日) 17:01:08 JST
Mew 1.92.4 から mew 1.93b6 へ移行したのですが,その時 mew-config とい
う新たな変数が作られていることを知りました.
ところがこの mew-config は,draft 作るときに何も考えずに「もし
mew-config があったらその値を Config: header としてぶちこむ」というす
ごい実装になっている(のに他がそれを意図していない)ために,あらゆる
mew-config-list の設定をぶち壊しにしてくれているような気がします.
draft を作成する際に,もし Config: header をいれるようにするのならば,
- mew-config-guess-alist の推論を使い,推論できたらその値を入れる
- mew-draft-make-mime() する際に,既に書かれている Config: の
値と,mew-config-guess-by-alist() で推論した結果の値が食い違
う場合の処理をやる
のが良いのだと思うのですけれども,私は何か勘違いをしているのでしょうか?
現状の実装だと,とにかく使いにくくてやってられないと思うのですけれども‥‥
それとも,mew-config は guess しない人のためだけにあって,guess する人
は最初から nil にしておくのを意図されているのでしょうか? guess した時
に guess できない(予想していない)時の fallback 先として使えるのならば
便利だと思うのですけれども‥‥個人的には Config: の処理は
- draft を作る時
とりあえず推論できるだけやってみる
もしできたらその値を Config: にぶちこむ
推論が失敗した場合,もし Config: にぶちこむ default 値
があればそれを Config: にいれる
推論が失敗し,かつ default 値もないのなら何もしない
- mew-draft-make-mime する時
多分方針が 2 つで,どちらが良いかはわかりませんが‥‥
方針1) Config: があればもう触らない.なければ
draft を作る時にやった処理と同じ処理をする
方針2) Config: が既にある時,
再度推論を実行してみる.
もし推論が成功して,既存の値と一緒なら
何もしない.
もし推論が成功して,既存の値と違うなら
「置きかえる?」と尋ねて,yes と答えた
らすげかえ,no と答えたら何もしない.
推論が失敗したら default 値が推論でき
たとみなして上記と同じ処理.
Config: がない時,
draft を作る時にやった処理と同じ処理をする
となっていると良いのかな,と勝手に思っています.
***
で‥‥上記のうち「draft を作る時」の話をやる patch をいい加減ながら書
いてみました.elisp はよく知らないので,きたないようでしたら適当に修正
していただければ幸いです.
この patch でやりたいことは
・とにかくまず推論してみる
・推論した結果があって,かつすでに Config: がないのならば(この部分は,
おそらく mew-header-alist の処理をする前でやっている以上,冗長だと思
われますが),その推論結果をいれる
・そうでないならば,mew-config の値をみて,もしあればそれをいれる
・(いずれでもなければ,Config: は挿入されない)
です.
--- mew-draft.el.dist Wed Dec 3 22:39:58 1997
+++ mew-draft.el Sun Dec 7 16:32:59 1997
@@ -441,7 +441,11 @@
(and mew-cc (mew-header-insert-here "Cc:" mew-cc))
(mew-header-insert-here "Subject:" (if subject subject "")) ;; tricky
(and mew-from (mew-header-insert-here "From:" mew-from))
- (and mew-config (mew-header-insert-here "Config:" mew-config))
+ ;; (and mew-config (mew-header-insert-here "Config:" mew-config))
+ (let ((config (mew-config-guess-by-alist)))
+ (if (and config (not (mew-header-get-value "Config:")))
+ (mew-header-insert-here "Config:" (car config))
+ (and mew-config (mew-header-insert-here "Config:" mew-config))))
(and mew-fcc (mew-header-insert-here "Fcc:" mew-fcc))
(and mew-dcc (mew-header-insert-here "Dcc:" mew-dcc))
(and mew-reply-to (mew-header-insert-here "Reply-To:" mew-reply-to))
-- -
Makoto `MAR' MATSUSHITA
Mew-dist メーリングリストの案内