From: Kay Sievers Date: Mon, 14 Nov 2005 05:10:07 +0000 (+0100) Subject: make ' ' and '+' in filenames some kind of working X-Git-Tag: v1.4.0~1^2~42 X-Git-Url: https://git.verplant.org/?a=commitdiff_plain;h=182167100f707eda8ab543b1b36e19f777ebe67a;p=git.git make ' ' and '+' in filenames some kind of working --- diff --git a/gitweb.cgi b/gitweb.cgi index c477bf1b..1482fecb 100755 --- a/gitweb.cgi +++ b/gitweb.cgi @@ -144,7 +144,7 @@ sub validate_input { if ($input =~ m/(^|\/)(|\.|\.\.)($|\/)/) { return undef; } - if ($input =~ m/[^a-zA-Z0-9_\.\/\-\+\#\~]/) { + if ($input =~ m/[^a-zA-Z0-9_ \.\/\-\+\#\~]/) { return undef; } return $input; @@ -209,8 +209,8 @@ if (!defined $action || $action eq "summary") { sub esc { my $str = shift; - $str =~ s/ /\+/g; - $str =~ s/\+/%2b/g; + $str =~ s/ /%20/g; + $str =~ s/\+/%2B/g; return $str; } @@ -580,7 +580,7 @@ sub git_diff_print { close $fd; } - open my $fd, "-|", "/usr/bin/diff -u -p -L $from_name -L $to_name $from_tmp $to_tmp"; + open my $fd, "-|", "/usr/bin/diff -u -p -L \'$from_name\' -L \'$to_name\' $from_tmp $to_tmp"; if ($format eq "plain") { undef $/; print <$fd>; @@ -2029,7 +2029,7 @@ sub git_history { "\n"; print "
/$file_name
\n"; - open my $fd, "-|", "$gitbin/git-rev-list $hash | $gitbin/git-diff-tree -r --stdin $file_name"; + open my $fd, "-|", "$gitbin/git-rev-list $hash | $gitbin/git-diff-tree -r --stdin \'$file_name\'"; my $commit; print "\n"; my $alternate = 0;