From: nobu.nakada / nifty.ne.jp
Subject: [ruby-dev:14617] Re: 大小文字を無視した比較で ' 帰 ' == ' 蟻 ' ?
Date: Sun, 2 Sep 2001 23:05:12 +0900
Message-Id: <200109021039.f82AdhI07166 / sharui.nakada.kanuma.tochigi.jp>

> > 	clen = m17n_mbclen(enc, *p1);
> > 	if (clen != m17n_mbclen(enc, *p2))
> > 	    return ((unsigned)*p1 - (unsigned)*p2);
> 
>  長さが違っていれば最初のバイトが違うことが保証されるのか、と
> いうところがちょっと気になったのですが。なんか中国語だかのエン
> コーディングで、2バイト目までみないと長さも分からないというのが
> あると聞いたような気がします。

あらっ。そういう考慮は全く頭にありませんでした。m(__)m

m17n_memcmp の復帰値が単に正か負かで良いのなら

	clen1 = m17n_mbclen(enc, *p1);
	clen2 = m17n_mbclen(enc, *p2);
	if (clen1 != clen2) return (clen1 - clen2);

でどうでしょう?
# 今の m17n_mbclen の仕様じゃ意味ないけど…


----
馬越