зеркало из https://github.com/microsoft/git.git
Merge branch 'jn/maint-gitweb-utf8-fix'
* jn/maint-gitweb-utf8-fix: gitweb: Fix fallback mode of to_utf8 subroutine gitweb: Output valid utf8 in git_blame_common('data') gitweb: esc_html() site name for title in OPML gitweb: Call to_utf8() on input string in chop_and_escape_str()
This commit is contained in:
Коммит
2b380d8191
|
@ -1443,8 +1443,8 @@ sub validate_refname {
|
|||
sub to_utf8 {
|
||||
my $str = shift;
|
||||
return undef unless defined $str;
|
||||
if (utf8::valid($str)) {
|
||||
utf8::decode($str);
|
||||
|
||||
if (utf8::is_utf8($str) || utf8::decode($str)) {
|
||||
return $str;
|
||||
} else {
|
||||
return decode($fallback_encoding, $str, Encode::FB_DEFAULT);
|
||||
|
@ -1696,6 +1696,7 @@ sub chop_and_escape_str {
|
|||
my ($str) = @_;
|
||||
|
||||
my $chopped = chop_str(@_);
|
||||
$str = to_utf8($str);
|
||||
if ($chopped eq $str) {
|
||||
return esc_html($chopped);
|
||||
} else {
|
||||
|
@ -6243,7 +6244,9 @@ sub git_blame_common {
|
|||
-type=>"text/plain", -charset => "utf-8",
|
||||
-status=> "200 OK");
|
||||
local $| = 1; # output autoflush
|
||||
print while <$fd>;
|
||||
while (my $line = <$fd>) {
|
||||
print to_utf8($line);
|
||||
}
|
||||
close $fd
|
||||
or print "ERROR $!\n";
|
||||
|
||||
|
@ -7862,11 +7865,12 @@ sub git_opml {
|
|||
-charset => 'utf-8',
|
||||
-content_disposition => 'inline; filename="opml.xml"');
|
||||
|
||||
my $title = esc_html($site_name);
|
||||
print <<XML;
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<opml version="1.0">
|
||||
<head>
|
||||
<title>$site_name OPML Export</title>
|
||||
<title>$title OPML Export</title>
|
||||
</head>
|
||||
<body>
|
||||
<outline text="git RSS feeds">
|
||||
|
|
Загрузка…
Ссылка в новой задаче