setcompatiblemode 0x20000 と searchbuffNo.07826
あべのり さん 13/03/14 08:43
 
setcompatiblemode 0x20000;
の動作について質問させてください.

正規表現でない検索をした後に,以下のマクロを実行して,更にもう一度検索ダイア
ログを開くと正規表現(と大文字/小文字の区別)にチェックが入ってしまいます.s
etcompatiblemode 0x20000はこのようなことを抑制するものだと思っていましたが,
勘違いしているでしょうか?
----
setcompatiblemode 0x20000;
searchdown "a",regular;
endmacro;
----

また,これは別件ですが,
message searchbuffer;
とだけ書いたマクロを実行するとエラーが発生します.
$b = searchbuffer;
message $b;
だと予期した動作になります.これは仕様でしょうか?

環境は
秀丸 8.30β29
Windows7 Pro
です.

[ ]
RE:07826 setcompatiblemode 0x20000 と sNo.07827
秀丸担当 さん 13/03/14 09:56
 

バグ情報ありがとうございます。

>正規表現でない検索をした後に,以下のマクロを実行して,更にもう一度検索ダイア
>ログを開くと正規表現(と大文字/小文字の区別)にチェックが入ってしまいます.s
>etcompatiblemode 0x20000はこのようなことを抑制するものだと思っていましたが,
>勘違いしているでしょうか?

その通りの目的であっています。
マクロを試してみましたが、こちらではマクロ実行前に正規表現OFFだったもの
は、マクロ実行後も正規表現OFFでした。
何か別の条件がありそうな気がします。


>また,これは別件ですが,
>message searchbuffer;
>とだけ書いたマクロを実行するとエラーが発生します.

こちらでは、エラーは出ずに期待するメッセージが出ました。
どういうエラーメッセージが出ているか教えてもらえるとヒントになると思いま
す。

[ ]
RE:07827 setcompatiblemode 0x20000 と sNo.07828
あべのり さん 13/03/14 10:22
 
>その通りの目的であっています。
>マクロを試してみましたが、こちらではマクロ実行前に正規表現OFFだったもの
>は、マクロ実行後も正規表現OFFでした。
>何か別の条件がありそうな気がします。
わかりました.もう少し調べてみます.(こちらでは挙げたマクロを実行すると正規
表現がONになります.)

>こちらでは、エラーは出ずに期待するメッセージが出ました。
>どういうエラーメッセージが出ているか教えてもらえるとヒントになると思いま
>す。

式がおかしいです。または、このバージョンではこの式は使えません。
キーワード/関数/式::

という感じに出ます.(手で打ったので間違っているかもしれませ.)

[ ]
RE:07828 setcompatiblemode 0x20000 と sNo.07829
あべのり さん 13/03/14 10:23
 
>>こちらでは、エラーは出ずに期待するメッセージが出ました。
>>どういうエラーメッセージが出ているか教えてもらえるとヒントになると思いま
>>す。
>
>式がおかしいです。または、このバージョンではこの式は使えません。
>キーワード/関数/式::
>
>という感じに出ます.(手で打ったので間違っているかもしれませ.)
すみません,こちらは私の入力ミスでした.(セミコロンがコロンになっていました.
正しくやると期待するものが出ました.すみません.

[ ]
RE:07828 setcompatiblemode 0x20000 と sNo.07830
秀丸担当 さん 13/03/14 10:29
 

>式がおかしいです。または、このバージョンではこの式は使えません。
>キーワード/関数/式::

こちらは、「:」というキーワードと解釈していると思われ、

message searchbuffer:

と、セミコロンではなくコロンになっていると同エラーがでました。

setcompatiblemodeのほうはわかりませんが、試されているものと全く同じもの
をコピー貼り付けしてもらえると何かわかるかもしれません。

[ ]
RE:07827 setcompatiblemode 0x20000 と sNo.07832
あべのり さん 13/03/14 20:11
 
>その通りの目的であっています。
>マクロを試してみましたが、こちらではマクロ実行前に正規表現OFFだったもの
>は、マクロ実行後も正規表現OFFでした。
>何か別の条件がありそうな気がします。

execmacro経由で実行していました.以下の二つのマクロを用意してtest1.macを実行
するとチェックが入ってしまいます.

--test1.mac--
execmacro "test2.mac";

--test2.mac--
setcompatiblemode 0x20000;
searchdown "a",regular;
endmacro;


test2.macのsetcompatiblemodeは無視されて,test1.macにあるかどうかのみで全体
が判定されているのですね.
execmacro経由でも各々のマクロのsetcompatiblemodeが生きてくれると嬉しいのです
が,難しいでしょうか?


[ ]
RE:07830 setcompatiblemode 0x20000 と sNo.07833
あべのり さん 13/03/14 20:12
 
>
>>式がおかしいです。または、このバージョンではこの式は使えません。
>>キーワード/関数/式::
>
>こちらは、「:」というキーワードと解釈していると思われ、
>
>message searchbuffer:
>
>と、セミコロンではなくコロンになっていると同エラーがでました。
説明ありがとうございます.無駄にお手数をおかけしてしまいました.

[ ]
RE:07832 setcompatiblemode 0x20000 と sNo.07834
秀丸担当 さん 13/03/15 13:34
 

>test2.macのsetcompatiblemodeは無視されて,test1.macにあるかどうかのみで全体
>が判定されているのですね.
>execmacro経由でも各々のマクロのsetcompatiblemodeが生きてくれると嬉しいのです
>が,難しいでしょうか?

詳しい手順ありがとうございます。
こちらでも確認することができました。
こういう場合は、execmacro内だけで復元されるようになるべきでした。
できるように修正させていただきます。

[ ]
RE:07834 setcompatiblemode 0x20000 と sNo.07835
あべのり さん 13/03/15 15:55
 
>詳しい手順ありがとうございます。
>こちらでも確認することができました。
>こういう場合は、execmacro内だけで復元されるようになるべきでした。
>できるように修正させていただきます。
ありがとうございます.よろしくお願いします.

[ ]