if (length $escape) {
return "[[$command $params]]";
}
- elsif (exists $plugins{preprocess}{$command}) {
+ elsif (exists $hooks{preprocess}{$command}) {
my %params;
while ($params =~ /(\w+)=\"([^"]+)"(\s+|$)/g) {
$params{$1}=$2;
}
- return $plugins{preprocess}{$command}->(page => $page, %params);
+ return $hooks{preprocess}{$command}{call}->(page => $page, %params);
}
else {
return "[[$command not processed]]";
$depends{$page}=$globlist;
}
else {
- $depends{$page}.=" ".$globlist;
+ $depends{$page}=globlist_merge($depends{$page}, $globlist);
}
} # }}}
+sub globlist_merge ($$) { #{{{
+ my $a=shift;
+ my $b=shift;
+
+ my $ret="";
+ # Only add negated globs if they are not matched by the other globlist.
+ foreach my $i ((map { [ $a, $_ ] } split(" ", $b)),
+ (map { [ $b, $_ ] } split(" ", $a))) {
+ if ($i->[1]=~/^!(.*)/) {
+ if (! globlist_match($1, $i->[0])) {
+ $ret.=" ".$i->[1];
+ }
+ }
+ else {
+ $ret.=" ".$i->[1];
+ }
+ }
+
+ return $ret;
+} #}}}
+
sub genpage ($$$) { #{{{
my $content=shift;
my $page=shift;