|
TAKA です。
正規表現での行末検索について、2つほど不具合?がありました。
●その1
// テストファイル(ここから)
\n
\tTEST\n
[EOF]
// テストファイル(ここまで)
「\t」はタブ、「\n」は改行、「[EOF]」はEOF
// テストマクロ(ここから)
gofiletop;
searchdown "^.*TEST$", regular;
endmacro;
// テストマクロ(ここまで)
「その他→動作環境→ユーザーインターフェース→検索での表示」
を「点滅表示」にして、タブ4のテストファイルに対してテスト
マクロを実行すると、タブと「T」だけが点滅表示されます。
本来なら、タブと「TEST」が点滅表示されるべき。
●その2
// テストファイル(ここから)
TEST2\n
TEST[EOF]
// テストファイル(ここまで)
「\t」はタブ、「\n」は改行、「[EOF]」はEOF
// テストマクロ(ここから)
gofiletop;
replacedown "^.+\\f\\n?", "\\0\\n\\0\\n", regular, ask;
endmacro;
// テストマクロ(ここまで)
行を二重化する目的でテストファイルに対してテストマクロを実行
すると
// テストファイル(置換後)(ここから)
TEST\n
TEST\n
TES\n
TES\n
[EOF]
// テストファイル(置換後)(ここまで)
のように最後の行の「T」が消えてしまいます。
// テストマクロ(ここから)
gofiletop;
replacedown "^.+\\f(\\n|$)", "\\0\\n\\0\\n", regular, ask;
endmacro;
// テストマクロ(ここまで)
このようなマクロでも最後の行が置換されていいと思うのですが、
最後の行が置換されません。
これは、$がパターンの最後でなければならない(()の中に書くこと
は想定されていない)という仕様があるのではないかという指摘を
受けましたが、そういう仕様なのでしょうか?
最終行が[EOF]で終わらないように事前に編集したりするなどで対
応することは可能ですが、不具合だと思い報告させてもらいました。
|
|