Namazu-devel-ja(旧)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: 全角文字のフレーズ検索のバグ
竹迫です。
>takesako@xxxxxxxxx wrote:
>>
>> この件ですが、寺西さんのパッチを当てていない namazu-2.0.12 で試したところ、
>> 環境変数 LANG の値によって、日本語のフレーズ検索が正常に動作したり・
>> しなかったりするようです。
〜略〜
>> まだ詳しくソースを追いかけていないのですが、
>> nmz/wakati.c の nmz_wakati に本質的なバグが
>> 潜んでいるのではないかと思っています。
>
>おそらくは区切りの '\t' を重複して連結することがあるのだと思います。
さきほど、ソースを追っかけてみました。
やはり、nmz_wakati の中で、'\t' を重複して連結していました。
nmz/wakati.c の nmz_wakati は、言語設定が日本語のときのみに
呼び出される関数なので、このような現象になっていたのだと思います。
一応、パッチを作ってみました。(まだ commit はしていません)
namazu-2.0.12-phrase.patch
---------------------------------------------------------------------------
diff -urN namazu-2.0.12-orig/nmz/wakati.c namazu-2.0.12/nmz/wakati.c
--- namazu-2.0.12-orig/nmz/wakati.c Tue Sep 11 16:59:39 2001
+++ namazu-2.0.12/nmz/wakati.c Mon Mar 24 19:26:56 2003
@@ -175,9 +175,13 @@
while(*(key + i) && !nmz_iseuc(*(key + i))) {
/* As an initial attempt always success,
outer 'for loop' can avoid infinite loop */
+ if (*(key + i) == '\t') {
+ nmz_chomp(buf);
+ }
strncat(buf, key + i, 1);
i++;
}
+ nmz_chomp(buf);
strcat(buf, "\t");
}
}
---------------------------------------------------------------------------
ご確認いただけると有難いです。
--
株式会社ドリーム・アーツ 製品企画開発本部
竹迫 良範 <takesako@xxxxxxxxxx>