diff options
author | Max Kanat-Alexander <mkanat@bugzilla.org> | 2010-07-23 03:48:49 +0200 |
---|---|---|
committer | Max Kanat-Alexander <mkanat@bugzilla.org> | 2010-07-23 03:48:49 +0200 |
commit | 4518c70b3f058c88b5ff74798d44c95e3e8bd112 (patch) | |
tree | 5af51c36e4ede98238c586f516cd51bb5999d495 /Bugzilla/Search | |
parent | b1fa012bc8f89aa7a4a86cc2b7d97d68136358f7 (diff) | |
download | bugzilla-4518c70b3f058c88b5ff74798d44c95e3e8bd112.tar.gz bugzilla-4518c70b3f058c88b5ff74798d44c95e3e8bd112.tar.xz |
Bug 578494: When doing a QuickSearch on a phrase, pass the phrase quoted
to the fulltext engine, so that it knows it's a phrase.
r=LpSolit, a=mkanat
Diffstat (limited to 'Bugzilla/Search')
-rw-r--r-- | Bugzilla/Search/Quicksearch.pm | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/Bugzilla/Search/Quicksearch.pm b/Bugzilla/Search/Quicksearch.pm index df4383ef9..17a371c35 100644 --- a/Bugzilla/Search/Quicksearch.pm +++ b/Bugzilla/Search/Quicksearch.pm @@ -310,7 +310,7 @@ sub _handle_special_first_chars { if ($firstChar eq '#') { addChart('short_desc', 'substring', $baseWord, $negate); - addChart('content', 'matches', $baseWord, $negate); + addChart('content', 'matches', _matches_phrase($baseWord), $negate); return 1; } if ($firstChar eq ':') { @@ -470,7 +470,7 @@ sub _default_quicksearch_word { addChart('alias', 'substring', $word, $negate); addChart('short_desc', 'substring', $word, $negate); addChart('status_whiteboard', 'substring', $word, $negate); - addChart('content', 'matches', $word, $negate); + addChart('content', 'matches', _matches_phrase($word), $negate); } sub _handle_urls { @@ -522,6 +522,13 @@ sub splitString { return @parts; } +# Quote and escape a phrase appropriately for a "content matches" search. +sub _matches_phrase { + my ($phrase) = @_; + $phrase =~ s/"/\\"/g; + return "\"$phrase\""; +} + # Expand found prefixes to states or resolutions sub matchPrefixes { my $hr_states = shift; |