- $sourcepage=$params{page};
- $destpage=$params{destpage};
- # An optimisation to avoid needless looping over every page
- # and adding of dependencies for simple uses of some of the
- # tests.
- if ($params{test} =~ /^(enabled|sourcepage|destpage)\((.*)\)$/) {
- $result=eval "IkiWiki::PageSpec::match_$1(undef, ".
- IkiWiki::safequote($2).")";
+ if (! IkiWiki::yesno($params{all}) ||
+ # An optimisation to avoid needless looping over every page
+ # 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},
+ location => $params{page},
+ sourcepage => $params{page},
+ destpage => $params{destpage});