Browse Source

gitweb: Fix file links in "grep" search

There were two bugs in generating file links (links to "blob" view),
one hidden by the other.  The correct way of generating file link is

	href(action=>"blob", hash_base=>$co{'id'},
	     file_name=>$file);

It was $co{'hash'} (this key does not exist, and therefore this is
undef), and 'hash' instead of 'hash_base'.

To have this fix applied in single place, this commit also reduces
code duplication by saving file link (which is used for line links) in
$file_href.

Reported-by: Thomas Perl <th.perl@gmail.com>
Signed-off-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
maint
Jakub Narebski 13 years ago committed by Junio C Hamano
parent
commit
ff7f2185d6
  1. 15
      gitweb/gitweb.perl

15
gitweb/gitweb.perl

@ -5715,7 +5715,7 @@ sub git_search_files { @@ -5715,7 +5715,7 @@ sub git_search_files {
my $lastfile = '';
while (my $line = <$fd>) {
chomp $line;
my ($file, $lno, $ltext, $binary);
my ($file, $file_href, $lno, $ltext, $binary);
last if ($matches++ > 1000);
if ($line =~ /^Binary file (.+) matches$/) {
$file = $1;
@ -5730,10 +5730,10 @@ sub git_search_files { @@ -5730,10 +5730,10 @@ sub git_search_files {
} else {
print "<tr class=\"light\">\n";
}
$file_href = href(action=>"blob", hash_base=>$co{'id'},
file_name=>$file);
print "<td class=\"list\">".
$cgi->a({-href => href(action=>"blob", hash=>$co{'hash'},
file_name=>"$file"),
-class => "list"}, esc_path($file));
$cgi->a({-href => $file_href, -class => "list"}, esc_path($file));
print "</td><td>\n";
$lastfile = $file;
}
@ -5751,10 +5751,9 @@ sub git_search_files { @@ -5751,10 +5751,9 @@ sub git_search_files {
$ltext = esc_html($ltext, -nbsp=>1);
}
print "<div class=\"pre\">" .
$cgi->a({-href => href(action=>"blob", hash=>$co{'hash'},
file_name=>"$file").'#l'.$lno,
-class => "linenr"}, sprintf('%4i', $lno))
. ' ' . $ltext . "</div>\n";
$cgi->a({-href => $file_href.'#l'.$lno,
-class => "linenr"}, sprintf('%4i', $lno)) .
' ' . $ltext . "</div>\n";
}
}
if ($lastfile) {

Loading…
Cancel
Save