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;
|
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 {
|
sub quot_cec {
|
||||||
my $cntrl = shift;
|
my $cntrl = shift;
|
||||||
my %es = ( # character escape codes, aka escape sequences
|
my %es = ( # character escape codes, aka escape sequences
|
||||||
@ -605,22 +619,14 @@ sub quot_cec {
|
|||||||
return "<span class=\"cntrl\">$chr</span>";
|
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 {
|
sub quot_upr {
|
||||||
my $cntrl = shift;
|
my $cntrl = shift;
|
||||||
my $chr = sprintf('&#%04d;', 0x2400+ord($cntrl));
|
my $chr = sprintf('&#%04d;', 0x2400+ord($cntrl));
|
||||||
return "<span class=\"cntrl\">$chr</span>";
|
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
|
# git may return quoted and escaped filenames
|
||||||
sub unquote {
|
sub unquote {
|
||||||
my $str = shift;
|
my $str = shift;
|
||||||
|
Loading…
Reference in New Issue
Block a user