寺西です。

Tadamasa Teranishi wrote:
>
> NOKUBI Takatsugu wrote:
> >
> >   iconv_tの実体はvoid *で、C言語においてポインタできちんと定義されてい
> > るのはNULLだけなので、-1を使うのは止めました。
> 
> (iconv_t)(-1) を使うことに何ら問題はありません。

ちょっと誤解されているようです。

修正されたソースを見たところ

    if (toutf8 == NULL)
        toutf8 = iconv_open("UTF-8", "EUC-JP");
    assert(toutf8 == NULL);

となってましたが、iconv_open の戻り値で NULL を返すことはありません。
# 少なくとも libiconv-1.9.1 では。

iconv_open では以下のようにエラー時に -1 を返すようになっています。

invalid:
  errno = EINVAL;
  return (iconv_t)(-1);

ですので、戻り値が (iconv_t)(-1) かどうかを比較することは必要です。
(あるいは errno を確認するかです。)
-- 
=====================================================================
寺西 忠勝(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

メールによる返信