ひょっとしてバグ?No.34972
でがらし さん 16/04/29 18:37
 
 下記のメニューマクロでSを選択すると、マクロエラーになります。これはひょっ
とすると、秀丸のバグでしょうか? 32ビット版の8.58を使っています。

===
menu
"&A ",
"&B ",
"&C ",
"&D ",
"&E ",
"&F ",
"&G ",
"&H ",
"&I ",
"&J ",
"&K ",
"&L ",
"&M ",
"&N ",
"&O ",
"&P ",
"&Q ",
"&R ",
"&S SAVE",
"&T SAVEALL",
"&U ",
"&V ",
"&W ",
"&X ",
"&Y ",
"&Z ";

 if      (result ==0) endmacro;
 else if (result ==1) execmacro "";//A
 else if (result ==2) execmacro "";//B
 else if (result ==3) execmacro "";//C
 else if (result ==4) execmacro "";//D
 else if (result ==5) execmacro "";//E
 else if (result ==6) execmacro "";//F
 else if (result ==7) execmacro "";//G
 else if (result ==8) execmacro "";//H
 else if (result ==9) execmacro "";//I
 else if (result ==10) execmacro "";//J
 else if (result ==11) execmacro "";//K
 else if (result ==12) execmacro "";//L
 else if (result ==13) execmacro "";//M
 else if (result ==14) execmacro "";//N
 else if (result ==15) execmacro "";//O
 else if (result ==16) execmacro "";//P
 else if (result ==17) execmacro "";//Q
 else if (result ==18) execmacro "";//R
 else if (result ==19) save;//S
 else if (result ==20) saveall;//T
 else if (result ==21) execmacro "";//U
 else if (result ==22) execmacro "";//V
 else if (result ==23) execmacro "";//W
 else if (result ==24) execmacro "";//X
 else if (result ==25) execmacro "";//Y
 else if (result ==26) execmacro "";//Z

endmacro;

[ ]
RE:34972 ひょっとしてバグ?No.34973
秀丸担当 さん 16/05/02 09:23
 

バグ情報ありがとうございます。
確かにその通りでした。
V8.50以降のバグでした。

 if(0) saveall;

のように条件によってスキップされる文にsaveallが含まれていると問題でした。
次のバージョンで修正させていただきます。

現状で問題を回避するとしたら、

 else if (result ==20) execmacro "saveall.mac";//T

といったようにsaveallを外部のマクロにして、saveall.macは

 saveall;

という一文だけにすると回避することができると思います。
お手数をお掛けして申し訳ありません。

[ ]
RE:34973 ひょっとしてバグ?No.34977
でがらし さん 16/05/03 06:35
 
 了解です。ご指摘の方法で回避していました。よろしくお願いします。

[ ]