namazu-ml(avocado)


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

pnamazu bug



古川です。

pnamazu に、とんでもないバグがありました。それは、

    「foo and bar」とか「foo & bar」が、実はできていなかった

というものです。

単語の羅列形式

    foo bar

の and 検索は、ちゃんとできていたためか、今まで気がつきませんでした。


このバグが存在するのは、98.06.17 以降の版です。
また、それらの版でも、and 以外の or や not などの演算子は、正常です。


来週くらいに、新しい版を出そうかと思っていますが、とりあえず、パッチ
です。

------------------------------ ここから ------------------------------
*** operate.pl.orig	Thu Jun 11 23:45:00 1998
--- operate.pl	Thu Nov 12 19:46:04 1998
***************
*** 54,60 ****
                      $b = shift(@list);
                      %X = %$a;
                      %Y = %$b;
!                     if ($b eq 'and'){
                          &opAnd(*X, *Y);
                      }else{
                          &opNot(*X, *Y);
--- 54,60 ----
                      $b = shift(@list);
                      %X = %$a;
                      %Y = %$b;
!                     if ($& eq 'and'){
                          &opAnd(*X, *Y);
                      }else{
                          &opNot(*X, *Y);
------------------------------ ここまで ------------------------------

という、手パッチでも OK な修正です。要するに、operate.pl の中の、

        if ($b eq 'and'){

というところ (全ソース中でも、一ヶ所だけです) を

        if ($& eq 'and'){

にしていただければよいです。


または、羅列による and 検索はできるので、スクリプトの先頭で

        $ENV{'QUERY_STRING'} =~ s/\+(and|&)\+/\+/g;

としてもいいです。


以上、どうぞよろしくお願い致します。


# 先日、デパートに行ったら、CD ラジカセがあったのですが、その箱には
# 「CD ラヅカセ」と印刷されていました。
-- 

                                        ヤマハ(株)ピアノプレーヤ設計課
                                                              古川 令
                                             furukawa@xxxxxxxxxxxxxxxx