ja-libslangは古くてだめで、ncusresかlibslang2を使う必要があります。
ncursesw でも ambiguous width 文字の扱いに問題がある、というか半角幅になって困るときがあるそうですね。
ターミナル、ncursesw、(使っていれば screen)、mutt、エディタ、などなどが east asian ambiguous width な文字に対して認識する幅を揃えないと問題になるようです。
しかし ncursesw には全角幅にする設定はないはずなので (たぶん)、 基本的には、現状、半角幅で揃えるしかないのではないでしょうか。
全角幅で揃えるには ncursesw (or libc の wcwidth) にパッチをあてる必要があるでしょう。 # あれ、じゃあ --enable-cjk-width は何のためのオプションだったっけ……?
--enable-cjk-ambiguous-widthをつけたら、かなり改善されましたが、まだ問題があります。
1) ◆のような文字が入る文字列をindex画面で表示すると、次の行に移る時、左端に
2) 題名を入力する時、全角文字が半角文字幅で表示されてしまいます。
4498 の test-utf8.JPG は、システムが半角幅と思っているところに 全角の「フォント」を使っている問題のような気がします。
ふつうの Unicode フォントを使うと、◆や■が半角になって、うまくいくのではないかなぁ。
インデックスでは◆が切れないのにラインエディタで切れるのは、 enter.c の mutt_enter_string (後者) が addwch のたびに move しているからですね。
だから、その画面は「◆の wcwidth は 1 である」ということを意味しているはず。
あれ……?
■を FFED の半角と 25A0 の全角のどちらにするかは iconv の問題としても、
◆はまさに East Asian Ambiguous Width なので、"set cjk_width" で全角幅に認識されるはずなんですけどね……。
いずれにせよ、この件は mutt (や日本語パッチ) のバグではなく、ユーザサイドの利用法の問題のような気がします。 「ロカール、ターミナルとフォントの設定を見直してください」としか言いようがない気がするのですが、どうなんでしょうか。
今試しているのはFreeBSD 8.1だけなので、他の環境でどうなるかは 明日テストしてみます。
ターミナルの問題の一例としてgnome-terminalの例を挙げると、環境変数VTE_CJK_WIDTHの値を1に設定してgnome-terminalを起動しないと◆とかは正しく全角幅で表示されません。
OpenSUSE 11.3 において ./configure --enable-pop --enable-imap --enable-smtp --enable-debug --enable-cjk-ambiguous-width でコンパイルするとうまくいきますね。 ./mutt -v Mutt 1.5.21 (2010-09-15) Copyright (C) 1996-2009 Michael R. Elkins and others. Mutt comes with ABSOLUTELY NO WARRANTY; for details type mutt -vv'. Mutt is free software, and you are welcome to redistribute it under certain conditions; type mutt -vv' for details.
System: Linux 2.6.34.7-0.7-desktop (i686) ncurses: ncurses 5.7.20100109 (compiled with 5.7) libidn: 1.15 (compiled with 1.15) Compile options: -DOMAIN +DEBUG -HOMESPOOL -USE_SETGID +USE_DOTLOCK -DL_STANDALONE +USE_FCNTL -USE_FLOCK +USE_POP +USE_IMAP +USE_SMTP -USE_SSL_OPENSSL -USE_SSL_GNUTLS -USE_SASL -USE_GSS +HAVE_GETADDRINFO +HAVE_REGCOMP -USE_GNU_REGEX +HAVE_COLOR +HAVE_START_COLOR +HAVE_TYPEAHEAD +HAVE_BKGDSET +HAVE_CURS_SET +HAVE_META +HAVE_RESIZETERM +CRYPT_BACKEND_CLASSIC_PGP +CRYPT_BACKEND_CLASSIC_SMIME -CRYPT_BACKEND_GPGME -EXACT_ADDRESS -SUN_ATTACHMENT +ENABLE_NLS -LOCALES_HACK +ENABLE_CJK_WIDTH +HAVE_WC_FUNCS +HAVE_LANGINFO_CODESET +HAVE_LANGINFO_YESEXPR +HAVE_ICONV -ICONV_NONTRANS +HAVE_LIBIDN +HAVE_GETSID -USE_HCACHE ISPELL="/usr/bin/ispell" SENDMAIL="/usr/sbin/sendmail" MAILPATH="/var/mail" PKGDATADIR="/usr/local/share/mutt" SYSCONFDIR="/usr/local/etc" EXECSHELL="/bin/sh" -MIXMASTER To contact the developers, please mail to <mutt-dev@mutt.org>. To report a bug, please visit http://bugs.mutt.org/.
patch-1.5.21.tt.wcwidth.1 patch-1.5.21.tt.sanitize_ja.1 patch-1.5.21.tt.create_rfc2047_params.1 patch-1.5.21.tt+yy.delete_prefix.1
FreeBSDでの乱れ原因はわかりました。システム側が持っているテーブルの問題です。
mutt 1.5.21 で、UTF-8環境で表示させると画面が乱れます。添付のようになります。