setsearchしてもinselectが解除されないNo.18596
Arimac さん 04/12/25 21:40
 
V4.14を使っていた気付いたのですが、選択した範囲内のみの置換を行って、
その後、setsearchして検索条件を変えてfinddownを行うと、V4.10β17では
範囲内のみの条件はキャンセルされて全域が検索対象になっていたのですが、
V4.14では選択した範囲内のみが検索対象になっているようです。
これは仕様変更でしょうか?それとも何かの手違いでしょうか?(^^;

>2004/07/23 Ver4.10β36
>searchdownで、inselectを指定してないのに以前にinselect付きで検索した場合、
>引き継がれてしまう問題修正
ここら辺の修正が何か影響しているのでしょうか?

[ ]
RE:18596 setsearchしてもinselectが解除No.18599
秀丸担当 さん 04/12/27 13:06
 

>V4.14を使っていた気付いたのですが、選択した範囲内のみの置換を行って、
>その後、setsearchして検索条件を変えてfinddownを行うと、V4.10β17では
>範囲内のみの条件はキャンセルされて全域が検索対象になっていたのですが、
>V4.14では選択した範囲内のみが検索対象になっているようです。
>これは仕様変更でしょうか?それとも何かの手違いでしょうか?(^^;

これは、V4.10のβ版だけの動作で、setsearchのビット11が、「選択した範囲
のみ」のフラグとして使用されていたためだと思います。
この動作はV4.10β21で変更されています。

[ ]
RE:18599 setsearchしてもinselectが解除No.18600
Arimac さん 04/12/27 14:20
 
setsearchするマクロは2001/09/26が最終更新日で、Ver4.10β1よりも
前でも問題なく使えていたようなので、ビット11関係以外でも影響を
受けていたようです。

やっていることは、
1.マクロで選択した範囲内を置換
 (replaceallfast $srch1, $rep1, word, casesense, inselect;のような感じ)
2.マクロで別の検索文字列を取得
 (gowordtop; getsearch; setsearch searchbuffer, 3;)
3.下候補(F3)キーで検索
 (finddownと同じだと思う)
という感じなので、恐らくVer4.10β1以前では2.のどこかでinselectが解除
されていたか、finddownにinselectが効いていなかった?のではないかと
思います。

forceinselect 0; でinselectは解除できたので問題は解決しました(^^;

[ ]
RE:18600 setsearchしてもinselectが解除No.18603
秀丸担当 さん 04/12/27 17:21
 

>setsearchするマクロは2001/09/26が最終更新日で、Ver4.10β1よりも
>前でも問題なく使えていたようなので、ビット11関係以外でも影響を
>受けていたようです。

調べてみたところ、V4.10よりも前においては、finddownをしたときに前回の検
索文字列と異なるかどうかで、inselectの状態がリセットされるかどうかが決ま
っていました。
V4.10以降では、それではまずいという意見があり、現在のように変更されたと
記憶しています。

>forceinselect 0; でinselectは解除できたので問題は解決しました(^^;

現バージョンにおいてはこれで解決できますね。

[ ]
RE:18603 setsearchしてもinselectが解除No.18607
Arimac さん 04/12/27 23:22
 
なるほど、そんなことが・・・(^^;

状況が判明するまで、目の前に見えている文字列が検索されないので
まるで狐に抓まれたようでした(^^;

[ ]