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>
This commit is contained in:
parent
f64d7fd267
commit
391862e345
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user