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 に依存するから、と
いう話ですよね。私はむしろそっちが原因かな、と思いました。
________________________________________________________________
笠原 基之(かさはら もとゆき)