]> sipb.mit.edu Git - ikiwiki.git/blobdiff - doc/bugs/backlink__40__.__41___doesn__39__t_work.mdwn
there is now a patch for this too, in my repo
[ikiwiki.git] / doc / bugs / backlink__40__.__41___doesn__39__t_work.mdwn
index 6ec53d5043d9c5ef5c88d267ccdd00ca8f78cf79..534e5a01f0e96b2493825208ee81ad1e3b12a7cb 100644 (file)
@@ -1,6 +1,57 @@
 It seems `backlink(.)` doesn't work, that is, it doesn't match pages linked
 to from the current page.
 
-[[!inline pages=test1 raw=true]]
+If I have two test pages, `foo`, which links to `bar`, then (on the `foo`
+page):
+
+ * backlink(foo) lists 'bar'
+ * backlink(.) lists nothing
+
+tested with 3.20120109.
 
 — [[Jon]]
+
+> The attached patch should fix it:
+
+>> [[applied|done]] thanks --[[Joey]] 
+
+    From 30512ac5f6a724bafb1095ab246e0648999f7b6c Mon Sep 17 00:00:00 2001
+    From: Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
+    Date: Fri, 13 Jan 2012 11:02:11 +0100
+    Subject: [PATCH] backlink(.) should behave like backlink(<current page>)
+    
+    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 |   10 ++++++++--
+     1 files changed, 8 insertions(+), 2 deletions(-)
+    
+    diff --git a/IkiWiki.pm b/IkiWiki.pm
+    index 08e242a..bc56501 100644
+    --- a/IkiWiki.pm
+    +++ b/IkiWiki.pm
+    @@ -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;
+     }
+     
+    -- 
+    1.7.8.rc2.253.gdbf3
+
+
+> (you need to re-make IkiWiki for it to work)