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