namazu-ml(ring)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
複数インデックス検索時の CHECKBOX
- From: Kazutaka SHIGENO <shigeno@xxxxxxxxxxxx>
- Date: Fri, 04 Jun 1999 00:25:41 +0900
重野@IIJ-MC です。
namazu 1.3.0.7 に bug らしきものを見付けましたので報告します。
複数インデックス検索時の結果で、以前チェックした CHECKBOX を
<LI><INPUT TYPE="CHECKBOX" NAME="dbname" VALUE="foo">foo
<LI><INPUT TYPE="CHECKBOX" NAME="dbname" VALUE="bar">bar
<LI><INPUT TYPE="CHECKBOX" NAME="dbname" VALUE="baz">baz
から、下記のように書き換える機能があります。
<LI><INPUT TYPE="CHECKBOX" NAME="dbname" VALUE="foo" CHECKBOX>foo
<LI><INPUT TYPE="CHECKBOX" NAME="dbname" VALUE="bar" CHECKBOX>bar
<LI><INPUT TYPE="CHECKBOX" NAME="dbname" VALUE="baz">baz
ところが、例えば下記のような CHECKBOX を作成して、
www-foo と bar を選択してて検索すると、
<LI><INPUT TYPE="CHECKBOX" NAME="dbname" VALUE="www-foo">www-foo
<LI><INPUT TYPE="CHECKBOX" NAME="dbname" VALUE="foo">bar
<LI><INPUT TYPE="CHECKBOX" NAME="dbname" VALUE="bar">bar
<LI><INPUT TYPE="CHECKBOX" NAME="dbname" VALUE="baz">baz
その検索結果の HTML は下記のようになります。(foo にも CHECKBOX が付く)
<LI><INPUT TYPE="CHECKBOX" NAME="dbname" VALUE="www-foo" CHECKBOX>www-foo
<LI><INPUT TYPE="CHECKBOX" NAME="dbname" VALUE="foo" CHECKBOX>bar
<LI><INPUT TYPE="CHECKBOX" NAME="dbname" VALUE="bar" CHECKBOX>bar
<LI><INPUT TYPE="CHECKBOX" NAME="dbname" VALUE="baz">baz
調べた所、form.c の check_checkbox() から呼び出される
str_backward_cmp() で foo と /usr/local/namazu/index/www-foo の
比較が発生し、二つが一致すると見なされるためのようです。
実際にこの問題に直面しましたので、以下の patch を作成して対処しています。
(win32 の部分はテストしていないです。)
--- form.c.orig Thu Jun 3 22:25:43 1999
+++ form.c Fri Jun 4 00:00:05 1999
@@ -176,6 +176,13 @@
return 1;
}
}
+#if defined(WIN32) || defined(OS2)
+ if (*q != '\\') {
+#else
+ if (*q != '/') {
+#endif
+ return 1;
+ }
return 0;
}
-- shigeno