Namazu-devel-ja(旧)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [namazu-users-ja] Re: solaris の strcasecmp 問題
- From: Motoyuki Kasahara <m-kasahr@xxxxxxxxx>
- Date: Thu, 22 Jun 2000 12:29:03 +0900 (JST)
- X-ml-name: namazu-devel-ja
- X-mail-count: 00585
- References: <39506825.97047F16@bpo.co.jp> <200006211119.UAA29082@cosmo.ulis.ac.jp>
笠原です。
* From: masao@xxxxxxxxxx (Masao Takaku)
* Date: Wed, 21 Jun 2000 20:19:08 +0900 (JST)
> > オプションで指定するのではなく、機種に関わらず強制的に namazu の
> > 配布パッケージ内の strcasecmp.c を利用するように修正するべきなのでは
> > ないでしょうか? (こちらが日本語対応であるなら)
> > Solaris 以外でも問題になる可能性は否定できないと思います。
> ご指摘のとおり、とりあえず修正してみました。
> CVSの最新版で動作確認をお願いします。
すみません。以前に ML で話題になったときのことは知らないので外し
ているかも知れませんが、話が噛み合ってなくないですか?
もとの寺西さんの発言:
| trcasecmpの実装の問題ではなく、そもそも日本語文字列に対応して
| いない関数を使っている側の問題だったのでは?
ということで、寺西さんは strcasecmp() の実装の問題ではない、とい
うことをおっしゃっているのですよね。
けれども、高久さんが添付されたパッチを拝見すると、新たに
nmz_strcasecmp() という関数を実装して、strcasecmp() を呼んでいる
ところを全て nmz_strcasecmp() を呼ぶように変えています。どうも、
strcasecmp() を問題視した上での修正にしか見えません。
また、パッチの nmz_strcasecmp() は特に日本語向けの処理を行ってい
る様子はないように見えます。(日本語対応って、「A」と「a」を同じ
と認識してくれる strcasemp() ってことなのかな?)
いずれにしても、ソースコード内で nmz_strcasecmp() を使って比較し
ている文字列は、いずれも日本語の文字列ではないように見受けられま
すので、別に strcasecmp() が日本語対応である必要はないように思え
ます。
それから、パッチ内の nmz_strcasecmp() ですが、char が符合有りの
環境で MSB が立っている文字を含んだ文字列を比較させると、大小が
逆転してしまうような気がします。ちなみに lib/strcasecmp.c では
| const unsigned char *p1 = (const unsigned char *) s1;
| const unsigned char *p2 = (const unsigned char *) s2;
としているので、この問題は起きません。
# とは言え namazu で strcasecmp() を使っている箇所はどれも、文字
# 列が一致しているかどうかしか見ないので、いまのところ実害はない
# と思います。けど、後で使い回すことも考えた方がいいですよね。
そもそも、lib/strcasecmp.c をそのまま使えば良いんですよね? なぜ
もう一つ別の実装が要るのでしょうか。
________________________________________________________________
笠原 基之(かさはら もとゆき)