]> sipb.mit.edu Git - ikiwiki.git/blobdiff - IkiWiki/Plugin/aggregate.pm
* Fix for missing backlinks() in pagestats plugin.
[ikiwiki.git] / IkiWiki / Plugin / aggregate.pm
index 46cd3102c5d5064f15229f0a2e3ab03f675e0c9f..7fceb0df3d54112478f25ab946477bd418416ee5 100644 (file)
@@ -233,7 +233,7 @@ sub aggregate () { #{{{
                $feed->{newposts}=0;
                $IkiWiki::forcerebuild{$feed->{sourcepage}}=1;
 
-               debug(sprintf(gettext("checking feed %s ..."), $feed->{name}));
+               debug(sprintf(gettext("checking feed %s ..."), $feed->{name}));
 
                if (! length $feed->{feedurl}) {
                        my @urls=XML::Feed->find_feeds($feed->{url});
@@ -270,7 +270,7 @@ sub aggregate () { #{{{
                        );
                }
 
-               $feed->{message}=sprintf(gettext("processed ok at "),
+               $feed->{message}=sprintf(gettext("processed ok at %s"),
                        displaytime($feed->{lastupdate}));
                $feed->{error}=0;
        }
@@ -310,6 +310,20 @@ sub add_page (@) { #{{{
                       -e pagefile($page.$c)) {
                        $c++
                }
+
+               # Make sure that the file name isn't too long. 
+               # NB: This doesn't check for path length limits.
+               eval q{use POSIX};
+               my $max=POSIX::pathconf($config{srcdir}, &POSIX::_PC_NAME_MAX);
+               if (defined $max && length(htmlpage($page)) >= $max) {
+                       $c="";
+                       $page=$feed->{dir}."/item";
+                       while (exists $IkiWiki::pagecase{lc $page.$c} ||
+                              -e pagefile($page.$c)) {
+                               $c++
+                       }
+               }
+
                $guid->{page}=$page;
                debug(sprintf(gettext("creating new page %s"), $page));
        }