Bug 14687: Patron's transaction history changes items' order after paying fines.
[koha-ffzg.git] / C4 / Dates.pm
index 6ed9588..9fe801a 100644 (file)
@@ -79,7 +79,7 @@ our @months = qw(Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec);
 
 our @days = qw(Sun Mon Tue Wed Thu Fri Sat);
 
-sub regexp {
+sub regexp ($;$) {
     my $self   = shift;
     my $delim  = qr/:?\:|\/|-/;                                                                  # "non memory" cluster: no backreference
     my $format = (@_) ? _recognize_format(shift) : ( $self->{'dateformat'} || _prefformat() );
@@ -97,15 +97,15 @@ sub regexp {
     return qr/^(\d{1,2})$delim(\d{1,2})$delim(\d{4})(?:\s{1}(\d{1,2})\:?(\d{1,2})\:?(\d{1,2}))?/;    # everything else
 }
 
-sub dmy_map {
+sub dmy_map ($$) {
     my $self    = shift;
-    my $val     = shift or return;
-    my $dformat = $self->{'dateformat'} or return;
+    my $val     = shift or return undef;
+    my $dformat = $self->{'dateformat'} or return undef;
     my $re      = $self->regexp();
     my $xsub    = $dmy_subs{$dformat};
     $debug and print STDERR "xsub: $xsub \n";
     if ( $val =~ /$re/ ) {
-        my $aref = eval {$xsub};
+        my $aref = eval $xsub;
         if ($dformat eq 'rfc822') {
             $aref = _abbr_to_numeric($aref, $dformat);
             pop(@{$aref}); #pop off tz offset because we are not setup to handle tz conversions just yet
@@ -123,9 +123,7 @@ sub dmy_map {
 sub _abbr_to_numeric {
     my $aref    = shift;
     my $dformat = shift;
-
-    my ($month_abbr, $day_abbr); # keep perlcritic happy ;)
-    ($month_abbr, $day_abbr) = ($aref->[4], $aref->[3]) if $dformat eq 'rfc822';
+    my ($month_abbr, $day_abbr) = ($aref->[4], $aref->[3]) if $dformat eq 'rfc822';
 
     for( my $i = 0; $i < scalar(@months); $i++ ) {
         if ( $months[$i] =~ /$month_abbr/ ) {
@@ -173,7 +171,7 @@ sub new {
     return $self->init(@_);
 }
 
-sub init {
+sub init ($;$$) {
     my $self = shift;
     my $dformat;
     $self->{'dateformat'} = $dformat = ( scalar(@_) >= 2 ) ? $_[1] : _prefformat();
@@ -183,27 +181,27 @@ sub init {
     return $self;
 }
 
-sub output {
+sub output ($;$) {
     my $self = shift;
     my $newformat = (@_) ? _recognize_format(shift) : _prefformat();
     return ( eval { POSIX::strftime( $posix_map{$newformat}, @{ $self->{'dmy_arrayref'} } ) } || undef );
 }
 
-sub today {    # NOTE: sets date value to today (and returns it in the requested or current format)
+sub today ($;$) {    # NOTE: sets date value to today (and returns it in the requested or current format)
     my $class = shift;
     $class = ref($class) || $class;
     my $format = (@_) ? _recognize_format(shift) : _prefformat();
     return $class->new()->output($format);
 }
 
-sub _recognize_format {
+sub _recognize_format($) {
     my $incoming = shift;
     ( $incoming eq 'syspref' ) and return _prefformat();
     ( scalar grep ( /^$incoming$/, keys %format_map ) == 1 ) or croak "The format you asked for ('$incoming') is unrecognized.";
     return $incoming;
 }
 
-sub DHTMLcalendar {    # interface to posix_map
+sub DHTMLcalendar ($;$) {    # interface to posix_map
     my $class = shift;
     my $format = (@_) ? shift : _prefformat();
     return $posix_map{$format};
@@ -281,7 +279,7 @@ date format unless otherwise instructed.
 With no argument, format returns the object's current date_format.  Otherwise it attempts to 
 set the object format to the supplied value.
 
-Some previously desireable functions are now unnecessary.  For example, you might want a 
+Some previously desirable functions are now unnecessary.  For example, you might want a
 method/function to tell you whether or not a Dates.pm object is of the 'iso' type.  But you 
 can see by this example that such a test is trivial to accomplish, and not necessary to 
 include in the module:
@@ -317,7 +315,7 @@ Or even:
 
 Perhaps you want to force data obtained in a known format to display according to the user's system
 preference, without necessarily knowing what that preference is.  For this purpose, you can use the
-psuedo-format argument "syspref".  
+pseudo-format argument "syspref".
 
 For example, to print an ISO date (from the database) in the <systempreference> format: