aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--IkiWiki.pm4
-rw-r--r--debian/changelog2
-rwxr-xr-xt/pagespec_match.t5
3 files changed, 10 insertions, 1 deletions
diff --git a/IkiWiki.pm b/IkiWiki.pm
index 1aaa4d33c..dc9b66344 100644
--- a/IkiWiki.pm
+++ b/IkiWiki.pm
@@ -1901,6 +1901,10 @@ sub match_link ($$;@) { #{{{
else {
return IkiWiki::SuccessReason->new("$page links to page $p matching $link")
if match_glob($p, $link, %params);
+ $p=~s/^\///;
+ $link=~s/^\///;
+ return IkiWiki::SuccessReason->new("$page links to page $p matching $link")
+ if match_glob($p, $link, %params);
}
}
return IkiWiki::FailReason->new("$page does not link to $link");
diff --git a/debian/changelog b/debian/changelog
index 424c99ac4..6c068806c 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -7,6 +7,8 @@ ikiwiki (2.69) UNRELEASED; urgency=low
* meta: Plugin is now enabled by default since the basewiki uses it.
* txt: Do not encode quotes when filtering the txt, as that broke
later parsing of any directives on the page.
+ * Fix the link() pagespec to match links that are internally recorded as
+ absolute.
-- Joey Hess <joeyh@debian.org> Thu, 06 Nov 2008 16:01:00 -0500
diff --git a/t/pagespec_match.t b/t/pagespec_match.t
index c61d16122..7c0ac235b 100755
--- a/t/pagespec_match.t
+++ b/t/pagespec_match.t
@@ -1,7 +1,7 @@
#!/usr/bin/perl
use warnings;
use strict;
-use Test::More tests => 56;
+use Test::More tests => 58;
BEGIN { use_ok("IkiWiki"); }
@@ -40,6 +40,7 @@ $links{"bugs/bar"}=[qw{done}];
$links{"done"}=[];
$links{"examples/softwaresite/bugs/fails_to_frobnicate"}=[qw{done}];
$links{"examples/softwaresite/bugs/done"}=[];
+$links{"ook"}=[qw{/blog/tags/foo}];
ok(pagespec_match("foo", "link(bar)"), "link");
ok(pagespec_match("foo", "link(ba?)"), "glob link");
@@ -55,6 +56,8 @@ ok(pagespec_match("bar", "backlink(foo)"), "backlink");
ok(! pagespec_match("quux", "backlink(foo)"), "failed backlink");
ok(! pagespec_match("bar", ""), "empty pagespec should match nothing");
ok(! pagespec_match("bar", " "), "blank pagespec should match nothing");
+ok(pagespec_match("ook", "link(blog/tags/foo)"), "link internal absolute success");
+ok(pagespec_match("ook", "link(/blog/tags/foo)"), "link explicit absolute success");
$IkiWiki::pagectime{foo}=1154532692; # Wed Aug 2 11:26 EDT 2006
$IkiWiki::pagectime{bar}=1154532695; # after