[open-ils-commits] [GIT] Evergreen ILS branch rel_2_10 updated. b6f977f633b478e401874c898727a97acc31ba16
Evergreen Git
git at git.evergreen-ils.org
Fri Apr 1 16:32:02 EDT 2016
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Evergreen ILS".
The branch, rel_2_10 has been updated
via b6f977f633b478e401874c898727a97acc31ba16 (commit)
from 0846df01f4892211347c2f42b20a836b1e0ec138 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit b6f977f633b478e401874c898727a97acc31ba16
Author: Mike Rylander <mrylander at gmail.com>
Date: Tue Mar 22 11:50:58 2016 -0400
LP#1373601: Consider relevant characters before using word-boundary checks
To perform unanchored phrase limits, we make sure that the phrase supplied
by the user does not end in the middle of a word by bounding the condition
with word-boundary bracket expresssions. However, if the phrase starts
or ends with a non-word character (that is, something other than numbers,
letters, or the underscore) then the word-boundary expression won't match.
The effect of this is to cause phrase searches starting or ending in
punctuation to fail when the user would not expect them to.
To address this, we now test the phrase for word-iness at the front and
back before applying word-boundary bracket expressions.
Signed-off-by: Mike Rylander <mrylander at gmail.com>
Signed-off-by: Kathy Lussier <klussier at masslnc.org>
diff --git a/Open-ILS/src/perlmods/lib/OpenILS/Application/Storage/Driver/Pg/QueryParser.pm b/Open-ILS/src/perlmods/lib/OpenILS/Application/Storage/Driver/Pg/QueryParser.pm
index f08b1e5..ea55769 100644
--- a/Open-ILS/src/perlmods/lib/OpenILS/Application/Storage/Driver/Pg/QueryParser.pm
+++ b/Open-ILS/src/perlmods/lib/OpenILS/Application/Storage/Driver/Pg/QueryParser.pm
@@ -85,15 +85,24 @@ sub quote_phrase_value {
my $left_anchored = '';
my $right_anchored = '';
+ my $left_wb = 0;
+ my $right_wb = 0;
+
$left_anchored = $1 if $value =~ m/^([*\^])/;
$right_anchored = $1 if $value =~ m/([*\$])$/;
+
+ # We can't use word-boundary bracket expressions if the relevant char
+ # is not actually a "word" characters.
+ $left_wb = $wb if $value =~ m/^\w+/;
+ $right_wb = $wb if $value =~ m/\w+$/;
+
$value =~ s/^[*\^]// if $left_anchored;
$value =~ s/[*\$]$// if $right_anchored;
$value = quotemeta($value);
$value = '^' . $value if $left_anchored eq '^';
$value = "$value\$" if $right_anchored eq '$';
- $value = '[[:<:]]' . $value if $wb && !$left_anchored;
- $value .= '[[:>:]]' if $wb && !$right_anchored;
+ $value = '[[:<:]]' . $value if $left_wb && !$left_anchored;
+ $value .= '[[:>:]]' if $right_wb && !$right_anchored;
return $self->quote_value($value);
}
-----------------------------------------------------------------------
Summary of changes:
.../Application/Storage/Driver/Pg/QueryParser.pm | 13 +++++++++++--
1 files changed, 11 insertions(+), 2 deletions(-)
hooks/post-receive
--
Evergreen ILS
More information about the open-ils-commits
mailing list