git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH] gitweb: parse_commit_text encoding fix

From
Junio C Hamano <gitster@pobox.com>
Date
Aug 4, 2009, 06:59 UTC
Message-ID
<7viqh43vz3.fsf@alter.siamese.dyndns.org>
In-Reply-To
<1249198944-19630-1-git-send-email-zfuzesi@eaglet.hu>
Zoltán Füzesi <zfuzesi@eaglet.hu> writes:
Show 5 quoted lines
> Call to_utf8 when parsing author and committer names, otherwise they will appear
> with bad encoding if they written by using chop_and_escape_str.
>
> Signed-off-by: Zoltán Füzesi <zfuzesi@eaglet.hu>
> ---
Thanks, Zoltán.

We should be able to set up a script that scrapes the output to test this kind of thing. We may not want to have a test pattern that matches too strictly for the current structure and appearance of the output (e.g. counting nested <div>s, presentation styles and such), but if we can robustly scrape off HTML tags (e.g. "elinks -dump") and check the remaining payload, it might be enough.

Jakub what do you think? I suspect that scraping approach may turn out to be too fragile for tests to be worth doing, but I am just throwing out a thought.

Show 30 quoted lines
>  gitweb/gitweb.perl |    5 ++---
>  1 files changed, 2 insertions(+), 3 deletions(-)
>
> diff --git a/gitweb/gitweb.perl b/gitweb/gitweb.perl
> index 7fbd5ff..4f05194 100755
> --- a/gitweb/gitweb.perl
> +++ b/gitweb/gitweb.perl
> @@ -2570,7 +2570,7 @@ sub parse_commit_text {
>  		} elsif ((!defined $withparents) && ($line =~ m/^parent ([0-9a-fA-F]{40})$/)) {
>  			push @parents, $1;
>  		} elsif ($line =~ m/^author (.*) ([0-9]+) (.*)$/) {
> -			$co{'author'} = $1;
> +			$co{'author'} = to_utf8($1);
>  			$co{'author_epoch'} = $2;
>  			$co{'author_tz'} = $3;
>  			if ($co{'author'} =~ m/^([^<]+) <([^>]*)>/) {
> @@ -2580,10 +2580,9 @@ sub parse_commit_text {
>  				$co{'author_name'} = $co{'author'};
>  			}
>  		} elsif ($line =~ m/^committer (.*) ([0-9]+) (.*)$/) {
> -			$co{'committer'} = $1;
> +			$co{'committer'} = to_utf8($1);
>  			$co{'committer_epoch'} = $2;
>  			$co{'committer_tz'} = $3;
> -			$co{'committer_name'} = $co{'committer'};
>  			if ($co{'committer'} =~ m/^([^<]+) <([^>]*)>/) {
>  				$co{'committer_name'}  = $1;
>  				$co{'committer_email'} = $2;
> -- 
> 1.6.4.13.ge6580
Previous: Zoltán FüzesiNext: Zoltán Füzesi
Message 5 of 8 in “gitweb: parse_commit_text encoding fix”
  1. gitweb: parse_commit_text encoding fixZoltán Füzesi, Aug 1, 2009
  2. Jakub NarebskiAug 1, 2009
  3. Füzesi ZoltánAug 1, 2009
  4. gitweb: parse_commit_text encoding fixZoltán Füzesi, Aug 2, 2009
  5. Junio C HamanoAug 4, 2009
  6. Zoltán FüzesiAug 6, 2009
  7. Jakub NarebskiAug 7, 2009
  8. Jakub NarebskiAug 7, 2009

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.