From: Tomohiro K. <ku...@de...> - 2003-03-02 06:02:36
|
久保田です。 # 多数の修正おつかれさまです。 encoding が指定されていない (-E オプションなし、~/.mlterm/main に encoding 行なし) の場合、ISO-8859-1 になってしまいます。また、 -E オプションにめちゃくちゃな文字列を指定した場合、「hogehoge encoding is not supported. Auto detected encoding is used.」 とのメッセージが出ますが、その際にも ISO-8859-1 になってしまいます。 なお、encoding が auto と明示的に指定されている場合には、きちんと 自動検出になります。 で、いろいろ調べてみたら、 From: Araki Ken <ara...@us...> Subject: Re: [Mlterm-dev-ja] mlconfig writes every settings Date: Sat, 01 Mar 2003 22:13:28 +0900 > doc/en/PROTOCOL で encoding=auto を受け付けるようにしました。 たぶんこれ関連だと思うのですが、 Index: x_term_manager.c =================================================================== RCS file: /cvsroot/mlterm/mlterm/xwindow/x_term_manager.c,v retrieving revision 1.36 retrieving revision 1.37 diff -u -r1.36 -r1.37 --- x_term_manager.c 18 Feb 2003 12:34:14 -0000 1.36 +++ x_term_manager.c 1 Mar 2003 14:59:49 -0000 1.37 @@ -1559,27 +1558,21 @@ } } - if( ( main_config.encoding = ml_get_char_encoding( kik_get_codeset())) == ML_UNKNOWN_ENCODING) - { - main_config.encoding = ML_ISO8859_1 ; - } + main_config.encoding = ML_ISO8859_1 ; if( ( value = kik_conf_get_value( conf , "ENCODING"))) { ml_char_encoding_t encoding ; (以下省略) という変更が入っています。エンコーディングが指定されていない場合、 if ((value=kik_conf_get_value())) 以下を実行しないので、 ML_ISO8859_1 で最終決定になってしまいます。この部分は もとのままでいいと思うのですが (「以下省略」の部分は変更後で OK で、上記の -4+1 行のみ)、ぼくは mlterm のソースはほとんど 読んでいないので、自信がないです (読んでいないところで不具合が 生じるかも?)。 これについては、cvs commit してしまってもいいでしょうか? ところで、mlterm の側で encoding が auto になっているとき、mlconfig を実行してもエンコーディングの欄が auto になりません。そのために、 ・mlterm が、現在のエンコーディングを記録しておく以外にも、 現在のエンコーディングは自動検出で決定されたものであるかどうかを 記録しておかないといけない。そのために、struct ml_term に int8_t is_auto_encoding というのを追加する。 ・encoding が決定される場面 (-E オプションや ~/.mlterm/main による 場合と、\x1b]x;encoding=y\x07 [x=5379,5382,5383]による場合のふたつ) において、上記の is_auto_encoding を設定する。 ・mlterm から mlconfig に、その情報を伝える手段が必要。そのために \x1b]x;auto_encoding\x07 (x=5380,5381) というのを新設する。 ・mlconfig の側で、auto_encoding と encoding の両方の情報を用いる ようにする。もし auto_encoding が有効なら、エンコーディングの欄 には sprintf(_("auto (currently %s)"), encoding) が表示されるようにする。 (これを可能にするには、\x1b]x;encoding\x07 [x=5380,5381] の結果として auto が返るようにするという変更ではだめで、\x1b]x;auto_encoding\x07 を新設しないといけない。 というような方針でいじりはじめたのですが、挫折してしまいました。 --- 久保田智広 Tomohiro KUBOTA <ku...@de...> http://www.debian.or.jp/~kubota/ |