From fa010e4ef31b26a900179bdc3e204ca535620c60 Mon Sep 17 00:00:00 2001 From: Marcel de Rooy Date: Fri, 3 Jul 2015 11:02:22 +0200 Subject: [PATCH] Bug 14382: [QA Follow-up] Bad regex alarm Content-Type: text/plain; charset=utf-8 The regex /|date>>/ will match much more than you like :) The unescaped pipe is bad, but you also need to remove the >> because the split a few lines above it removes them already. This allows you to recover from an error like this one, running another report with a string parameter: The given date (india%) does not match the date format (us) at Koha/DateUtils.pm line 144. Signed-off-by: Marcel de Rooy Amended for possible spaces around the word date. --- reports/guided_reports.pl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/reports/guided_reports.pl b/reports/guided_reports.pl index 25d9929..0cee490 100755 --- a/reports/guided_reports.pl +++ b/reports/guided_reports.pl @@ -754,7 +754,7 @@ elsif ($phase eq 'Run this report'){ my $quoted = $sql_params[$i]; # if there are special regexp chars, we must \ them $split[$i*2+1] =~ s/(\||\?|\.|\*|\(|\)|\%)/\\$1/g; - if ($split[$i*2+1] =~ /|date>>/) { + if ($split[$i*2+1] =~ /\|\s*date\s*$/) { $quoted = output_pref({ dt => dt_from_string($quoted), dateformat => 'iso', dateonly => 1 }) if $quoted; } $quoted = C4::Context->dbh->quote($quoted); -- 1.7.10.4