From: WATANABE Hirofumi Date: 1997-04-11T16:44:56+09:00 Subject: [ruby-list:2769] Re: [BUG?] strip わたなべです. :まつもと ゆきひろです. :ソースを見る限り,切り落とすかどうかの判断はisspaceを用いて :行っていますから,gnu-win32版のisspaceに問題があるのかも知れ :ません. あの書き方だとちょっとまずい処理系もあります. char *s だと 0x80 以上は負になるので isspace() には負の値が渡ります. ctype のテーブルが 1. [-128, 255] の範囲で作られている(ANSI, Linux) 2. [0, 255] だけど 0xff で mask している(djgpp) となってれば問題ないけど 3. [0, 255] で mask もしてない(GNU Win32) だとめちゃくちゃになります. :rubyの側で0x80より大きいものはspaceではないという判断を追加 :しても構いませんけど…. (unsigned char) で cast するか unsigned char *s にするっての は? #んー, ということは他にもいっぱいあるってことか. 気がつかなかった. -- わたなべひろふみ