Christopher Durkin <cjdurkin@xxxxxxxxx> writes: > Add another item to the search drop-down (author/committer/etc) > to search for file names instead of file content. Output is similar > to the grep contents output, with each entry linking to the file. > --- Missing sign-off. > gitweb/gitweb.perl | 59 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ > 1 file changed, 59 insertions(+) > > diff --git a/gitweb/gitweb.perl b/gitweb/gitweb.perl > index f429f75..4a7b0a5 100755 > --- a/gitweb/gitweb.perl > +++ b/gitweb/gitweb.perl > @@ -6360,6 +6360,65 @@ sub git_search_grep_body { > print "</table>\n"; I think this file is indented with HT, not a single SP. > } > > +sub git_search_filenames { > + my %co = @_; ... nor four SP. One level of indent is a single HT. > + local $/ = "\n"; > + my $match_limit = 1000; > + > + open my $fd, "-|", git_cmd(), 'ls-tree', '--name-only', > '--full-name', '-r', Line-wrapped broken patch that cannot be applied (I see there are a few more similar ones below). > + $co{'tree'} or die_error(500, "Open git-ls-tree failed"); > + > + git_header_html(); > + > + git_print_page_nav('','', $hash,$co{'tree'},$hash); > + git_print_header_div('commit', esc_html($co{'title'}), $hash); > + > + print "<table class=\"filename_search\">\n"; > + my $matches = 0; > + my $alternate = 1; > + my $file_href; > + > + while (my $filename = <$fd>) { > + chomp $filename; > + > + if ($matches > $match_limit) { > + print "<div class=\"diff nodifferences\">Too many > matches, listing trimmed</div>\n"; > + last; > + } > + > + if ($search_use_regexp) { > + next unless ($filename =~ /$searchtext/); > + } else { > + next unless index($filename,$searchtext) >= 0; > + } > + > + $matches++; > + $file_href = href(action=>"blob", hash_base=>$co{'id'}, > + file_name=>$filename); > + > + if ($alternate) { > + print "<tr class=\"dark\">\n"; > + } else { > + print "<tr class=\"light\">\n"; > + } > + $alternate ^= 1; > + > + print "<td class=\"list\">". > + $cgi->a({-href => $file_href, -class => "list"}, > esc_path($filename)); > + print "</td>\n"; > + print "</tr>\n"; > + } > + > + if ($matches == 0) { > + print "<div class=\"diff nodifferences\">No matches found</div>\n"; > + } > + close $fd; > + > + print "</table>\n"; > + > + git_footer_html(); > +} > + > ## ====================================================================== > ## ====================================================================== > ## actions -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html