前回portsのjapanese/awffullを導入したのだけれど、検索文字列が文字化けする。
レポートがEUC-JPで作成されるのに対して、検索文字列がUTF-8になっているからだ。
awffullはgettextで国際化されていて、gettextは環境変数LANGUAGEを見てそれに合わせてiconvで変換した文字列を出力するようなので、LANGAGEその他諸々をja_JP.UTF-8にしてみたんだけどレポートはEUC-JPで出力されてしまう。
あきらめて検索文字列の方をEUC-JPで出力するように方針転換。
そういえばjapanese/webalizerのころはこんなことはなかった。
調べてみるとjapanese/awffullはnyan氏のパッチを適用したもののよう。
このパッチはa-urasim氏のwebalizer用のパッチを参考に書かれたものだけど、そっちではEUC-JP検索文字列をEUC-JPに統一して出力するようになっている。
よってnyan氏がUTF-8に統一して出力するように書き換えた部分を元に戻してやれば良いと思って、ports中のfiles/awffull-ja.diffを書き換えたらEUC-JPで出力されるようになった。
Emacsのdiffモードが賢い(行の挿入や削除をするとメタ情報も変更してくれる)のに感動。
ただ、あまり良いやり方じゃないと思う。
元はといえばgettextの出力コードが変更できなかったのが問題だし、検索文字列の出力コードも設定ファイルに記述できるようにするべきかと。