[mew-dist 19362] Re: draft buffer の選択
Hideyuki SHIRAI ( 白井秀行 )
shirai at example.com
2001年 10月 16日 (火) 19:50:49 JST
早く帰ろう、って思っていたから説明が足りなかったみたい。
From: Kazu Yamamoto (山本和彦) <kazu at example.com> さん曰く
Subject: [mew-dist 19358] Re: draft buffer の選択
Message-ID: <20011016.193244.63221262.kazu at example.com>
Date: Tue, 16 Oct 2001 19:32:44 +0900 (JST)
kazu> > mew-max-draft-buffer() でも "+draft" を入れるか入れないかコント
kazu> > ロールしないと破綻しますね。ごめんなさい。
kazu>
kazu> ちょっと意味が分りません。C-cC-o のときは、+draft が候補に含まれない方
kazu> がいいと思います。
"+draft" だけが存在すると、
mew-max-draft-buffer() => "+draft"
(mew-input-draft-buffer "+draft") <= だけど folder は有効にしない。
となって、mew-input-draft-buffer() 内部の comp は nil だけど
"+draft" が返ってくるから、整合性がわるいなぁという感じの意味で
す。
kazu> > (mew-draft-p)
kazu> > あるいは
kazu> > (mew-folder-regex (file-name-as-directory mew-draft-folder))
kazu> > で判定した方が良いと思うのです。
kazu>
kazu> ここもどういう意味か分りません。mewinput-draft-buffer は、Summary モー
kazu> ドから呼び出されることが前提ですよね?
はい、summary から呼ばれます。で、さっきのメールで
mew-input-draft-buffer() は (mew-draft-p) を使って draft-mode か
どうか判定したけど、mew-max-draft-buffer() は regex で判定してい
たので、統一感が無いなぁ。という意味でした。
# というわけで、ともに対した意味じゃありませんでした。
かずさんの意見も
kazu> C-cC-o のときは、+draft が候補に含まれない方がいいと思いま
kazu> す。
とのことなので、regex を使って書き直しました。
(defun mew-max-draft-buffer ()
(let ((bufs (buffer-list))
(regex (mew-folder-regex (file-name-as-directory mew-draft-folder)))
buf draft)
(while bufs
(setq buf (car bufs))
(setq bufs (cdr bufs))
(if (string-match regex (buffer-name buf))
(if (or (null draft) (string< draft (buffer-name buf)))
(setq draft (buffer-name buf)))))
draft))
(defun mew-input-draft-buffer (default)
(let ((regex (mew-folder-regex (file-name-as-directory mew-draft-folder)))
comp buf)
(setq comp (delq nil (mapcar
(lambda (x)
(when (string-match regex (buffer-name x))
(list (buffer-name x))))
(buffer-list))))
(if (and (= (length comp) 1)
(string= default (car (car comp))))
default
(setq buf (completing-read (format "Buffer (%s): " default) comp))
(if (string= buf "")
default
buf))))
--
白井秀行 (mailto:shirai at example.com)
Mew-dist メーリングリストの案内