aggregate: Avoid uninitialized value warnings for pages with no recorded ctime.
authorJoey Hess <joey@kodama.kitenet.net>
Thu, 25 Sep 2008 19:38:51 +0000 (15:38 -0400)
committerJoey Hess <joey@kodama.kitenet.net>
Thu, 25 Sep 2008 19:38:51 +0000 (15:38 -0400)
I saw this in the wild, apparently a page was not present on disk, but was
in the aggregate db, and not marked as expired either. Not sure how that
happened, but such pages should get marked as expired since they have an
effectively zero ctime.

IkiWiki/Plugin/aggregate.pm
debian/changelog

index 2b40625dbd70bb9fe0da0c271d365948a83619b8..07c557bcd5634bafb6e3b06fdf92067d2d65b61c 100644 (file)
@@ -420,11 +420,11 @@ sub expire () { #{{{
                next unless $feed->{expireage} || $feed->{expirecount};
                my $count=0;
                my %seen;
-               foreach my $item (sort { $IkiWiki::pagectime{$b->{page}} <=> $IkiWiki::pagectime{$a->{page}} }
+               foreach my $item (sort { ($IkiWiki::pagectime{$b->{page}} || 0) <=> ($IkiWiki::pagectime{$a->{page}} || 0) }
                                  grep { exists $_->{page} && $_->{feed} eq $feed->{name} }
                                  values %guids) {
                        if ($feed->{expireage}) {
-                               my $days_old = (time - $IkiWiki::pagectime{$item->{page}}) / 60 / 60 / 24;
+                               my $days_old = (time - ($IkiWiki::pagectime{$item->{page}} || 0) / 60 / 60 / 24;
                                if ($days_old > $feed->{expireage}) {
                                        debug(sprintf(gettext("expiring %s (%s days old)"),
                                                $item->{page}, int($days_old)));
index f3f30dc21da5c68d962fc096edd8fc68c503bc69..ff119a314287759154c59d1bafe5bbf57717ef52 100644 (file)
@@ -1,6 +1,8 @@
 ikiwiki (2.66) UNRELEASED; urgency=low
 
   * recentchanges: Fix redirects to non-page files. 
+  * aggregate: Avoid uninitialized value warnings for pages with no recorded
+    ctime.
 
  -- Joey Hess <joeyh@debian.org>  Thu, 25 Sep 2008 13:45:55 -0400