Subject: Re: [PATCH] gitweb: Output valid utf8 in git_blame_common('data')

From: Jakub Narebski <[email-masked]>
Date: Tue, 29 Nov 2011 11:46:56 -0800 (PST)

Jürgen Kreileder <[email-masked]> writes:

> With javascript-actions enabled gitweb showed broken author names in
> the tooltips on blame pages.
> 
> Signed-off-by: Juergen Kreileder <[email-masked]>
> ---
>  gitweb/gitweb.perl |    4 +++-
>  1 files changed, 3 insertions(+), 1 deletions(-)
> 
> diff --git a/gitweb/gitweb.perl b/gitweb/gitweb.perl
> index 4f0c3bd..c863afe 100755
> --- a/gitweb/gitweb.perl
> +++ b/gitweb/gitweb.perl
> @@ -6107,7 +6107,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";
> 
> -- 

Thanks.  ACK.

BTW. all those troubles with not forgetting to call to_utf8() make me
wonder if we wouldn't be better to forget about supporting
$fallback_encoding and just put

  use open qw(:encoding(UTF-8) :std); 

at the beginning of gitweb, c.f. http://training.perl.com/OSCON2011/index.html

Or

  use open qw(:utf8 :std); 

though then we simply discard errors.

-- 
Jakub Narębski