X-Git-Url: http://git.vanrenterghem.biz/git.ikiwiki.info.git/blobdiff_plain/93cd30bc0a882037ae2c65c8d6d3a9dc3d09c899..6993d1f905c35bbad415d3f60cde924da32e80a4:/IkiWiki.pm diff --git a/IkiWiki.pm b/IkiWiki.pm index 85d8eea68..d667e7e10 100644 --- a/IkiWiki.pm +++ b/IkiWiki.pm @@ -32,7 +32,6 @@ our $installdir='/usr'; # INSTALLDIR_AUTOREPLACE done by Makefile, DNE use Memoize; memoize("abs2rel"); memoize("pagespec_translate"); -memoize("file_pruned"); memoize("template_file"); sub getsetup () { @@ -544,12 +543,12 @@ sub loadplugins () { } 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"); } @@ -1770,14 +1769,18 @@ sub add_depends ($$) { 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 () { @@ -1870,7 +1873,7 @@ sub pagespec_translate ($) { [^\s()]+ # any other text ) \s* # ignore whitespace - }igx) { + }gx) { my $word=$1; if (lc $word eq 'and') { $code.=' &&'; @@ -2052,10 +2055,10 @@ sub match_link ($$;@) { 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");