Allow add_depends to take an arrayref
authorSimon McVittie <smcv@ http://smcv.pseudorandom.co.uk/>
Mon, 24 Aug 2009 22:16:15 +0000 (23:16 +0100)
committerSimon McVittie <smcv@ http://smcv.pseudorandom.co.uk/>
Mon, 24 Aug 2009 23:31:24 +0000 (00:31 +0100)
IkiWiki.pm
IkiWiki/Plugin/calendar.pm
IkiWiki/Plugin/inline.pm
IkiWiki/Plugin/map.pm

index 21a74adceeb9ee87ab6d072cf5f17608d782032c..35fee1aa742aab8fbffb405afa82a7f759df6b9e 100644 (file)
@@ -1730,6 +1730,15 @@ sub add_depends ($$) {
        my $page=shift;
        my $pagespec=shift;
 
+       if (ref $pagespec eq 'ARRAY') {
+               foreach my $ps (@$pagespec) {
+                       if (pagespec_valid($ps)) {
+                               $depends{$page}{$ps} = 1;
+                       }
+               }
+               return;
+       }
+
        return unless pagespec_valid($pagespec);
 
        $depends{$page}{$pagespec} = 1;
index 5d16dff75ba7a98a68c3fc8c94d9d9378cb11732..ce0719404888a0bb43a59b99912a6cb2aad278dc 100644 (file)
@@ -212,9 +212,7 @@ EOF
        add_depends($params{page}, $params{pages});
        # Explicitly add all currently linked pages as dependencies, so
        # that if they are removed, the calendar will be sure to be updated.
-       foreach my $p (@list) {
-               add_depends($params{page}, $p);
-       }
+       add_depends($params{page}, \@list);
 
        return $calendar;
 }
index a501566b554d11cd1894878637aaf5d2204089d4..b566d960fe157699df2bac958a8c6b3ccd6edf75 100644 (file)
@@ -251,9 +251,7 @@ sub preprocess_inline (@) {
        # Explicitly add all currently displayed pages as dependencies, so
        # that if they are removed or otherwise changed, the inline will be
        # sure to be updated.
-       foreach my $p ($#list >= $#feedlist ? @list : @feedlist) {
-               add_depends($params{page}, $p);
-       }
+       add_depends($params{page}, $#list >= $#feedlist ? \@list : \@feedlist);
        
        if ($feeds && exists $params{feedpages}) {
                @feedlist=pagespec_match_list(\@feedlist, $params{feedpages}, location => $params{page});
index 54146dc467bdcb513e426257a6fd0879005cd35a..cc977024d07ccc37f89b2d533e88d99123ab4075 100644 (file)
@@ -73,9 +73,7 @@ sub preprocess (@) {
        add_depends($params{page}, $params{pages});
        # Explicitly add all currently shown pages, to detect when pages
        # are removed.
-       foreach my $item (keys %mapitems) {
-               add_depends($params{page}, $item);
-       }
+       add_depends($params{page}, [keys %mapitems]);
 
        # Create the map.
        my $parent="";