|
|
|
@ -1517,6 +1517,17 @@ sub esc_path {
@@ -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 {
@@ -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 |
|
|
|
|