Bug 11474: Remove errors caused by use of given/when statement
authorColin Campbell <colin.campbell@ptfs-europe.com>
Fri, 3 Jan 2014 10:47:23 +0000 (10:47 +0000)
committerGalen Charlton <gmc@esilibrary.com>
Mon, 6 Jan 2014 05:46:28 +0000 (05:46 +0000)
This patch replaces a given/when statement by an if so we
do not get warnings on compilation when using Perl 5.18 or later.

Note the perldoc for the subroutine was not correct;
code was not testing that paramater equalled the values
but that it contained them. Have amended accordingly

Have documented behaviour in case parameter contains
neither value.

Subroutine does not appear to me used elsewhere in
codebase

Signed-off-by: Chris Cormack <chris@bigballofwax.co.nz>
Signed-off-by: Katrin Fischer <Katrin.Fischer.83@web.de>
Passes all tests and QA script, especially t/DateUtils.t.

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
C4/Utils/DataTables.pm

index d658090..37dff72 100644 (file)
@@ -266,19 +266,19 @@ sub dt_build_query_dates {
 
     It calls dt_build_query_dates or dt_build_query_simple fonction of $type.
 
-    $type can be 'simple' or 'rage_dates'.
+    $type can contain 'simple' or 'rage_dates'.
+    if $type is not matched it returns undef
 
 =cut
 sub dt_build_query {
     my ( $type, @params ) = @_;
-    given ( $type ) {
-        when ( /simple/ ) {
-            return dt_build_query_simple( @params );
-        }
-        when ( /range_dates/ ) {
-            return dt_build_query_dates( @params );
-        }
+    if ( $type =~ m/simple/ ) {
+        return dt_build_query_simple(@params);
+    }
+    elsif ( $type =~ m/range_dates/ ) {
+        return dt_build_query_dates(@params);
     }
+    return;
 }
 
 1;