Package: mencal Version: 2.3-7 Severity: normal Tags: patch mencal does not account for daylight savings time when calculating the variable '$day' in the markdays() subroutine, resulting in fractional values for '$day', which breaks mencal if the start date and current date are in different daylight savings time states.
This may actually be due to changed behaviour in POSIX::mktime back in 2007, where mktime now sets isdst=-1 by default, instead of setting isdst=0 by default. The included patch fixes this problem simply by ensuring that '$day' is an integer. -- System Information: Debian Release: lenny/sid APT prefers testing APT policy: (500, 'testing') Architecture: i386 (i686) Kernel: Linux 2.6.24-1-686 (SMP w/2 CPU cores) Locale: LANG=C, LC_CTYPE=en_CA.iso8859-1 (charmap=ISO-8859-1) Shell: /bin/sh linked to /bin/bash Versions of packages mencal depends on: ii perl 5.10.0-11 Larry Wall's Practical Extraction mencal recommends no packages. -- no debconf information
--- /usr/bin/mencal 2006-07-29 17:57:14.000000000 -0600 +++ mencal 2008-07-03 15:26:01.000000000 -0600 @@ -184,7 +184,7 @@ sub markdays { my ($self, $begin, $end, $date, $length) = (shift, shift, shift, shift, shift); - my $day = ($date - $begin) / (24 * 3600) + 1; + my $day = int(($date - $begin) / (24 * 3600) + 1); my $limit = $date + $length; $limit = $end if ($end < $limit); while ($date < $limit) {