Thanks Driven Life

日々是感謝

UTF-8 on mnews-1.22PL6

俺は未だにニュースリーダーに mnews を使ってるわけですが。
最近は開発環境が utf8 になりつつあるので、mnews も utf8 にするべきだろうってことで
だいぶ前から mnews with utf8 を使ってました。はい、使えてました。
ですが、今まで使ってた鯖は Windows にしちゃったので、別の鯖に mnews をインストールして
使おうと思ったんだが、なんかもう文字化けですよ。文字化け。
前はそんなに苦労しないでそのまま写った気がしたんだがなーと思いながらいろいろやってました


mnews 本体は適当に。俺は以下のサイトの IMAP パッチ (おまけ unicode) を使いたかったので PL6 を使いました。

http://www.doga.co.jp/~taka2/mnews/

パッチの当て方、コンパイルは以下な感じ。

% wget http://www.doga.co.jp/~taka2/mnews/mnews1.22PL6-imap4-20030207.tar.gz
% tar zxvf mnews122PL6.tar.gz
% cd mnews-1.22PL6
% patch -p1 < ../mnews1.22PL6-imap4-20030207.patch
% cd build
% nkf --overwrite -wE config.jsh # 文字コードが EUC だったので utf8 に。まあ config.sh 使えば
% ./config.jsh # 環境に合う感じで質問に答えていく
% make

コンパイルまではいくんですが、実行すると文字化けしてる。
しかし、記事自体を見ると文字化けしていないという。
ということはニュースグループを表示しているところが怪しいと考えていろいろ探してみる。
つーとありました。

kanjilib/kanjilib.c の euc_printf っていう関数内

#ifdef UNICODE
  case UTF8_CODE:
      str_to_utf8(buff2, buff1);
  break;
#endif

他の文字コードだと、 euc_to_xxx ってなってるのに、ここだけそのままコピペしてる。
なので

#ifdef UNICODE
  case UTF8_CODE:
      //str_to_utf8(buff2, buff1)
      euc_to_utf8(buff2, buff1);
  break;
#endif

ってすればおk。コンパイルして実行すると、見事に文字化けしないです。


んー、前の環境ではなんで大丈夫だったんだろう。
忘れてるだけで、同じ様に修正したんだろうか。
まあこのやり方が正しいかは知りませんが。動いたのでよし。


Thunderbird 使えとか言われるかもしれないけど、大学内ニュースだと
特定の数個だけではなく、たくさんの範囲まで見たい時があって、
その時にわざわざ一個ずつ指定していく Thunderbird はめんどくさいんですよね。
まあ最初の一回だけなんで別にって感じですかそうですか