summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoey Hess <joey@gnu.kitenet.net>2009-10-09 13:07:50 -0400
committerJoey Hess <joey@gnu.kitenet.net>2009-10-09 13:07:50 -0400
commitf9f7a6e9f34b120504bb1dc238a3a627e9a8e3dc (patch)
treefb9329de21ca3e4bf4eb0dd6246f56ce80112c1f
parent769b78df078d0287a10166ce828941a491858ff2 (diff)
conditional: use pagespec_match_list
-rw-r--r--IkiWiki/Plugin/conditional.pm20
1 files changed, 7 insertions, 13 deletions
diff --git a/IkiWiki/Plugin/conditional.pm b/IkiWiki/Plugin/conditional.pm
index bc7b8974d..aad617812 100644
--- a/IkiWiki/Plugin/conditional.pm
+++ b/IkiWiki/Plugin/conditional.pm
@@ -31,8 +31,7 @@ sub preprocess_if (@) {
my $result=0;
if (! IkiWiki::yesno($params{all}) ||
# An optimisation to avoid needless looping over every page
- # and adding of dependencies for simple uses of some of the
- # tests.
+ # for simple uses of some of the tests.
$params{test} =~ /^([\s\!()]*((enabled|sourcepage|destpage|included)\([^)]*\)|(and|or))[\s\!()]*)+$/) {
add_depends($params{page}, "($params{test}) and $params{page}");
$result=pagespec_match($params{page}, $params{test},
@@ -41,17 +40,12 @@ sub preprocess_if (@) {
destpage => $params{destpage});
}
else {
- add_depends($params{page}, $params{test});
-
- foreach my $page (keys %pagesources) {
- if (pagespec_match($page, $params{test},
- location => $params{page},
- sourcepage => $params{page},
- destpage => $params{destpage})) {
- $result=1;
- last;
- }
- }
+ $result=pagespec_match_list($params{page}, $params{test},
+ # stop after first match
+ num => 1,
+ sourcepage => $params{page},
+ destpage => $params{destpage},
+ );
}
my $ret;