git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: Fix UTF Encoding issue

From
Wincent Colaiuta <win@wincent.com>
Date
Dec 4, 2007, 10:11 UTC
Message-ID
<8BED0A14-31F0-4288-B7A2-59B2CEE6DF97@wincent.com>
In-Reply-To
<200712041055.41593.ismail@pardus.org.tr>
El 4/12/2007, a las 9:55, Ismail Dönmez escribió:
Show 28 quoted lines
> Tuesday 04 December 2007 10:47:39 Ismail Dönmez yazmıştı:
>> Tuesday 04 December 2007 10:44:12 Martin Koegler yazmıştı:
>>> On Tue, Dec 04, 2007 at 10:33:39AM +0200, Ismail Dönmez wrote:
>>>> Following to_utf8 function works for me :
>>>
>>> For me too (Debian sarge+etch).
>>
>> Thanks for testing.
>
> Use Perl built-in utf8 function for UTF-8 decoding.
>
> Signed-off-by: İsmail Dönmez <ismail@pardus.org.tr>
>
> diff --git a/gitweb/gitweb.perl b/gitweb/gitweb.perl
> index ff5daa7..db255c1 100755
> --- a/gitweb/gitweb.perl
> +++ b/gitweb/gitweb.perl
> @@ -695,10 +695,9 @@ sub validate_refname {
> # in utf-8 thanks to "binmode STDOUT, ':utf8'" at beginning
> sub to_utf8 {
> 	my $str = shift;
> -	my $res;
> -	eval { $res = decode_utf8($str, Encode::FB_CROAK); };
> -	if (defined $res) {
> -		return $res;
> +        if (utf8::valid($str)) {
> +                utf8::decode($str);
> +                return $str;

This is good as it fixes another problem which some may have encountered. On at least one distro that I use (Red Hat Enterprise Linux 3) the Encode module is very old (it's 1.83; the latest release is 2.23), and so gitweb won't even run, dying during compilation with this:

	Too many arguments for Encode::decode_utf8 at gitweb.cgi line 686,  
near "Encode::FB_CROAK)"

Of course, the workaround is to install a newer version of the module, but this patch eliminates that dependency which is IMO a good thing.

Cheers, Wincent

Previous: Jakub Narebski
Message 24 of 24 in “Fix UTF Encoding issue”
  1. Benjamin CloseDec 3, 2007
  2. Junio C HamanoDec 3, 2007
  3. Ismail DönmezDec 3, 2007
  4. Jakub NarebskiDec 3, 2007
  5. Martin KoeglerDec 3, 2007
  6. Jakub NarebskiDec 3, 2007
  7. Benjamin CloseDec 3, 2007
  8. Ismail DönmezDec 3, 2007
  9. Benjamin CloseDec 3, 2007
  10. Jakub NarebskiDec 3, 2007
  11. Ismail DönmezDec 4, 2007
  12. Martin KoeglerDec 4, 2007
  13. Ismail DönmezDec 4, 2007
  14. Martin KoeglerDec 4, 2007
  15. Martin KoeglerDec 4, 2007
  16. Ismail DönmezDec 4, 2007
  17. Martin KoeglerDec 4, 2007
  18. Ismail DönmezDec 4, 2007
  19. Ismail DönmezDec 4, 2007
  20. Martin KoeglerDec 4, 2007
  21. Ismail DönmezDec 4, 2007
  22. Ismail DönmezDec 4, 2007
  23. Jakub NarebskiDec 4, 2007
  24. Wincent ColaiutaDec 4, 2007

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.