Merge remote branch 'upstream/master' into prv/po
authorintrigeri <intrigeri@boum.org>
Fri, 25 Jun 2010 12:38:37 +0000 (14:38 +0200)
committerintrigeri <intrigeri@boum.org>
Fri, 25 Jun 2010 12:38:37 +0000 (14:38 +0200)
Conflicts:
IkiWiki/Plugin/po.pm

IkiWiki.pm
IkiWiki/Plugin/po.pm

index 35b38df46bbc4d71116c151688c34d982d24b34f..0457a6c611902c2ec3cfc326753596c8ec276f6f 100644 (file)
@@ -1074,6 +1074,13 @@ sub urlto ($$;$) {
        return beautify_urlpath($link);
 }
 
+sub isselflink ($$) {
+       my $page=shift;
+       my $link=shift;
+
+        return $page eq $link;
+}
+
 sub htmllink ($$$;@) {
        my $lpage=shift; # the page doing the linking
        my $page=shift; # the page that will contain the link (different for inline)
@@ -1099,7 +1106,7 @@ sub htmllink ($$$;@) {
        }
        
        return "<span class=\"selflink\">$linktext</span>"
-               if length $bestlink && $page eq $bestlink &&
+               if length $bestlink && isselflink($page, $bestlink) &&
                   ! defined $opts{anchor};
        
        if (! $destsources{$bestlink}) {
index 86d5087f474f7be108239e3fe79f0c27506cd6e9..3023fd7f938e423bc20b42a579004084f4a6d8a0 100644 (file)
@@ -64,6 +64,8 @@ sub import {
                inject(name => "IkiWiki::cgiurl", call => \&mycgiurl);
                $origsubs{'rootpage'}=\&IkiWiki::rootpage;
                inject(name => "IkiWiki::rootpage", call => \&myrootpage);
+               $origsubs{'isselflink'}=\&IkiWiki::isselflink;
+               inject(name => "IkiWiki::isselflink", call => \&myisselflink);
        }
 }
 
@@ -675,6 +677,17 @@ sub myrootpage (@) {
        return $rootpage;
 }
 
+sub myisselflink ($$) {
+       my $page=shift;
+       my $link=shift;
+
+       return 1 if $origsubs{'isselflink'}->($page, $link);
+       if (istranslation($page)) {
+               return $origsubs{'isselflink'}->(masterpage($page), $link);
+        }
+       return;
+}
+
 # ,----
 # | Blackboxes for private data
 # `----