This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Update core to Time::Local 1.2300 from CPAN
authorDave Rolsky <autarch@urth.org>
Fri, 20 Jul 2012 16:28:07 +0000 (11:28 -0500)
committerDave Rolsky <autarch@urth.org>
Tue, 24 Jul 2012 14:08:23 +0000 (09:08 -0500)
cpan/Time-Local/lib/Time/Local.pm
cpan/Time-Local/t/Local.t

index 0e9c4ac..ecdedef 100644 (file)
@@ -6,7 +6,7 @@ use Config;
 use strict;
 
 use vars qw( $VERSION @ISA @EXPORT @EXPORT_OK );
-$VERSION   = '1.2000';
+$VERSION   = '1.2300';
 
 @ISA       = qw( Exporter );
 @EXPORT    = qw( timegm timelocal );
@@ -109,14 +109,14 @@ sub timegm {
             if $month > 11
             or $month < 0;
 
-       my $md = $MonthDays[$month];
+    my $md = $MonthDays[$month];
         ++$md
             if $month == 1 && _is_leap_year( $year + 1900 );
 
         croak "Day '$mday' out of range 1..$md"  if $mday > $md or $mday < 1;
         croak "Hour '$hour' out of range 0..23"  if $hour > 23  or $hour < 0;
         croak "Minute '$min' out of range 0..59" if $min > 59   or $min < 0;
-        croak "Second '$sec' out of range 0..59" if $sec > 59   or $sec < 0;
+        croak "Second '$sec' out of range 0..59" if $sec >= 60  or $sec < 0;
     }
 
     my $days = _daygm( undef, undef, undef, $mday, $month, $year );
@@ -125,10 +125,10 @@ sub timegm {
         my $msg = '';
         $msg .= "Day too big - $days > $MaxDay\n" if $days > $MaxDay;
 
-       $year += 1900;
+        $year += 1900;
         $msg .=  "Cannot handle date ($sec, $min, $hour, $mday, $month, $year)";
 
-       croak $msg;
+        croak $msg;
     }
 
     return $sec
@@ -201,8 +201,8 @@ Time::Local - efficiently compute time from local and GMT time
 
 =head1 SYNOPSIS
 
-    $time = timelocal($sec,$min,$hour,$mday,$mon,$year);
-    $time = timegm($sec,$min,$hour,$mday,$mon,$year);
+    $time = timelocal( $sec, $min, $hour, $mday, $mon, $year );
+    $time = timegm( $sec, $min, $hour, $mday, $mon, $year );
 
 =head1 DESCRIPTION
 
@@ -239,7 +239,7 @@ C<timegm_nocheck()>. These variants must be explicitly imported.
     use Time::Local 'timelocal_nocheck';
 
     # The 365th day of 1999
-    print scalar localtime timelocal_nocheck 0,0,0,365,0,99;
+    print scalar localtime timelocal_nocheck( 0, 0, 0, 365, 0, 99 );
 
 If you supply data which is not valid (month 27, second 1,000) the
 results will be unpredictable (so don't do that).
index 521cac0..472e71a 100644 (file)
@@ -1,9 +1,10 @@
 #!./perl
 
 use strict;
+use warnings;
 
 use Config;
-use Test::More;
+use Test::More 0.88;
 use Time::Local;
 
 # Set up time values to test
@@ -24,6 +25,9 @@ my @time =
 # so it is commented out. The end of the Epoch for a 32-bit signed
 # implementation of time_t should be Jan 19, 2038  03:14:07 UTC.
 #  [2038,  1, 17, 23, 59, 59],     # last full day in any tz
+
+   [2010, 10, 12, 14, 13, 12.1],
+   [2010, 10, 12, 14, 13, 59.1],
   );
 
 # more than 2**31 time_t - requires a 64bit safe localtime/gmtime
@@ -74,14 +78,6 @@ if ($^O eq 'VMS') {
 
 my $epoch_is_64 = eval { $Config{ivsize} == 8 && ( gmtime 2**40 )[5] == 34912 };
 
-my $tests = (@time * 12);
-$tests += @neg_time * 12;
-$tests += @bad_time;
-$tests += @years;
-$tests += 21;
-
-plan tests => $tests;
-
 for (@time, @neg_time) {
     my($year, $mon, $mday, $hour, $min, $sec) = @$_;
     $year -= 1900;
@@ -100,7 +96,7 @@ for (@time, @neg_time) {
 
             my($s,$m,$h,$D,$M,$Y) = localtime($time);
 
-            is($s, $sec, "timelocal second for @$_");
+            is($s, int($sec), "timelocal second for @$_");
             is($m, $min, "timelocal minute for @$_");
             is($h, $hour, "timelocal hour for @$_");
             is($D, $mday, "timelocal day for @$_");
@@ -116,7 +112,7 @@ for (@time, @neg_time) {
 
             my($s,$m,$h,$D,$M,$Y) = gmtime($time);
 
-            is($s, $sec, "timegm second for @$_");
+            is($s, int($sec), "timegm second for @$_");
             is($m, $min, "timegm minute for @$_");
             is($h, $hour, "timegm hour for @$_");
             is($D, $mday, "timegm day for @$_");
@@ -265,3 +261,5 @@ SKIP:
     is( ( localtime( timelocal( 0, 0, 2, 27, 2, 2005 ) ) )[2], 2,
         'hour is 2 when given 2:00 AM on Europe/London date change' );
 }
+
+done_testing();