From: Junio C Hamano Date: Mon, 20 Feb 2012 08:14:17 +0000 (-0800) Subject: Merge branch 'maint' X-Git-Tag: v1.7.10-rc0~76 X-Git-Url: https://git.lorimer.id.au/gitweb.git/diff_plain/2c8fb23ac73cf1e17245cb58ec429c0b209ab19e?hp=b0d66b5110faaeb395610ba43b6eb70a18ab5e25 Merge branch 'maint' * maint: Update draft release notes to 1.7.9.2 gitweb: Fix 'grep' search for multiple matches in file --- 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. diff --git a/gitweb/gitweb.perl b/gitweb/gitweb.perl index 3fc7380a5e..16d376075e 100755 --- a/gitweb/gitweb.perl +++ b/gitweb/gitweb.perl @@ -5915,9 +5915,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 0f771c673d..40a1cb571e 100755 --- a/t/t9500-gitweb-standalone-no-errors.sh +++ b/t/t9500-gitweb-standalone-no-errors.sh @@ -637,6 +637,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