§問題の概要
リンクのインポート機能において、オプション→リンク→正規表現の欄に ~{m,n}~
という正規表現を記述すると、,
が ;
に置き換わり ~{m;n}~
となってしまう。
;
は区切り記号なので ~{m
と n}~
という二つの正規表現として解釈されてしまい、その結果期待通りに動作しない。
例: [a-z]{1,3}
と書く → [a-z]{1;3}
に変わる → [a-z]{1
または 3}
として解釈される。
元ネタ: http://hibari.2ch.net/test/read.cgi/win/1303889299/434n
§原因
myclasses.pas の procedure TExtensions.SetTextStr
内で、文字列を \s*[;,\n]\s*
で分割しているため。
§対策
自分でビルドできる場合は、前述のソースの [;,\n]
を [,\n]
に書き換える。
(試していないけど多分それでいけるはず)
ビルド環境がない場合は、バイナリを直接書き換える。
- バイナリエディタで irvine.exe を開く。
[;,\n]
という文字列を検索する。16進数で検索する場合は5B 3B 2C 5C 6E 5D
,
を;
に書き換える([;;\n]
にする)。
Irvine 1.3.1.127 であれば以下のように書き換える。
00095EE9: 2C 3B
§副作用
正規表現以外の欄でも、区切り記号に ,
を使えなくなる。
,
を使う人はいないと思うので問題はないはず(Irvine の出力はもともと ;
だし)。
他の機能にも何か影響があるかも。