quit で秀丸が強制終了No.01787
番頭++ さん 98/10/01 14:51
 
Windows 95 OSR 2, Hidemaru Version 2.26 の環境です。

あるデータを、マクロ (BUGB1.mac) で処理して、
ファイルを破棄して終了 (quit) すると、
その「秀丸エディタ」が強制終了されます。ほかの窓は生きています。

いろいろなデータがありますが、その一部でこのトラブルは発生します。
データが多い、少ないとかには依存しません。長いデータかな replaceup ???

おびただしいデータと、マクロを整理して、必ず、トラブルを発生させる、
テストデータと小さくしたマクロ (ステップを減らした) を用意したのですが、
見てもらうというか、デバックしてもらえませんでしょうか ???

よろしくお願いします。

番頭++

========================================================================
HIDEMARU のページ違反です。
モジュール : KERNEL32.DLL、アドレス : 0157:bff78769
Registers:
EAX=00000000 CS=0157 EIP=bff78769 EFLGS=00010202
EBX=004bb098 SS=015f ESP=005cf7b0 EBP=005cf7e4
ECX=00000000 DS=015f ESI=004baf6c FS=53df
EDX=72cf2176 ES=015f EDI=0000012c GS=0000
Bytes at CS:EIP:
89 51 08 8b 53 08 8b 43 04 8d 8b 0b 10 00 00 c1
Stack dump:
005cf7e4 004baf74 00480000 0048000c bff7994e 00480000 004baf6c 0000012c
00000200 bff76ce1 004b9822 00032e50 004baf6c 005cf82c bff79f32 00480000
========================================================================

//* BUGB1.mac - 1998/10/01 - Delete Same Words
    if( code == '/' || code == '\t' ){  endmacro;   }
    escape; gofiletop;
    selectall;  copy;   escape; gofiletop;  newfile;    paste;
    escape; gofileend;
    while( (x+y) != 0 ){
        up; selectword;
        $wk1 = gettext(seltopx,seltopy,selendx,selendy);    escape; down;
        replaceup "^" + $wk1 + "\\n" + $wk1 + "\\n", $wk1 + "\n", regular;
        while( result ){
            findup;
        }
        up;
    }
    quit;   //  ここで異常終了します。!!!
endmacro;

BUGB1.txt データ 1. の始まりです。このデータでは問題が発生します。
SCREENS
SCREENS
SWITCH_USER_OF_PROGRAMS
SWITCH_USER_OF_PROGRAMS
[EOF]

BUGB2.txt データ 2. の始まりです。このデータでは問題が発生しません。
SCREENS
SCREENS
SWITCH_USER_OF_PROGRAM
SWITCH_USER_OF_PROGRAM
[EOF]

[ ]
RE:01787 quit で秀丸が強制終了No.01793
秀丸担当 さん 98/10/01 19:16
 
>あるデータを、マクロ (BUGB1.mac) で処理して、
>ファイルを破棄して終了 (quit) すると、
>その「秀丸エディタ」が強制終了されます。ほかの窓は生きています。

一発で再現させることができました。
再現できるものを用意していただいて助かります。
直します。

[ ]