use Memoize;
memoize("abs2rel");
memoize("pagespec_translate");
-memoize("file_pruned");
memoize("template_file");
sub getsetup () {
}
if ($config{rcs}) {
- if (exists $IkiWiki::hooks{rcs}) {
+ if (exists $hooks{rcs}) {
error(gettext("cannot use multiple rcs plugins"));
}
loadplugin($config{rcs});
}
- if (! exists $IkiWiki::hooks{rcs}) {
+ if (! exists $hooks{rcs}) {
loadplugin("norcs");
}
return 1;
}
-sub file_pruned ($$) {
- require File::Spec;
- my $file=File::Spec->canonpath(shift);
- my $base=File::Spec->canonpath(shift);
- $file =~ s#^\Q$base\E/+##;
+sub file_pruned ($;$) {
+ my $file=shift;
+ if (@_) {
+ require File::Spec;
+ $file=File::Spec->canonpath($file);
+ my $base=File::Spec->canonpath(shift);
+ return if $file eq $base;
+ $file =~ s#^\Q$base\E/+##;
+ }
my $regexp='('.join('|', @{$config{wiki_file_prune_regexps}}).')';
- return $file =~ m/$regexp/ && $file ne $base;
+ return $file =~ m/$regexp/;
}
sub define_gettext () {
[^\s()]+ # any other text
)
\s* # ignore whitespace
- }igx) {
+ }gx) {
my $word=$1;
if (lc $word eq 'and') {
$code.=' &&';
else {
return IkiWiki::SuccessReason->new("$page links to page $p matching $link")
if match_glob($p, $link, %params);
- $p=~s/^\///;
+ my ($p_rel)=$p=~/^\/?(.*)/;
$link=~s/^\///;
- return IkiWiki::SuccessReason->new("$page links to page $p matching $link")
- if match_glob($p, $link, %params);
+ return IkiWiki::SuccessReason->new("$page links to page $p_rel matching $link")
+ if match_glob($p_rel, $link, %params);
}
}
return IkiWiki::FailReason->new("$page does not link to $link");