git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Yasushi SHOJI <yashi@atmark-techno.com>
To: Jakub Narebski <jnareb@gmail.com>
Cc: git@vger.kernel.org
Subject: Re: [PATCH] gitweb: Decode long title for link tooltips
Date: Mon, 02 Oct 2006 06:33:03 +0900	[thread overview]
Message-ID: <87r6xrvi0g.wl@mail2.atmark-techno.com> (raw)
In-Reply-To: <eforb7$fgd$1@sea.gmane.org>

At Sun, 01 Oct 2006 18:45:46 +0200,
Jakub Narebski wrote:
> 
> Yasushi SHOJI wrote:
> 
> > This is a simple one liner to decode long title string in perl's
> > internal form to utf-8 for link tooltips.
> > 
> > This is not crucial if the commit message is all in ASCII, however, if
> > you decide to use other encoding, such as UTF-8, tooltips ain't
> > readable any more.
> 
> Perhaps it would be better to abstract it away into esc_attr (as escape
> attribute) subroutine, if such situation i.e. output of generated string
> into some attribute of some element happens in some other place.

I liked the idea.  there were 7 places already.

I just couldn't get why you picked esc_attr for the name.  is there a
patch for the func I missed?

anyway, a patch for the abstruction is attached.  rename the func name
if you don't like it.

# i don't know how to reply to an email and also attaching a patch
# from git format-patch.  should I just submit the patch in a separate
# email?

regards,
-- 
        yashi


>From cb5f740afb265e67fabf09cd76141fdda24d6745 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>
---
 gitweb/gitweb.perl |   20 +++++++++++++-------
 1 files changed, 13 insertions(+), 7 deletions(-)

diff --git a/gitweb/gitweb.perl b/gitweb/gitweb.perl
index 44991b1..87a644e 100755
--- a/gitweb/gitweb.perl
+++ b/gitweb/gitweb.perl
@@ -440,6 +440,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 {
@@ -462,7 +468,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)
 	return $str;
@@ -664,7 +670,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"},
@@ -841,7 +847,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
 			}
@@ -870,7 +876,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;
 			}
 		}
@@ -1232,7 +1238,7 @@ sub get_file_owner {
 	}
 	my $owner = $gcos;
 	$owner =~ s/[,;].*$//;
-	return decode("utf8", $owner, Encode::FB_DEFAULT);
+	return to_utf8($owner);
 }
 
 ## ......................................................................
@@ -3585,7 +3591,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";
@@ -3594,7 +3600,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" .
-- 
1.4.3.rc1

  reply	other threads:[~2006-10-01 21:33 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-09-27  2:38 [PATCH] gitweb: Escape long title for link tooltips Yasushi SHOJI
2006-09-27  3:06 ` Yasushi SHOJI
2006-09-27  3:04   ` [PATCH] gitweb: Decode " Yasushi SHOJI
2006-10-01 16:45     ` Jakub Narebski
2006-10-01 21:33       ` Yasushi SHOJI [this message]
2006-10-01 21:49         ` Jakub Narebski
2006-10-06  8:54         ` Jakub Narebski

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87r6xrvi0g.wl@mail2.atmark-techno.com \
    --to=yashi@atmark-techno.com \
    --cc=git@vger.kernel.org \
    --cc=jnareb@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).