X-Git-Url: https://git.deb.at/w?a=blobdiff_plain;f=lib%2FPackages%2FSearch.pm;h=6ae7d9722173de7bf89aa99ab37b7259d1c36b06;hb=5ac2b90beab477b44b863b2aa895e8fb3fedcd07;hp=64fa295d29498f8ef2071742478591c2855b0a88;hpb=3210a2b7d904e95b48ebbd84afa2bf1875544e8e;p=deb%2Fpackages.git diff --git a/lib/Packages/Search.pm b/lib/Packages/Search.pm index 64fa295..6ae7d97 100644 --- a/lib/Packages/Search.pm +++ b/lib/Packages/Search.pm @@ -442,26 +442,19 @@ sub do_fulltext_search { my ($keyword, $file, $did2pkg, $packages, $read_entry, $opts) = @_; my @results; +# NOTE: this needs to correspond with parse-packages! my @lines; - my $regex; - if ($opts->{case_bool}) { - if ($opts->{exact}) { - $regex = qr/\b\Q$keyword\E\b/o; - } else { - $regex = qr/\Q$keyword\E/o; - } - } else { - if ($opts->{exact}) { - $regex = qr/\b\Q$keyword\E\b/io; - } else { - $regex = qr/\Q$keyword\E/io; - } + $keyword =~ tr [A-Z] [a-z]; + if ($opts->{exact}) { + $keyword = " $keyword "; } + $keyword =~ s/[(),.-]+//og; + $keyword =~ s#[^a-z0-9_/+]+# #og; open DESC, '<', "$file" or die "couldn't open $file: $!"; while () { - $_ =~ $regex or next; + next if index $_, $keyword < 0; debug( "Matched line $.", 2); push @lines, $.; }