From 10b2ae520d269b051fccc1511cd1b3c162e65117 Mon Sep 17 00:00:00 2001
From: joey <joey@0fa5a96a-9a0e-0410-b3b2-a0fd24251071>
Date: Fri, 10 Mar 2006 07:27:11 +0000
Subject: [PATCH] pretty!

---
 ikiwiki | 16 ++++++++++++----
 1 file changed, 12 insertions(+), 4 deletions(-)

diff --git a/ikiwiki b/ikiwiki
index f42be3b01..72b1021ec 100755
--- a/ikiwiki
+++ b/ikiwiki
@@ -218,12 +218,20 @@ sub linkbacks ($$) {
 
 	my @links;
 	foreach my $p (keys %links) {
+		next if bestlink($page, $p) eq $page;
 		if (grep { length $_ && bestlink($p, $_) eq $page } @{$links{$p}}) {
 			my $href=File::Spec->abs2rel(htmlpage($p), dirname($page));
-			# TODO: if $p is joey/foo/bar and 
-			# the $page is joey/foo/baz, make the link text
-			# just be "bar".
-			push @links, "<a href=\"$href\">$p</a>";
+			
+			# Trim common dir prefixes from both pages.
+			my $p_trimmed=$p;
+			my $page_trimmed=$page;
+			my $dir;
+			1 while (($dir)=$page_trimmed=~m!^([^/]+/)!) &&
+			        defined $dir &&
+			        $p_trimmed=~s/^\Q$dir\E// &&
+			        $page_trimmed=~s/^\Q$dir\E//;
+				       
+			push @links, "<a href=\"$href\">$p_trimmed</a>";
 		}
 	}
 
-- 
2.39.5