diff options
author | Petr Baudis <pasky@suse.cz> | 2007-05-17 04:30:42 +0200 |
---|---|---|
committer | Junio C Hamano <junkio@cox.net> | 2007-05-17 17:37:31 -0700 |
commit | 4229aa5141b5d7716d283fa8625209b59398d7ba (patch) | |
tree | f86366320570485ca679c7ab2759076b6e26ff60 /gitweb | |
parent | e7738553723dcff0237b1aed2771886c8d87d224 (diff) | |
download | git-4229aa5141b5d7716d283fa8625209b59398d7ba.tar.gz |
gitweb: Allow arbitrary strings to be dug with pickaxe
Currently, there are rather draconian restrictions on the strings accepted
by the pickaxe search, which degrades its usefulness for digging in code
significantly. This patch remedies mentioned limitation.
Signed-off-by: Petr Baudis <pasky@suse.cz>
Signed-off-by: Junio C Hamano <junkio@cox.net>
Diffstat (limited to 'gitweb')
-rwxr-xr-x | gitweb/gitweb.perl | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/gitweb/gitweb.perl b/gitweb/gitweb.perl index cc16e3137e..7c136ec0d3 100755 --- a/gitweb/gitweb.perl +++ b/gitweb/gitweb.perl @@ -399,7 +399,7 @@ if (defined $searchtype) { our $searchtext = $cgi->param('s'); our $search_regexp; if (defined $searchtext) { - if ($searchtype ne 'grep' and $searchtext =~ m/[^a-zA-Z0-9_\.\/\-\+\:\@ ]/) { + if ($searchtype ne 'grep' and $searchtype ne 'pickaxe' and $searchtext =~ m/[^a-zA-Z0-9_\.\/\-\+\:\@ ]/) { die_error(undef, "Invalid search parameter"); } if (length($searchtext) < 2) { @@ -4725,8 +4725,10 @@ sub git_search { my $alternate = 1; $/ = "\n"; my $git_command = git_cmd_str(); + my $searchqtext = $searchtext; + $searchqtext =~ s/'/'\\''/; open my $fd, "-|", "$git_command rev-list $hash | " . - "$git_command diff-tree -r --stdin -S\'$searchtext\'"; + "$git_command diff-tree -r --stdin -S\'$searchqtext\'"; undef %co; my @files; while (my $line = <$fd>) { |