[Mew-dist 17803] Re: mew-summary-mark-region problem?
Hideyuki SHIRAI ( 白井秀行 )
shirai at example.com
2001年 6月 18日 (月) 18:11:00 JST
From: Kazu Yamamoto (山本和彦) <kazu at example.com> さん曰く
Subject: [Mew-dist 17802] Re: mew-summary-mark-region problem?
Message-ID: <20010618.172009.68547829.kazu at example.com>
Date: Mon, 18 Jun 2001 17:20:08 +0900
kazu> > > Signaling: (error "Invalid search bound (wrong side of point)")
kazu> > > re-search-forward("^ *\\([0-9]+\\) " 136233 t)
kazu> >
kazu> > > と怒られてしまいました。
kazu>
kazu> mew-mark.el の "make search faster" とコメントを書いているところは本質
kazu> 的にこの問題を含んでいるようです。
kazu>
kazu> (forward-line) するために、境界を出てしまい、その後に re-search-foward
kazu> するのが問題です。
kazu>
kazu> これは確か白井さんのアイディアでしたね。どうしましょうか?
## そっか、この原因は私だったのですね。"C-u ma" って普段全然しな
## いから気にもしていなかった。
forward-line() しておくと、"mr" したときにたくさんマッチする
regexp を書いても (例えば "." など)、ちゃんと動くので気に入って
います。これ、もし、forward-line() しないとめちゃくちゃ時間がか
かるようになります。
kazu> condition-case を使うぐらいなら、forward-line しない方が美しいと思いま
kazu> す。
本質的には全部発生するのかもしれないけど、実際はエラーになるのは
mew-summary-mark-region() だけですよね。きっと。
(1) mew-summary-mark-region() のだけは、forward-line しない。
(2) あらかじめ end を forward-line したところにしておく。
のどちらかでしょうか。また、beg にしろ end にしろ、その point が
message number の表示上の微妙な位置にあると "C-u ma" で mark が
つくかどうかわかりにくいので、パッチの様に
(3) beg, end がある行はマークづけの対象にする。ついでにエラーも
出さないようにする。
のがいいと思うのですが、どんなものでしょう。
--
白井秀行 (mailto:shirai at example.com)
--- mew-mark.el.~1.43.~ Mon Jun 11 18:52:28 2001
+++ mew-mark.el Mon Jun 18 18:04:09 2001
@@ -464,7 +464,9 @@
(mark mew-mark-review) ;; someday ...
fld msg alist)
(save-excursion
+ (setq end (progn (goto-char end) (forward-line) (point)))
(goto-char beg)
+ (beginning-of-line)
(while (re-search-forward regex end t)
(mew-summary-mark-as mark)
(when (mew-virtual-p)
Mew-dist メーリングリストの案内