>From 83042abf3967b455953cddeab43e33c1d59c6f03 Mon Sep 17 00:00:00 2001
From: Benjamin Close <Benjamin.Close@clearchain.com> Date: Sun, 2 Dec 2007 15:09:00 -0800 Subject: [PATCH] Gitweb: Fix encoding to always translate rather than sometimes fail
When performing the utf translation don't test if $res is defined. It appears that it is defined even when the conversion fails. This causes failures on the writing of the output stream which is expecting UTF.
Instead, immediately return if conversion is successful else force the translation to the fallback encoding --- gitweb/gitweb.perl | 8 ++------ 1 files changed, 2 insertions(+), 6 deletions(-)
diff --git a/gitweb/gitweb.perl b/gitweb/gitweb.perl index 491a3f4..00bbcdf 100755 --- a/gitweb/gitweb.perl +++ b/gitweb/gitweb.perl @@ -696,12 +696,8 @@ sub validate_refname { sub to_utf8 { my $str = shift; my $res; - eval { $res = decode_utf8($str, Encode::FB_CROAK); }; - if (defined $res) { - return $res; - } else { - return decode($fallback_encoding, $str, Encode::FB_DEFAULT); - } + eval { return ($res = decode_utf8($str, Encode::FB_CROAK)); }; + return decode($fallback_encoding, $str, Encode::FB_DEFAULT); } # quote unsafe chars, but keep the slash, even when it's not
-- 1.5.3.6