TAKIZAWA Takashi
taki****@cyber*****
2008年 12月 18日 (木) 03:26:17 JST
滝澤です。 On Wed, Dec 17, 2008 at 11:15:48AM +0900, ribbongw master wrote: > wc-patchの1.5.18版を作ろうとしたのですが、wcwidth.cが > 大幅に書き換わっていて、全然パッチが当たりません。 > 手直しするのもかなり面倒そうです。 1.5.18用に作り直しました。 http://www.emaillab.org/mutt/1.5.18/patch-1.5.18.tt.wcwidth.1 > このあたり、どういう理由でパッチが出来たか、その後どうなったか、 > よく分からないのですが、とりあえず省いちゃっていいでしょうか。 このパッチの目的は次の2つです。 - Mutt内蔵のワイド文字関数をjaだけでなく、CJKにも対応させる。 - UTF-8ロカールの記号文字の桁ずれを防ぐ。 前者は元々Muttに日本語対応として追加した機能を中国語と韓国語の 文字のコードにも対応させます。 後者はについては、UTF-8のロカールにおいて、記号文字等の文字幅がはっきり しない(ambiguous)文字への対策です。 日本語の環境ではJIS漢字の記号文字は2桁で表示して欲しいのですが、 Cライブラリのワイド文字関数ではロカールがUTF-8の場合は、 ambiguousな文字は1桁として判断されます。 そのため、記号文字が2桁を前提としてる端末では桁ずれが生じて表示が乱れます。 このパッチをあて、configureの時に、 --enable-cjk-ambiguous-width をオプションとして付けて、コンパイルし、Muttの設定ファイルに cjk_width=yes を付けると記号文字を2桁として判断するようになります。 こんな訳なので、UTF-8のロカールの場合には端末によってはこのパッチが 必要になります。 -- TAKIZAWA Takashi(滝澤 隆史) http://www.emaillab.org/