backlink(.) should behave like backlink(<current page>)
authorGiuseppe Bilotta <giuseppe.bilotta@gmail.com>
Fri, 13 Jan 2012 10:02:11 +0000 (11:02 +0100)
committerJoey Hess <joey@kitenet.net>
Fri, 13 Jan 2012 17:42:38 +0000 (13:42 -0400)
Since commit c4d4cad3befbbd444d094cbeb0b6ebba3910a025, the single dot in
a pagespec can be used to mean the current page. While this worked
correctly in link() it didn't work in backlink(). Fix this by explicitly
checking the testpage in backlink against . and replacing it with the
current location if necessary.

IkiWiki.pm

index 08e242a1f07de9e40bda8e91c521c69b9b7be0ba..bc56501dab4f733ca34adbb4e88dcce66e6c102e 100644 (file)
@@ -2647,8 +2647,14 @@ sub match_link ($$;@) {
 }
 
 sub match_backlink ($$;@) {
-       my $ret=match_link($_[1], $_[0], @_);
-       $ret->influences($_[1] => $IkiWiki::DEPEND_LINKS);
+       my $page=shift;
+       my $testpage=shift;
+       my %params=@_;
+       if ($testpage eq '.') {
+               $testpage = $params{'location'}
+       }
+       my $ret=match_link($testpage, $page, @_);
+       $ret->influences($testpage => $IkiWiki::DEPEND_LINKS);
        return $ret;
 }