Re: [PATCH] gitweb: Output valid utf8 in git_blame_common('data')
- From
Jakub Narebski <jnareb@gmail.com>
- Date
- Nov 29, 2011, 19:46 UTC
- Message-ID
- <m3d3calnip.fsf@localhost.localdomain>
- In-Reply-To
- <CAKD0Uuxq+wLdRy5r_hz9qgjHkDmFHHbeAVkb07HizX9xaGMptw@mail.gmail.com>
Jürgen Kreileder <jk@blackdown.de> writes:
Show 24 quoted lines
> With javascript-actions enabled gitweb showed broken author names in
> the tooltips on blame pages.
>
> Signed-off-by: Juergen Kreileder <jk@blackdown.de>
> ---
> 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