2007年6月10日の日記の3番目の記事へのコメント
■PidginでIRC文字化け問題
結局のところ,Windows側のlibiconvがISO-2022-JP-MSに対応してないのが悪いわけで,パッチを当てて対応させたiconv.dllをPidginと一緒に配布すればいいだけの話なんではないかということに気づきました.
というわけで,libiconv-1.9.1にパッチを適用してMinGWで普通にconfigureしてmake・・・が,makeでこけます.ググったら1.9.2だとうまくいくという情報が出てきたので,1.9.2と何が違うのかと思って見てみたら,1.9.1の方には↓が無かったり.この辺足したら通りました.
#if defined _WIN32 || defined __WIN32__ # define WIN32_LEAN_AND_MEAN # include <windows.h> #endif
が,make installしてもiconv.dllはできず.これってもしかして手で作らねばならんのか? 調べてみたら,ここに説明がありました.MinGWのツールで普通に手で作れるのか.で,これをやるためにはdefファイルというのが要るみたいなんですが,これをどうやって作ればよいのだろうか・・・と彷徨ってたらこちらでナイスなツールが紹介されていました.
./tiny_impdef.exe 'c:\cygwin\home\nosuke\compile\pidgin\gtk_installer\gtk_install_files\bin\iconv.dll'
のように既存のiconv.dllを食わせてやったら iconv.def とか適当なファイル名でdefファイルを書き出してくれました.素晴らしい.これを使って↓のような感じで手リンク.
dllwrap -k -def iconv.def --driver-name gcc -o iconv.dll \ ./lib/.libs/iconv.o ./lib/.libs/localcharset.o \ ./lib/.libs/relocatable.o
iconv.dll ができました.よし早速置き換え.・・・あれ,ISO-2022-JP-MSが出てこねーぞ?EUC-JP-MSはあるみたいだけど・・・.ぐはっ,ISO-2022-JP-MSが出てきたのは1.10からか・・・.
そんなわけで,今度はlibiconv-1.10にパッチを当てて作り直し.手順はまったく同じで,普通にiconv.dllができました.Pidginと一緒に入るGTKのを置き換えてやったら,ばっちりISO-2022-JP-MSが指定できるようになり,IRCで半角カタカナとか「〜」とかが化けなくなりました.次からはこれをWindows版のPidginに同梱するのが良さそうですね・・・.
2007年6月10日の日記の3番目の記事へのコメント
[コメントを書く]