summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon McVittie <smcv@ http://smcv.pseudorandom.co.uk/>2009-08-25 00:21:19 +0100
committerSimon McVittie <smcv@ http://smcv.pseudorandom.co.uk/>2009-08-25 00:31:24 +0100
commitdf8ab3406d67dd7d97fc45324ebb0e30c30dc9b0 (patch)
tree209cab326e6f32e7755dca316efdf77763451427
parent275dd5c4ea748261741236a62ad763c775a651c5 (diff)
use pagespec_match_list
-rw-r--r--IkiWiki/Render.pm20
1 files changed, 11 insertions, 9 deletions
diff --git a/IkiWiki/Render.pm b/IkiWiki/Render.pm
index b9f1d7754..fb28b6e3b 100644
--- a/IkiWiki/Render.pm
+++ b/IkiWiki/Render.pm
@@ -462,15 +462,17 @@ sub refresh () {
foreach my $d (keys %{$depends{$p}}) {
# only consider internal files
# if the page explicitly depends on such files
- foreach my $file (@changed, $d=~/internal\(/ ? @internal : ()) {
- next if $f eq $file;
- my $page=pagename($file);
- if (pagespec_match($page, $d, location => $p)) {
- debug(sprintf(gettext("building %s, which depends on %s"), $f, $page));
- render($f);
- $rendered{$f}=1;
- next F;
- }
+ my @pages = map {
+ pagename($_)
+ } grep {
+ $_ ne $f
+ } (@changed, $d =~ /internal\(/ ? @internal : ());
+ @pages = pagespec_match_list(\@pages, $d, location => $p);
+ if (@pages) {
+ debug(sprintf(gettext("building %s, which depends on %s"), $f, $pages[0]));
+ render($f);
+ $rendered{$f}=1;
+ next F;
}
}
}