namazu-dev(ring)


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: isdigit (Re: Namazu for Win32 binary snap release 20000215)



笠原です。

* From: Satoru Takabayashi <satoru-t@xxxxxxxxxxxxxxxxxx>
* Date: Mon, 21 Feb 2000 12:11:11 +0900

> だけど、考え直してみると "不明" は 8 bit 文字なので
> 
>   isdigit((int)str[i])
> 
> で isdigit に渡るのは負の値になります。そして、 isdigit の実
> 装によっては、負の値が渡されると動作がおかしくなる、という可
> 能性があります。

そういう実装も世の中にはあるかも知れませんが、Win32 でそれはあ
るでしょうか。char で表せる範囲を int に拡張したのなら、多分な
いような気がするんですけど....。誤動作だとすれば、ISO 8859 の文
字でも同じことが起きる筈です。

まず、-255 〜 255 を順に isdigit() に与えてみて、結果をみるとい
うのは、いかがでしょう。

高林さんんの「locale の問題ではないか」という最初の推測は、
ctype の is〜() の戻り値 (判定結果) は locale に依存するから、と
いう話ですよね。私はむしろそっちが原因かな、と思いました。
________________________________________________________________
                                    笠原 基之(かさはら もとゆき)