|
こんばんは。 IKKI です。興味本位の質問です。
"\x09" などと書くべきところを "\x9" などと書き間違えた場合、マクロ実行部はど
のように解釈するのでしょうか?
秀丸 v4.14 で試したところ、よくわからない挙動に出くわしました。いくつか例を
挙げます。
▼ A.mac は何も起こらないマクロですが、ちょっと書き間違えた B.mac は B0.mac
と同じ動きをします。
// A.mac(正)
$a = "hoge";
while ($a != "") {
$z = "\x09";
$a = getclipboard;
}
// B.mac(誤)
$a = "hoge";
while ($a != "") {
$z = "\x9"; // ミス
$a = getclipboard;
}
// B0.mac
while (1) {
paste;
}
▼ C.mac は実行すると秀丸が固まったり死んだりします。(dump.txt が必要でした
らお送りします)
// C.mac
while (0) {
$z = "\x9"; // ミス
insert $z;
}
▼ D.mac は実行すると「マクロエラー:数値が指定されるべき所に数値以外のもの
が指定されています。」が出ます。
// D.mac
$a = input("1行目\xa2行目", "");
また、 menuarray 文も ddestartadvice 文も使っていないのに「マクロエラー:文
字列変数の名前が指定されなければいけない所にそれ以外のものが指定されていま
す。」が出た例もありました(再現条件は忘れてしまいましたが)。
このような挙動の原因についてご説明いただければ幸いです。
|
|