From mboxrd@z Thu Jan 1 00:00:00 1970 From: Yasushi SHOJI Subject: Re: [PATCH] gitweb: Decode long title for link tooltips Date: Mon, 02 Oct 2006 06:33:03 +0900 Message-ID: <87r6xrvi0g.wl@mail2.atmark-techno.com> References: <873baet4ka.wl@mail2.atmark-techno.com> <871wpyt3ch.wl@mail2.atmark-techno.com> <87zmcmroqf.wl@mail2.atmark-techno.com> Mime-Version: 1.0 (generated by SEMI 1.14.6 - "Maruoka") Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 8BIT Cc: git@vger.kernel.org X-From: git-owner@vger.kernel.org Sun Oct 01 23:33:14 2006 Return-path: Envelope-to: gcvg-git@gmane.org Received: from vger.kernel.org ([209.132.176.167]) by ciao.gmane.org with esmtp (Exim 4.43) id 1GU8vx-000873-Sh for gcvg-git@gmane.org; Sun, 01 Oct 2006 23:33:14 +0200 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932416AbWJAVdK (ORCPT ); Sun, 1 Oct 2006 17:33:10 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S932417AbWJAVdK (ORCPT ); Sun, 1 Oct 2006 17:33:10 -0400 Received: from shop.atmark-techno.com ([210.191.215.173]:5853 "EHLO mail2.atmark-techno.com") by vger.kernel.org with ESMTP id S932416AbWJAVdH convert rfc822-to-8bit (ORCPT ); Sun, 1 Oct 2006 17:33:07 -0400 Received: from localhost.atmark-techno.com (dns1.atmark-techno.com [210.191.215.170]) by mail2.atmark-techno.com (Postfix) with ESMTP id AD111222D8; Mon, 2 Oct 2006 06:33:03 +0900 (JST) To: Jakub Narebski In-Reply-To: User-Agent: Wanderlust/2.14.0 Sender: git-owner@vger.kernel.org Precedence: bulk X-Mailing-List: git@vger.kernel.org Archived-At: 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 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 --- 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 "\n"; } print "
\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
\n"; } print "]]>\n" . -- 1.4.3.rc1