diff options
author | Jakub Narebski <jnareb@gmail.com> | 2006-11-25 09:43:59 +0100 |
---|---|---|
committer | Junio C Hamano <junkio@cox.net> | 2006-11-25 01:45:26 -0800 |
commit | 391862e34571c0e7e88a5f6e84211b7b8bf55440 (patch) | |
tree | 90442bc391a36b188886292f366fe4b765f4fe0f /gitweb | |
parent | f64d7fd267c501f501e18a888e3e1e0c5b56458f (diff) | |
download | git-391862e34571c0e7e88a5f6e84211b7b8bf55440.tar.gz |
gitweb: Do not use esc_html in esc_path
Do not use esc_html in esc_path subroutine to avoid double quoting;
expand esc_html body (except quoting) in esc_path.
Move esc_path before quot_cec and quot_upr. Add some comments.
Signed-off-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>
Diffstat (limited to 'gitweb')
-rwxr-xr-x | gitweb/gitweb.perl | 28 |
1 files changed, 17 insertions, 11 deletions
diff --git a/gitweb/gitweb.perl b/gitweb/gitweb.perl index 6ae7e80351..38c94372f5 100755 --- a/gitweb/gitweb.perl +++ b/gitweb/gitweb.perl @@ -585,7 +585,21 @@ sub esc_html ($;%) { return $str; } -# Make control characterss "printable". +# quote control characters and escape filename to HTML +sub esc_path { + my $str = shift; + my %opts = @_; + + $str = to_utf8($str); + $str = escapeHTML($str); + if ($opts{'-nbsp'}) { + $str =~ s/ / /g; + } + $str =~ s|([[:cntrl:]])|quot_cec($1)|eg; + return $str; +} + +# Make control characters "printable", using character escape codes (CEC) sub quot_cec { my $cntrl = shift; my %es = ( # character escape codes, aka escape sequences @@ -605,22 +619,14 @@ sub quot_cec { return "<span class=\"cntrl\">$chr</span>"; } -# Alternatively use unicode control pictures codepoints. +# Alternatively use unicode control pictures codepoints, +# Unicode "printable representation" (PR) sub quot_upr { my $cntrl = shift; my $chr = sprintf('&#%04d;', 0x2400+ord($cntrl)); return "<span class=\"cntrl\">$chr</span>"; } -# quote control characters and escape filename to HTML -sub esc_path { - my $str = shift; - - $str = esc_html($str); - $str =~ s|([[:cntrl:]])|quot_cec($1)|eg; - return $str; -} - # git may return quoted and escaped filenames sub unquote { my $str = shift; |