ソースコードの文字コードの変換

SJISソースコードCVS/SVN などで管理されている場合、Linux 上で EUC に変換してしまうと、diff/commit が面倒なことになり、開発効率が低下する。どうすればいいだろうか?

  • EUC に変換してから作業を進める?
    • cvs/svn との比較が取りづらい
      • diff/commit の時に SJIS に自動的に変換してまた EUC に戻す?
        • これが一番簡単で安全か?
  • Makefile を工夫して、.o を作るときに EUC に自動的に変換して SJIS に戻す?
    • depend を利用して必要なファイルだけコンバートしてコンパイルする?
      • cpp は簡単だが h が困る
      • 依存関係でクリアしようとしたが難しい
  • コンパイル前後で一括変換する?
    • 毎回全てのファイルを変換するのは時間がかかる?
    • 表示を出さなければかなり高速
      • タイムスタンプの比較があるので変化のあったファイルしかコピーしない
      • コンパイルファイルと編集ファイルが異なると emacs によるデバッグ効率が悪い(ジャンプできない)
        • 多少勇気がいるが、上書きが妥当
        • オリジナルはレポジトリにあるので心配しなくてもよい

※現在は、文字列リテラルのみ日本語を避けて、Linux 上でも SJIS のコードをそのまま使うのが開発上はベストと考えている。