Merge branch 'jn/gitweb-highlite-sanitise'
* jn/gitweb-highlite-sanitise: gitweb: Strip non-printable characters from syntax highlighter outputmaint
						commit
						17e2b114a8
					
				|  | @ -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 New Issue
	
	 Junio C Hamano
						Junio C Hamano