From 08325b4da66d71f6c31cb269138c2ee4f279e786 Mon Sep 17 00:00:00 2001 From: Giuseppe Bilotta Date: Fri, 13 Jan 2012 11:13:34 +0100 Subject: [PATCH] Propose patch to fix backlink(.) --- ...cklink__40__.__41___doesn__39__t_work.mdwn | 44 +++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/doc/bugs/backlink__40__.__41___doesn__39__t_work.mdwn b/doc/bugs/backlink__40__.__41___doesn__39__t_work.mdwn index ede1d2fe3..cb7f156bc 100644 --- a/doc/bugs/backlink__40__.__41___doesn__39__t_work.mdwn +++ b/doc/bugs/backlink__40__.__41___doesn__39__t_work.mdwn @@ -10,3 +10,47 @@ page): tested with 3.20120109. — [[Jon]] + +> The attached patch should fix it: + + + From 30512ac5f6a724bafb1095ab246e0648999f7b6c Mon Sep 17 00:00:00 2001 + From: Giuseppe Bilotta + Date: Fri, 13 Jan 2012 11:02:11 +0100 + Subject: [PATCH] backlink(.) should behave like backlink() + + 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) -- 2.39.5