compiler_statusのcharset

随分前からRegression Testsのログのcharsetが環境ごとに違うのが気になっていたのですが、ログをSVNに追加したついでにcharsetを推測して設定するようcompiler_statusを改造しました。
差分


POSIX&gccの環境では、エラーメッセージはLC_MESSAGESに依存します。
ただし、LC_ALLが設定されていればそれが優先されます。
また、LC_ALLもLC_MESSAGESも設定されていない場合はLANGが使用されます。
これらの値は、X/Openの拡張では、

language[_territory][.codeset]

の形式を取ります。
今回はこれのcodesetの部分を見てcharsetを判断することにしました。
実際にはcodesetとcharsetは微妙に違って、

として、残りは無視しています。


Windows環境ではさらに手抜きでGetACP()が932を返したらShift_JIS、それ以外は無視という実装です。
まぁ、自分しか使わないのでこれで十分でしょう。