From 847abc0f2a8d57bf4c1f13e948995491b6bc6f58 Mon Sep 17 00:00:00 2001
From: Yasushi SHOJI <yashi@atmark-techno.com>
Date: Mon, 2 Oct 2006 06:21:33 +0900
Subject: [PATCH] gitweb: refactor decode() for utf8 conversion

we already had a few place using decode() to convert perl internal
encode to utf8.  added a new thin wrapper to do just that.

Signed-off-by: Yasushi SHOJI <yashi@atmark-techno.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>
---
 gitweb/gitweb.perl | 20 +++++++++++++-------
 1 file changed, 13 insertions(+), 7 deletions(-)

diff --git a/gitweb/gitweb.perl b/gitweb/gitweb.perl
index 332006917..3cc0e965f 100755
--- a/gitweb/gitweb.perl
+++ b/gitweb/gitweb.perl
@@ -443,6 +443,12 @@ sub validate_refname {
 	return $input;
 }
 
+# very thin wrapper for decode("utf8", $str, Encode::FB_DEFAULT);
+sub to_utf8 {
+	my $str = shift;
+	return decode("utf8", $str, Encode::FB_DEFAULT);
+}
+
 # quote unsafe chars, but keep the slash, even when it's not
 # correct, but quoted slashes look too horrible in bookmarks
 sub esc_param {
@@ -465,7 +471,7 @@ sub esc_url {
 # replace invalid utf8 character with SUBSTITUTION sequence
 sub esc_html {
 	my $str = shift;
-	$str = decode("utf8", $str, Encode::FB_DEFAULT);
+	$str = to_utf8($str);
 	$str = escapeHTML($str);
 	$str =~ s/\014/^L/g; # escape FORM FEED (FF) character (e.g. in COPYING file)
 	$str =~ s/\033/^[/g; # "escape" ESCAPE (\e) character (e.g. commit 20a3847d8a5032ce41f90dcc68abfb36e6fee9b1)
@@ -668,7 +674,7 @@ sub format_subject_html {
 
 	if (length($short) < length($long)) {
 		return $cgi->a({-href => $href, -class => "list subject",
-		                -title => decode("utf8", $long, Encode::FB_DEFAULT)},
+		                -title => to_utf8($long)},
 		       esc_html($short) . $extra);
 	} else {
 		return $cgi->a({-href => $href, -class => "list subject"},
@@ -845,7 +851,7 @@ sub git_get_projects_list {
 			    -e "$projectroot/$path/$export_ok")) {
 				my $pr = {
 					path => $path,
-					owner => decode("utf8", $owner, Encode::FB_DEFAULT),
+					owner => to_utf8($owner),
 				};
 				push @list, $pr
 			}
@@ -874,7 +880,7 @@ sub git_get_project_owner {
 			$pr = unescape($pr);
 			$ow = unescape($ow);
 			if ($pr eq $project) {
-				$owner = decode("utf8", $ow, Encode::FB_DEFAULT);
+				$owner = to_utf8($ow);
 				last;
 			}
 		}
@@ -1236,7 +1242,7 @@ sub get_file_owner {
 	}
 	my $owner = $gcos;
 	$owner =~ s/[,;].*$//;
-	return decode("utf8", $owner, Encode::FB_DEFAULT);
+	return to_utf8($owner);
 }
 
 ## ......................................................................
@@ -3589,7 +3595,7 @@ XML
 		      "<![CDATA[\n";
 		my $comment = $co{'comment'};
 		foreach my $line (@$comment) {
-			$line = decode("utf8", $line, Encode::FB_DEFAULT);
+			$line = to_utf8($line);
 			print "$line<br/>\n";
 		}
 		print "<br/>\n";
@@ -3598,7 +3604,7 @@ XML
 				next;
 			}
 			my $file = esc_html(unquote($7));
-			$file = decode("utf8", $file, Encode::FB_DEFAULT);
+			$file = to_utf8($file);
 			print "$file<br/>\n";
 		}
 		print "]]>\n" .
-- 
2.26.2