Namazu-devel-ja(旧)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [namazu-users-ja] 「海」で検索すると文字化け
From: Rei FURUKAWA <furukawa@xxxxxxxxxxxx>
Subject: [namazu-devel-ja] Re: [namazu-users-ja] 「海」で検索すると文字化け
Date: Mon, 02 Jul 2001 21:49:48 +0900
> _nmz_lower() ではなくて、strcasestr 自体が 2 バイト文字に対応し
> ていないのが原因だと思います。
>
> 2 バイト文字だったら、次の 1 バイトとペアで比較して、ポインタも
> 2 つ進めないといけないですよね。
やはりそうですよね。
> 直すこと自体は簡単ですが、locale なども考慮して、処理を切り替え
> ないといけないですよね?そこらへんで、どういうスタイルで直すべ
> きか、が私には判断できないです。
strcasestr() は、すでにそういう機能を持っている関数として他のソフ
トウェア(wu-ftpd とか w3m とか、他にも特定の OS のライブラリにもあ
るのですか?)でも使われている以上、そのままの名前で勝手に場合分けす
るのはやっぱりあまり良くないようにもおもえます。
nmz_strcasestr() などと名前を変えて src/result.c から nmz/ 以下の
どっかのファイル(nmz/util.c とか) に分離・移動する方がいいかもしれ
ません。実際に、だいぶ以前はそうだったようです。
http://cvs.namazu.org/namazu/nmz/util.c#rev1.55 を見ればわかります。
nmz_strcasestr() の中では、当面は、nmz/{codeconv|re|search}.c とか
でやってるように、nmz_is_lang_ja() を使った場合分けをやるのがよさ
そうです。あるいは、
http://cvs.namazu.org/namazu/nmz/util.c.diff?r1=1.54&r2=1.55
で削った nmz_strcasestr() そのままでもよさそうにおもえます。ちょっ
とほげって試してみましたが、(もう少しちゃんと調べる方がいいとはお
もいますが)、とりあえずきちんと動作するような感じです。
# http://cvs.namazu.org/namazu/src/result.c.diff?r1=1.52&r2=1.53
# もやるほうがいいのかな。
nmz/util.c から src/result.c に移した(2000-01-31) 経緯がもう少しわ
かればこれでもいいんですが、このあたりは、安部さんいかがですか?
--
馬場 肇 ( Hajime BABA ) E-mail: hajime.baba@xxxxxxxxx
国立天文台 天文学データ解析計算センター
--