[Kakasi-dev 84] Re: KAKASI-2.3.5.pre1 のパッチ

Tadamasa Teranishi yw3t-trns @ asahi-net.or.jp
2007年 10月 31日 (水) 18:09:42 JST


寺西です。

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)  yw3t-trns @ asahi-net.or.jp
http://www.asahi-net.or.jp/~yw3t-trns/index.htm
Key fingerprint =  474E 4D93 8E97 11F6 662D  8A42 17F5 52F4 10E7 D14E




Kakasi-dev メーリングリストの案内