[#14614] 大小文字を無視した比較で ' 帰 ' == ' 蟻 ' ? — "K.Umakoshi" <pegacorn@...>
こんにちは。
まつもと ゆきひろです
From: matz@ruby-lang.org (Yukihiro Matsumoto)
なかだです。
まつもと ゆきひろです
[#14636] Re: [REQ] String#slice(re, n) — Minero Aoki <aamine@...>
あおきです。ruby-dev に移します。
[#14658] Socekt::SOL_TCP -> Socket::IPPROTO_TCP — m_seki@...
[#14662] How to abondon saved uid privilege — nobu.nakada@...
なかだです。
永井@知能.九工大です.
なかだです。
永井@知能.九工大です.
まつもと ゆきひろです
永井@知能.九工大です.
In message <20010905184635H.nagai@ai.kyutech.ac.jp>
ちょっと脱線します。 :)
In message <86ofopevkv.wl@archon.local.idaemons.org>
まつもと ゆきひろです
In message <999700675.662743.18683.nullmailer@ev.netlab.jp>
永井@知能.九工大です.
In message <20010906111828R.nagai@ai.kyutech.ac.jp>
永井@知能.九工大です.
In message <20010906132656Z.nagai@ai.kyutech.ac.jp>
永井@知能.九工大です.
In message <20010906174440D.nagai@ai.kyutech.ac.jp>
永井@知能.九工大です.
永井@知能.九工大です.
永井@知能.九工大です.
永井@知能.九工大です.
まつもと ゆきひろです
永井@知能.九工大です.
In article <20011102175733K.nagai@ai.kyutech.ac.jp>,
永井@知能.九工大です.
In article <20011103223903G.nagai@ai.kyutech.ac.jp>,
永井@知能.九工大です.
In article <20011109140713D.nagai@ai.kyutech.ac.jp>,
永井@知能.九工大です.
In article <20011109152213R.nagai@ai.kyutech.ac.jp>,
永井@知能.九工大です.
In article <20011109170952Z.nagai@ai.kyutech.ac.jp>,
[#14668] = in conditional — "Akinori MUSHA" <knu@...>
条件式で代入をすると
[#14716] CGI#header bug — Shugo Maeda <shugo@...>
前田です。
わたなべです。
[#14730] ruby-lex.rb: get value from TkSTRING and TkCOMMENT — TAKAHASHI Masayoshi <maki@...>
高橋征義です。
けいじゅ@日本ラショナルソフトウェアです.
高橋征義です。
けいじゅ@日本ラショナルソフトウェアです.
[#14743] [BUG] $_ on thread switching — nobu.nakada@...
なかだです。
なかだです。
まつもと ゆきひろです
なかだです。
まつもと ゆきひろです
なかだです。
まつもと ゆきひろです
なかだです。
なかだです。
なかだです。
なかだです。
まつもと ゆきひろです
なかだです。
まつもと ゆきひろです
[#14749] forwardable.rb : call Kernel.raise — Kenichi Komiya <kom@...1.accsnet.ne.jp>
けいじゅ@日本ラショナルソフトウェアです.
[#14754] regex.c について — Osamu Shigematsu <shige@...>
重松と申します。
[#14809] WAIT_SELECT value with multithread — nobu.nakada@...
なかだです。
まつもと ゆきひろです
なかだです。
[#14816] Generator — "Akinori MUSHA" <knu@...>
Python 2.2 では iterator と generator というのが導入されていて、
[#14823] ruby-1.6.5 MacOS X 10.1 patch — SHIROYAMA Takayuki - <psi@...>
SHIROYAMA Takayukiさんの<00f901c14652$c08a3470$600aa8c0@turtle>から
[ruby-dev:14614] 大小文字を無視した比較で ' 帰 ' == ' 蟻 ' ?
こんにちは。
思うところあって ruby_m17n を見てたんですが、
String#<=> のバグを見つけました。
# で、今日初めて ruby-dev@ruby-lang.org に登録しました。(^^;
例えば、SJIS で大小文字を無視した比較を行うと
'帰' == '蟻' が真になります。
#!/home/user/bin/ruby_m17n -Ks
$= = true
p '帰' == '蟻' # => true
一応私なりに直してみて、期待通り動いてます。
# 仕様を把握していないので仕様が間違ってるかも…
----
馬越
Attachments (1)
--- m17n.c.orig Mon Mar 5 12:37:34 2001
+++ m17n.c Sun Sep 2 12:21:46 2001
@@ -715,11 +715,22 @@
const m17n_encoding *enc;
{
int tmp;
+ int clen;
- while (len--) {
- if (tmp = m17n_toupper(enc, (unsigned)*p1++) -
- m17n_toupper(enc, (unsigned)*p2++))
- return tmp;
+ while (len > 0) {
+ clen = m17n_mbclen(enc, *p1);
+ if (clen != m17n_mbclen(enc, *p2))
+ return ((unsigned)*p1 - (unsigned)*p2);
+ len -= clen;
+ if (clen == 1) {
+ if (tmp = m17n_toupper(enc, (unsigned)*p1++) -
+ m17n_toupper(enc, (unsigned)*p2++))
+ return tmp;
+ }
+ else {
+ while (clen--)
+ if (tmp = (unsigned)*p1++ - (unsigned)*p2++) return tmp;
+ }
}
return 0;
}