寺西です。

Tadamasa Teranishi wrote:
> 
>             if (tolen == 1) {
>                 unget1byte(eucj[1]);  /* これは \0 ? */
>                 unget1byte(eucj[0]);
>             } else { /* tolen == 2 しか想定してない? */
>                 unget1byte(eucj[2]);  /* これは \0 ? */
>                 unget1byte(eucj[1]);
>                 unget1byte(eucj[0]);
>             }
>             getkanji(c);
>             return;
> 
> UTF-8 から EUC-JP の3バイト文字に変換されるケースもあるかと思います
> が、tolen が 3 なので、きっと iconv は -1 を返すのだと思います。
> その時、エラー処理をしないと不定値の eucj[0] から eucj[2] が返される
> ので、ちょっとまずいことが起きそうです。

また間違えました。

tolen が 1 の時は、2バイト変換された時なので、このままで問題ありま
せんでした。
それ以外の時は、3バイト文字の処理ということでした。

なので、l が -1 の時(iconvのエラー)の処理さえ加えれば良いだけでした。
-- 
=====================================================================
寺西 忠勝(TADAMASA TERANISHI)  
[メールアドレス保護]
http://www.asahi-net.or.jp/~yw3t-trns/index.htm
Key fingerprint =  474E 4D93 8E97 11F6 662D  8A42 17F5 52F4 10E7 D14E

_______________________________________________
Kakasi-dev mailing list
[email protected]
http://www.namazu.org/cgi-bin/mailman/listinfo/kakasi-dev

メールによる返信