]> scripts.mit.edu Git - www/ikiwiki.git/blobdiff - IkiWiki.pm
pagespec_match_list: change limit to filter
[www/ikiwiki.git] / IkiWiki.pm
index fd7e2352474400c04eb7bdc4b4dd79746d570da6..49c76c4d4cb08901b6d102bd6e466ebb9f2f8a8c 100644 (file)
@@ -1792,7 +1792,7 @@ sub add_depends ($$;$) {
        #               $depends_simple{$page}{lc $i} |= $i{$i};
        #       }
        #}
-       print STDERR "warning: use of add_depends; influences not tracked\n";
+       print STDERR "warning: use of add_depends by ".caller()."; influences not tracked\n";
 
        $depends{$page}{$pagespec} |= $deptype;
        return 1;
@@ -1986,8 +1986,8 @@ sub pagespec_match_list ($$;@) {
                if $@ || ! defined $sub;
 
        my @candidates;
-       if (exists $params{limit}) {
-               @candidates=grep { $params{limit}->($_) } keys %pagesources;
+       if (exists $params{filter}) {
+               @candidates=grep { ! $params{filter}->($_) } keys %pagesources;
        }
        else {
                @candidates=keys %pagesources;
@@ -2019,21 +2019,25 @@ sub pagespec_match_list ($$;@) {
 
        @candidates=reverse(@candidates) if $params{reverse};
        
+       $depends{$page}{$pagespec} |= ($params{deptype} || $DEPEND_CONTENT);
+       
+       # clear params, remainder is passed to pagespec
+       my $num=$params{num};
+       delete @params{qw{num deptype reverse sort filter}};
+       
        my @matches;
        my $firstfail;
        my $count=0;
        foreach my $p (@candidates) {
-               my $r=$sub->($p, location => $page);
+               my $r=$sub->($p, %params, location => $page);
                if ($r) {
                        push @matches, [$p, $r];
-                       last if defined $params{num} && ++$count == $params{num};
+                       last if defined $num && ++$count == $num;
                }
                elsif (! defined $firstfail) {
                        $firstfail=$r;
                }
        }
-       
-       $depends{$page}{$pagespec} |= ($params{deptype} || $DEPEND_CONTENT);
 
        my @ret;
        if (@matches) {