From: Marcel de Rooy <[email protected]> Fixing the regex to detect index names in ccl queries. Changing loop structure: looping through the index candidates in the query is faster than testing every index name with a regex. Making the index comparison case insensitive will benefit users misspelling the case of an index; Zebra does not care about it. Test the change by searching on a word followed by a : or = character. Previously, when that word contained an index name like an or nb, the search would crash.
Signed-off-by: Frédéric Demians <[email protected]> --- C4/Search.pm | 15 +++++++-------- 1 files changed, 7 insertions(+), 8 deletions(-) diff --git a/C4/Search.pm b/C4/Search.pm index c3cff65..e16772d 100644 --- a/C4/Search.pm +++ b/C4/Search.pm @@ -1071,15 +1071,14 @@ sub buildQuery { my $stopwords_removed; # flag to determine if stopwords have been removed - my $cclq; + my $cclq=0; my $cclindexes = getIndexes(); - if( $query !~ /\s*ccl=/ ){ - for my $index (@$cclindexes){ - if($query =~ /($index)(,?\w)*[:=]/){ - $cclq = 1; - } - } - $query = "ccl=$query" if($cclq); + if( $query !~ /\s*ccl=/ ) { + while(!$cclq && $query=~/(?:^|\W)(\w+)(,\w+)*[:=]/g) { + my $dx=lc($1); + $cclq= grep {lc($_) eq $dx} @$cclindexes; + } + $query = "ccl=$query" if $cclq; } # for handling ccl, cql, pqf queries in diagnostic mode, skip the rest of the steps -- 1.7.6.1 _______________________________________________ Koha-patches mailing list [email protected] http://lists.koha-community.org/cgi-bin/mailman/listinfo/koha-patches website : http://www.koha-community.org/ git : http://git.koha-community.org/ bugs : http://bugs.koha-community.org/
