logo       

[ruby-list:42449] Re: 日本語でのString#casecmpの利用について: msg#00103

lang.ruby.japanese

Subject: [ruby-list:42449] Re: 日本語でのString#casecmpの利用について

なかだです。

At Thu, 22 Jun 2006 16:16:10 +0900,
Yukihiro Matsumoto wrote in [ruby-list:42445]:
> |ruby 1.8.1 (2003-12-25) [i686-linux]をRedHat Linux 9上で、
> |
> | $KCODE = "S"
> | "\202\320".casecmp("\202\323")
> |
> |を実行すると"0"が帰ってきます。"\202\320"と"\202\323"は、それぞれ、Shift_JIS
> |で、"ひ"と"ふ"になります。
>
> 手元のruby 1.8.4 (2006-05-22) [i386-linux]では -1 になります。
> 1.8.1はずいぶん古いですが、その辺の動作は変わっていないはず
> なんですが。おかしいなあ。

これじゃないですかね。

date: 2006-05-16 09:25:18 +0900; author: matz; state: Exp; lines: +10 -7;
* re.c (rb_memcmp): type change from char* to const void*.

ログには書いてませんが同時にrb_memcicmp()も変わってます。引数が
void*に変わっただけでなく、char*でなくunsigned char*にキャスト
するようになってます。これ以前は、plain charがsigned charの環境
では0..0x7f以外はcasetableの範囲外をアクセスしてるという話だっ
たような。

--
--- 僕の前にBugはない。
--- 僕の後ろにBugはできる。
中田 伸悦




<Prev in Thread] Current Thread [Next in Thread>
Google Custom Search

News | FAQ | advertise