[Mew-dist 16101] Re: Pick in thread, Virtual in virtual
Hideyuki SHIRAI ( 白井秀行 )
shirai at example.com
2001年 1月 29日 (月) 12:33:28 JST
From: Kazu Yamamoto (山本和彦) <kazu at example.com> さん曰く
Subject: [Mew-dist 16098] Re: Pick in thread, Virtual in virtual
Message-ID: <20010129.115853.59727818.kazu at example.com>
Date: Mon, 29 Jan 2001 11:58:08 +0900
kazu> 白井さん、ざっと見ましたが、
## 素早い。とか言ってみる :-)
kazu> From: Hideyuki SHIRAI (白井秀行) <shirai at example.com>
kazu> Subject: [Mew-dist 16067] Pick in thread, Virtual in virtual
kazu>
kazu> > thread folder で mew-summary-search-mark() を virtual mode で
kazu> > mew-summary-virtual() を出来るようにしてみました。
kazu>
kazu> virtual モードに、同じフォルダからのメールしかないと仮定しているので、
kazu> ダメっぽいです。複数のフォルダから Virtual モードが作成されている場合
kazu> に破綻します。
thread folder はもとの folder と一対一に対応しているから、Pick
出来ますよね。"++inbox" となっていたら "+inbox" を対象(*3)に
grep を動かせば良いだけでしょう。
mark づけをするときは、単純に re-search-forward する、というわけ
にはいきませんので、速く動作するように考えてみました。(結構、お
気に入り)
thread ではない virtual folder は、当然もとの folder と 一対一に
は対応していないからは Pick は出来ません。しかし、virtual folder
は作れます。(本当ですよ)
そのときに、入力ミスを減らすため、実在の folder が
mew-input-folders() するときの default folder になるようにしてい
ます。
kazu> > 2. eob で mew-summary-goto-message() すると nil が帰ってくるので、
kazu> > ガードした。(*1)
kazu>
kazu> この意図は何でしょう?
mew-summary-search-mark() で (*3) の様にもとの folder 名を得るの
に二通りの方法が考えられます。
一つ目は
(let ((folder (mew-summary-folder-name 'ext))
...
(if (mew-thread-p)
(setq folder (substring folder 1)))
...
で、二つ目は
(let ((folder (mew-input-folders (mew-summary-folder-name))
です。ここで、二つ目の方法を採用すると、thread folder の
(end-of-buffer) にいるときに
(mew-input-folders (mew-summary-folder-name))
を動かすと、summary で message が存在するしないから 'nil' が
default 値になります。そこで、(eobp) なら一行上に行って sumary
の最終行の message の "\r +inbox 100" から folder name を取って
来られるようにしました。
また、上記の一つ目の方法は thread 上での pick の時は問題ないので
すが、Virtual folder から Virtual するときは "+virtual" などとい
う名前になってしまうので、ともに二つ目の方法を採用してみました。
--
白井秀行 (mailto:shirai at example.com)
Mew-dist メーリングリストの案内