Thread (23 messages) flat view 23 messages, 6 authors, 2016-06-15

Re: Fix UTF Encoding issue

From: Ismail Dönmez <hidden>
Date: 2016-06-15 22:43:55

Possibly related (same subject, not in this thread)

Monday 03 December 2007 Tarihinde 12:14:43 yazmıştı:
Benjamin Close [off-list ref] writes:
quoted
quoted
From 83042abf3967b455953cddeab43e33c1d59c6f03 Mon Sep 17 00:00:00 2001
From: Benjamin Close <redacted>
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.
@@ -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);
 }
This is funny.

I thought the standard catch ... throw idiom in Perl was to do the above
like this:

	my $res;
        eval { $res = decode_utf8($str, Encode::FB_CROAK); };
        if ($@) {
        	return decode($fallback_encoding, $str, Encode::FB_DEFAULT);
	}
	return $res;
I think this is correct, but the current code in gitweb doesn't look correct 
since it checks for $res and not $@.

Regards,
ismail


-- 
Never learn by your mistakes, if you do you may never dare to try again.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help