mirror of
https://github.com/git/git
synced 2024-08-27 11:39:22 +00:00
Merge branch 'jn/gitweb-highlite-sanitise' into maint
* jn/gitweb-highlite-sanitise: gitweb: Strip non-printable characters from syntax highlighter output
This commit is contained in:
commit
25f745fbec
|
@ -1517,6 +1517,17 @@ sub esc_path {
|
|||
return $str;
|
||||
}
|
||||
|
||||
# Sanitize for use in XHTML + application/xml+xhtm (valid XML 1.0)
|
||||
sub sanitize {
|
||||
my $str = shift;
|
||||
|
||||
return undef unless defined $str;
|
||||
|
||||
$str = to_utf8($str);
|
||||
$str =~ s|([[:cntrl:]])|($1 =~ /[\t\n\r]/ ? $1 : quot_cec($1))|eg;
|
||||
return $str;
|
||||
}
|
||||
|
||||
# Make control characters "printable", using character escape codes (CEC)
|
||||
sub quot_cec {
|
||||
my $cntrl = shift;
|
||||
|
@ -6484,7 +6495,8 @@ sub git_blob {
|
|||
$nr++;
|
||||
$line = untabify($line);
|
||||
printf qq!<div class="pre"><a id="l%i" href="%s#l%i" class="linenr">%4i</a> %s</div>\n!,
|
||||
$nr, esc_attr(href(-replay => 1)), $nr, $nr, $syntax ? to_utf8($line) : esc_html($line, -nbsp=>1);
|
||||
$nr, esc_attr(href(-replay => 1)), $nr, $nr,
|
||||
$syntax ? sanitize($line) : esc_html($line, -nbsp=>1);
|
||||
}
|
||||
}
|
||||
close $fd
|
||||
|
|
Loading…
Reference in a new issue