From fc8fcd27e67ad06689a823dd83a929624e359cc1 Mon Sep 17 00:00:00 2001 From: Jakub Narebski Date: Wed, 15 Feb 2012 17:37:06 +0100 Subject: gitweb: Fix 'grep' search for multiple matches in file Commit ff7f218 (gitweb: Fix file links in "grep" search, 2012-01-05), added $file_href variable, to reduce duplication and have the fix applied in single place. Unfortunately it made variable defined inside the loop, not taking into account the fact that $file_href was set only if file changed. Therefore for files with multiple matches $file_href was undefined for second and subsequent matches. Fix this bug by moving $file_href declaration outside loop. Adds tests for almost all forms of sarch in gitweb, which were missing from testuite. Note that it only tests if there are no warnings, and it doesn't check that gitweb finds what it should find. Signed-off-by: Jakub Narebski Signed-off-by: Junio C Hamano --- gitweb/gitweb.perl | 3 ++- t/t9500-gitweb-standalone-no-errors.sh | 39 ++++++++++++++++++++++++++++++++++ 2 files changed, 41 insertions(+), 1 deletion(-) diff --git a/gitweb/gitweb.perl b/gitweb/gitweb.perl index 6cfe8d932d..c876e0fb4e 100755 --- a/gitweb/gitweb.perl +++ b/gitweb/gitweb.perl @@ -5850,9 +5850,10 @@ sub git_search_files { my $alternate = 1; my $matches = 0; my $lastfile = ''; + my $file_href; while (my $line = <$fd>) { chomp $line; - my ($file, $file_href, $lno, $ltext, $binary); + my ($file, $lno, $ltext, $binary); last if ($matches++ > 1000); if ($line =~ /^Binary file (.+) matches$/) { $file = $1; diff --git a/t/t9500-gitweb-standalone-no-errors.sh b/t/t9500-gitweb-standalone-no-errors.sh index ab24917812..3e4fdbe562 100755 --- a/t/t9500-gitweb-standalone-no-errors.sh +++ b/t/t9500-gitweb-standalone-no-errors.sh @@ -629,6 +629,45 @@ test_expect_success \ 'config override: tree view, features enabled in repo config (2)' \ 'gitweb_run "p=.git;a=tree"' +# ---------------------------------------------------------------------- +# searching + +cat >>gitweb_config.perl <<\EOF + +# enable search +$feature{'search'}{'default'} = [1]; +$feature{'grep'}{'default'} = [1]; +$feature{'pickaxe'}{'default'} = [1]; +EOF + +test_expect_success \ + 'search: preparation' \ + 'echo "1st MATCH" >>file && + echo "2nd MATCH" >>file && + echo "MATCH" >>bar && + git add file bar && + git commit -m "Added MATCH word"' + +test_expect_success \ + 'search: commit author' \ + 'gitweb_run "p=.git;a=search;h=HEAD;st=author;s=A+U+Thor"' + +test_expect_success \ + 'search: commit message' \ + 'gitweb_run "p=.git;a=search;h=HEAD;st=commitr;s=MATCH"' + +test_expect_success \ + 'search: grep' \ + 'gitweb_run "p=.git;a=search;h=HEAD;st=grep;s=MATCH"' + +test_expect_success \ + 'search: pickaxe' \ + 'gitweb_run "p=.git;a=search;h=HEAD;st=pickaxe;s=MATCH"' + +test_expect_success \ + 'search: projects' \ + 'gitweb_run "a=project_list;s=.git"' + # ---------------------------------------------------------------------- # non-ASCII in README.html -- cgit v1.2.1 From 233054d114b0d68cf58d18f4c7ddd7723c08b24f Mon Sep 17 00:00:00 2001 From: Junio C Hamano Date: Mon, 20 Feb 2012 00:14:00 -0800 Subject: Update draft release notes to 1.7.9.2 Signed-off-by: Junio C Hamano --- Documentation/RelNotes/1.7.9.2.txt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Documentation/RelNotes/1.7.9.2.txt b/Documentation/RelNotes/1.7.9.2.txt index 5dd06f2177..3f9467eb89 100644 --- a/Documentation/RelNotes/1.7.9.2.txt +++ b/Documentation/RelNotes/1.7.9.2.txt @@ -24,4 +24,7 @@ Fixes since v1.7.9.1 * Search box in "gitweb" did not accept non-ASCII characters correctly. +* Search interface of "gitweb" did not show multiple matches in the same file + correctly. + Also contains minor fixes and documentation updates. -- cgit v1.2.1