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