nextcolormarkerが正常に動かない場合があNo.01776
h-tom さん 08/03/29 18:35
 

h-tom です。

カラーマーカーを設定・解除後、nextcolormarkerが正常に動作しない場合
があります。

再現性が悪いのですが、カラーマーカー解除後に、「nextcolormarker 0x01;」
で開始位置を検索すると、失敗しないで、全然違うところにマッチします。
サンプルファイルの、「秀丸?」を選択し、test3.mac、test2.mc、test1.macの
順で実行マクロを実行して下さい。

マクロファイルを分けたのは、1つにした場合、再現しなかったらです。

もともと、以下のマクロ実行して、カラーマーカー削除後、保存時に無限
ループになってしまい、気がつきました。
(カラーマーカー検索時に、ファイルの最後にマッチし続ける)
サンプルではなく、こちらのマクロを使う方がいいかもしれません。
(カラーマーカーを1箇所指定して、保存、削除して、保存で再現するかな?)
・カラーマーカーデータ保存・復元マクロ
 http://homepage3.nifty.com/_htom/macro/macro_etc.html#label-109
・カラーマーカー用ダイアログ
 http://homepage3.nifty.com/_htom/macro/macro_etc.html#label-100

秀丸エディタ:Ver.7.08β14、Ver.7.07でも同様です。
OS:Windows2000SP4

//サンプルファイル ここから

秀丸?

//サンプルファイル ここまで

//test1.mac
debuginfo 1;
debuginfo "実行:" + currentmacrobasename;
debuginfo " x=" + str(x) + " y=" + str(y);
nextcolormarker 0x01;
debuginfo " x=" + str(x) + " y=" + str(y) + " result=" + str(result) + " col
orcode=0x" + hex(colorcode);
endmacro;
//

//test2.mac
debuginfo 1;
debuginfo "実行:" + currentmacrobasename + " x=" + str(x) + " y=" + str(y);
debuginfo "seltopx=" + str(seltopx) + " seltopy=" + str(seltopy) + " selendx
="+str(selendx) + " selendy=" + str(selendy);
colormarker;
endmacro;
//

//test3.mac
debuginfo 1;
debuginfo "実行:" + currentmacrobasename + " x=" + str(x) + " y=" + str(y);
debuginfo "seltopx=" + str(seltopx) + " seltopy=" + str(seltopy) + " selendx
="+str(selendx) + " selendy=" + str(selendy);
colormarker 0x0000ff,0xff0000,1,0,0;
escape;
//left;
selectall;
debuginfo "//ここから";
debuginfo gettext(seltopx, seltopy, selendx, selendy);
debuginfo "//ここまで";
endmacro;
//

//ログ ここから
実行:test3.mac x=4 y=1
seltopx=0 seltopy=1 selendx=4 selendy=1
//ここから

秀丸?

//ここまで
実行:test2.mac x=4 y=1
seltopx=0 seltopy=1 selendx=4 selendy=1
実行:test1.mac
 x=0 y=0
 x=0 y=3 result=1 colorcode=10
実行:test1.mac
 x=0 y=3
 x=0 y=3 result=1 colorcode=10
実行:test1.mac
 x=0 y=3
 x=0 y=3 result=1 colorcode=10
実行:test1.mac
 x=0 y=0
 x=0 y=3 result=1 colorcode=10
実行:test1.mac
 x=0 y=3
 x=0 y=3 result=1 colorcode=10
実行:test1.mac
 x=0 y=0
 x=0 y=3 result=1 colorcode=10
実行:test1.mac
 x=0 y=2
 x=0 y=3 result=1 colorcode=10
//ログ ここまで

[ ]
RE:01776 nextcolormarkerが正常に動かなNo.01777
秀丸担当 さん 08/03/31 11:09
 

>再現性が悪いのですが、カラーマーカー解除後に、「nextcolormarker 0x01;」
>で開始位置を検索すると、失敗しないで、全然違うところにマッチします。
>サンプルファイルの、「秀丸?」を選択し、test3.mac、test2.mc、test1.macの
>順で実行マクロを実行して下さい。

報告ありがとうございます。
マクロの通りにしてみて、うまく再現できなかったのですが、改行なしの1行だ
けにしてみて削除がうまくできない状況を確認できました。
これに関連する不具合かもしれません。
そのあたりが安全になるように改善してみようと思います。

[ ]
RE:01777 nextcolormarkerが正常に動かなNo.01779
h-tom さん 08/04/03 20:28
 

h-tom です。

>報告ありがとうございます。
>マクロの通りにしてみて、うまく再現できなかったのですが、改行なしの1行だ
>けにしてみて削除がうまくできない状況を確認できました。
>これに関連する不具合かもしれません。
>そのあたりが安全になるように改善してみようと思います。
昨日、今日と使ってみましたが、Ver.7.08β15で、問題ありませんでした。

[ ]