Gunnar Wolf dijo [Wed, Jan 27, 2010 at 10:24:08AM -0600]:
> --- /usr/share/perl/5.10.1/Time/Local.pm      2009-11-21 13:30:05.000000000 
> -0600
> +++ /tmp/Local.pm                             2010-01-27 10:21:17.000000000 
> -0600
> @@ -177,7 +177,11 @@
>      my ( $s, $m, $h ) = localtime($loc_t);
>      $loc_t -= $dst_off if $s != $_[0] || $m != $_[1] || $h != $_[2];
>  
> -    return $loc_t;
> +    # Comparing two very-slightly-off readings of the clock yields a
> +    # difference of -0.027777 seconds. Timezones are integers, and
> +    # represent the number of seconds; round (don't truncate) the
> +    # result as values ending with '99' are not valid.
> +    return int($loc_t + 0.5); 
>  }
>  
>  sub timelocal_nocheck {

Please note that, talking this over with the pkg-perl group, it
becomes obvious that this fix (if it is to be favored) should be
applied some lines earlier, as there are several point where values
are returned before this. Possibly:

--- /usr/share/perl/5.10.1/Time/Local.pm        2009-11-21 13:30:05.000000000 
-0600
+++ /tmp/Local.pm                               2010-01-27 11:39:21.000000000 
-0600
@@ -146,8 +146,8 @@
 }
 
 sub timelocal {
-    my $ref_t = &timegm;
-    my $loc_for_ref_t = _timegm( localtime($ref_t) );
+    my $ref_t = int(&timegm + 0.5);
+    my $loc_for_ref_t = int(_timegm( localtime($ref_t) ) + 0.5);
 
     my $zone_off = $loc_for_ref_t - $ref_t
         or return $loc_for_ref_t;


Still, this will only hide the problem, not really fix it.

-- 
Gunnar Wolf • gw...@gwolf.org • (+52-55)5623-0154 / 1451-2244



--
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to