[Mew-dist 03605] Re: Mew 1.93b6: mew-config breaks out mew-config-list setting ?
Maybe TABOO
y-koga at example.com
1998年 1月 30日 (金) 21:00:02 JST
Makoto MATSUSHITA (まつしたまこと) <matusita at example.com>:
> という仕様を実現した実装ではない,という理解は間違ってないでしょうか?
かなり省略されていたので、酒井さんの提案された仕様を再掲します。
> 1. Config を挿入する関数を作成する。
>
> このコマンドは、mew-config の値が
>
> 'guess ならば、すでに存在している From から推測して Config: ヘッダ
> を挿入する動作を行う。
> string ならば、その文字列を無条件に Config: ヘッダに挿入する。
> それ以外ならば、Config ヘッダの挿入は行わない。
>
> mew-config のデフォルト値は 'guess にしておく。
>
> 2. メールの作成時には、新規・返信を問わず、1 の関数を利用して Config:
> ヘッダの挿入を行う。
>
> 3. 手動で 1 のコマンドを実行して、いつでも Config: ヘッダを挿入できる
> ようにしておく。すでに Config: ヘッダが存在しているときも、上書きす
> る。このコマンドを interactive に実行したときは、同時に Config: ヘッ
> ダの行末に飛ぶようにしておく。
>
> 4. C-c C-m のときに guess で行って Config: ヘッダを挿入するかどうかは、
> 別の変数を導入して、その変数の値で動作を決定する。
>
> 送信を中止したときに Config: ヘッダを削除するかどうかも、この変数に
> 従う。
>
> デフォルトは nil (自動挿入を行わない)?
>
> このようにすると、draft 編集段階で手動で Config: ヘッダの挿入を行うか
> どうかは mew-config で切り換え、送信直前に自動的に Config: ヘッダの挿
> 入を行うかどうかは新規変数で切り換えられるため、仕様が直行することにな
> るかと思います。
だいぶ違っていますね。。。
また、
こが:
> Akihiro Motoki <motoki at example.com>:
> > Config: を自動挿入すると、Config: 行末にカーソルが行きますが、
> > 理由があるのでしょうか? 挿入された Config: の内容をチェックするという
> > 意味はありますが、カーソルを動かさないとメールを編集できず、不便です。
>
> これは、Mew-dist 3288 にもとづく実装です。これで合意がとれているはずで
> す。
は私の勘違いで、interactive の場合に呼んだ場合にこうするんでした。
いろいろ問題ありそうなので、ちょっと変えてみました。こんなのではどうで
しょう? mew-1.93 b12 用です。
- mew-draft-insert-config では minibuffer で Config: の内容を聞いてくる
mew-config-list を設定していれば補完もできる。
- mew-ask-* という変数群があったので、mew-ask-config がセットされてい
れば送信時に Config: をつけるかどうか聞くようにした
- mew-config-auto-insert は必要な個所だけチェックするようにした
現状ではかなりくどいので、どこそこの場面では要らない、という意見があっ
たら出してください。
あと、カーソルの飛び先も意見があればお願いします。これについては私はど
こでもいいです。
こういう仕様ならば、送信時に呼ぶだけでいいかもしれないとちょっと思って
います。
--- mew-draft.el.ORG Thu Jan 29 13:05:06 1998
+++ mew-draft.el Fri Jan 30 20:40:14 1998
@@ -475,12 +475,8 @@
)
(mew-header-insert-here "Mime-Version:" mew-mv:-num)
(insert mew-header-separator "\n")
- (mew-draft-insert-config)
(mew-draft-refresh)
- (if nl
- (save-excursion
- (re-search-forward mew-eoh2)
- (insert "\n")))
+ (if nl (insert "\n"))
(if to ;; there is no To:
()
(goto-char (point-min))
@@ -530,6 +526,10 @@
(not (y-or-n-p "Do you want to post to NetNews?")))
(mew-header-delete-lines '("Newsgroups:")))
))
+ (if mew-ask-config
+ (if (y-or-n-p "Do you want to use Config:?")
+ (mew-draft-insert-config)
+ (mew-header-delete-lines '("Config:"))))
(run-hooks 'mew-send-hook)
(save-excursion
(if (mew-header-get-value mew-ct:)
@@ -851,30 +851,27 @@
(defun mew-draft-insert-config ()
(interactive)
- (if mew-config-auto-insert
- (let ((config-cur (mew-header-get-value "Config:"))
- config-new)
- (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))
- )
- (if (and config-new
- (or (not config-cur)
- (and (not (equal config-new config-cur))
- (y-or-n-p
- (format "Do you want to change Config: value to %s?" config-new)))))
- (progn
- (widen)
- (mew-header-delete-lines '("Config:"))
- (goto-char (point-min))
- (re-search-forward mew-eoh2)
- (beginning-of-line)
- (mew-header-insert-here "Config:" config-new)
- (forward-line -1)
- (end-of-line))))))
+ (let ((config-cur (mew-header-get-value "Config:"))
+ (config-new))
+ (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))
+ )
+ (setq config-new (mew-input-config config-new))
+ (if config-new
+ (progn
+ (widen)
+ (mew-header-delete-lines '("Config:"))
+ (goto-char (point-min))
+ (re-search-forward mew-eoh2)
+ (beginning-of-line)
+ (mew-header-insert-here "Config:" config-new)
+ (mew-draft-refresh)
+ (forward-line -1)
+ (end-of-line)))))
(defun mew-draft-insert-signature ()
(interactive)
--- mew-encode.el.ORG Thu Jan 29 00:44:48 1998
+++ mew-encode.el Fri Jan 30 19:43:41 1998
@@ -50,7 +50,6 @@
"Make a MIME message. Charset guess, mapping directory structure
to multipart, and so on."
(interactive)
- (mew-draft-insert-config)
(if (mew-header-get-value mew-ct:)
(progn
(ding)
--- mew-summary.el.ORG Thu Jan 29 22:44:52 1998
+++ mew-summary.el Fri Jan 30 18:48:38 1998
@@ -1195,6 +1195,7 @@
(mew-draft-rename file)
(mew-draft-header subject nil to cc)
(mew-draft-mode) ;; hack hack mew-draft-buffer-header
+ (if mew-config-auto-insert (mew-draft-insert-config))
)
(sit-for 0) ;; force to redisplay before save-buffer
(save-buffer))) ;; to make sure not to use this draft again
@@ -1276,6 +1277,7 @@
(mew-draft-header subject nil to cc newsgroups in-reply-to references)
(undo-boundary)
(mew-draft-mode) ;; for hilight
+ (if mew-config-auto-insert (mew-draft-insert-config))
(sit-for 0)
)
(save-buffer))) ;; to make sure not to use this draft again
@@ -1343,6 +1345,7 @@
;;
(mew-draft-header subject 'nl)
(mew-draft-mode)
+ (if mew-config-auto-insert (mew-draft-insert-config))
(mew-draft-multi-copy file (list (cons fld msg)))
(setq mew-encode-syntax
(mew-encode-syntax-initial-multi dirname 1))
@@ -1385,6 +1388,7 @@
(mew-draft-rename file)
(mew-draft-header nil 'nl)
(mew-draft-mode)
+ (if mew-config-auto-insert (mew-draft-insert-config))
(mew-draft-multi-copy file fld-msg)
(setq mew-encode-syntax
(mew-encode-syntax-initial-multi dirname (length fld-msg)))
--- mew-minibuf.el.ORG Thu Jan 29 00:44:50 1998
+++ mew-minibuf.el Fri Jan 30 18:38:00 1998
@@ -187,6 +187,20 @@
(if (string= type "") default type)
))
+(defun mew-input-config (default)
+ (let ((config))
+ (setq config (completing-read
+ (format "Config value (%s): " default)
+ (mapcar
+ (function
+ (lambda (x) (cons x x)))
+ mew-config-list)
+ nil nil nil))
+ (if (string= config "")
+ default
+ config)
+ ))
+
(provide 'mew-minibuf)
;;; Copyright Notice:
--- mew-vars.el.ORG Thu Jan 29 22:44:53 1998
+++ mew-vars.el Fri Jan 30 19:44:31 1998
@@ -635,6 +635,9 @@
(defvar mew-ask-newsgroups nil
"*If non-nil, prompt user if he/she want to include Newsgroups: field")
+(defvar mew-ask-config nil
+ "*If non-nil, prompt user if he/she want to include/change Config: field")
+
;;
;; Field Magic
;;
----
NEC ネットワーキング技術研究所 & 慶應義塾SFC研究所
こがよういちろう <y-koga at example.com>
Mew-dist メーリングリストの案内