FastGrepReplace は日本語限定だった

結構何年も前からちょくちょくメンテナンスしている秀丸用のマクロ、FastGrepReplace が、実は日本語限定だったことが判明した。

FastGrepReplace は「grep 結果から一気に置換」という類のマクロで、もともと自分のために開発していたものを、ユーザさんの要望を取り込みつつバージョンアップを繰り返してきたものです。

FastGrepReplace 1.x の頃、欧文*1対応を行って結構取り返しのつかない状態*2になってしまった反省を踏まえ、2.x では欧文の対応をやめたわけです。

で、2.x では文字コード判定をかなり厳密にチェックするようにしたのですが、当時の僕のニーズでは、日本語の範囲で厳密にチェックするというのが重要だったらしく:

  • 内部コードは CP932
  • UTF-x のファイルも CP932 範囲外の文字があったらバイナリ扱い

という何ともふがいない設計になっている。


最近は中国語の混ざったファイルを扱うことが多く、ずっと不便だったので、今日重い腰をあげて真の多言語化対応を試みてみた。


この時間まで頑張ったけど対応終わらず。来週に持ち越し。

今の実相は内部コードにマルチバイト文字と Unicode の両方を保持するようになっている(なっちゃっている)ので、設計を見直して最初から作った方がよいような気もしないでもない。

*1:Latin-1 とか Windows-1252 とか、ISO-8859-1 とか、そのあたり

*2:欧文はほとんどバイナリと同じなので、欧文なのかバイナリなのかの判定が難しい、というよりどうしても区別できないことがある