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

2 messages from 2011-11-27 to 2011-11-29. Participants: Jürgen Kreileder, Jakub Narebski.
Thread: https://gitlist.dev/t/29031

## Jürgen Kreileder, 2011-11-27 23:52

Subject: [PATCH] gitweb: Output valid utf8 in git_blame_common('data')
Message-ID: <CAKD0Uuxq+wLdRy5r_hz9qgjHkDmFHHbeAVkb07HizX9xaGMptw@mail.gmail.com>
URL: https://gitlist.dev/e/CAKD0Uuxq%2BwLdRy5r_hz9qgjHkDmFHHbeAVkb07HizX9xaGMptw%40mail.gmail.com

```
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";

-- 
1.7.5.4

```

## Jakub Narebski, 2011-11-29 19:46

Subject: Re: [PATCH] gitweb: Output valid utf8 in git_blame_common('data')
Message-ID: <m3d3calnip.fsf@localhost.localdomain>
URL: https://gitlist.dev/e/m3d3calnip.fsf%40localhost.localdomain
In-Reply-To: <CAKD0Uuxq+wLdRy5r_hz9qgjHkDmFHHbeAVkb07HizX9xaGMptw@mail.gmail.com>

```
Jürgen Kreileder <jk@blackdown.de> writes:

> 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

```
