dist: new, linear addsrclinks
diff --git a/dist/addsrclinks b/dist/addsrclinks
index edaa3d4..ef73be7 100755
--- a/dist/addsrclinks
+++ b/dist/addsrclinks
@@ -4,8 +4,9 @@
 my $root = $ENV{'PLAN9'};
 my $html = join("", @_);
 $html =~ s;$root/;XXX$root/;g;
-while($html =~ /((.|\n)*)XXX($root\/([a-zA-Z0-9_.\/]|−)*[a-zA-Z0-9_\/])((.|\n)*)/){
-	($a, $b, $c) = ($1, $3, $5);
+$newhtml = "";
+while($html =~ /XXX($root\/([a-zA-Z0-9_.\/]|−)*[a-zA-Z0-9_\/])/){
+	($a, $b, $c) = ($`, $1, $');
 	$b =~ s/−/-/g;
 	$l = $b;
 	while(! -e $l){
@@ -19,6 +20,8 @@
 	$b = $l;
 	$b =~ s/-/\−/g;
 	$bb =~ s/-/\−/g;
-	$html = "$a<a href=\"$l\">$b</a>$bb$c";
+	$newhtml .= "$a<a href=\"$l\">$b</a>$bb";
+	$html = $c;
 }
-print $html;
+$newhtml .= $html;
+print $newhtml;