|
HmJre.dllについてコメントさせていただきます。
まず、Jre2GetMatchInfoって関数が以前からありつつも
Jre2GetMatchInfo_HmJreって関数を後から追加したのはどうしてかというと…
Jre2GetMatchInfo関数のパラメータは、
BOOL EXTAPI Jre2GetMatchInfo( LPJRE2 pJre, LPSTR pszTarget );
で、Jre2GetMatchInfo_HmJreの方は、実は
BOOL EXTAPI Jre2GetMatchInfo_HmJre( LPJRE2 pJre, LPSTR pszTarget
, int xEnd );
のようになっていて、pszTargetで渡される文字列の長さを「xEnd」で指定す
る仕組みになってるだけだったりします。それで、HmJre.dllがstrlenを呼ぶの
が1回省略されて、ほんの少しだけ高速化するという感じになります。特に強調
表示の時に、これによる高速化が効くことを確認して、この関数を追加しました。
で、問題のJre2GetMatchInfo_V318ですが、これは改版履歴にある通り、「単
語の検索」と「あいまい検索」を両方ONにして検索する時に起きるバグ修正用に、
上記の「_HmJre」の関数からさらにパラメータを追加した物になります。
追加されたパラメータでは、「単語の検索」のON/OFF状態と、さらに、「動作
環境・検索」の
「単語の検索で"abc"を検索する時、"abc123"にはヒットさせない」
「単語の検索で"ワード"を検索する時、"ワードW"にはヒットさせない」
の値をビットでorして渡しています。その情報を使って正しく「単語の検索+
あいまい検索」を実現しています。
秀丸エディタの方では、正規表現DLL側にもしもJre2GetMatchInfo_V318がエク
スポートされてればそれを呼び、無ければJre2GetMatchInfoを呼ぶ、という風に
なってまして、HmJre.dllが指定されてれば、基本的にはJre2GetMatchInfo_V318
の方を呼んでるはずだと思います。
あと、HmJre.dllの改版履歴は、今ちょっと非公開にしてしまってる(どこか
らもリンクされてない)んですが、やはりこういう問い合わせの時に自分自身が
無いと困るので、ちゃんと書くようにしつつ、どこかにリンクも貼るようにさせ
ていただきます。
|
|