Subject: Re: [PATCH 2/2] gitweb: Fix chop_str to allow for & characters in strings

From: "J.H." <[email-masked]>
Date: Tue, 02 Feb 2010 15:54:53 -0800

On 02/02/2010 03:43 PM, Jakub Narebski wrote:
> "John 'Warthog9' Hawley" <[email-masked]> writes:
> 
>> I'm unsure why this was placed in their originally, and it seems to
>> ultimately stem from code from before gitweb was merged into git core,
>> but there's an instance where git chops a string incorrectly based on
>> this.
>>
>> Specifically:
>>
>> 	API & protocol: support option to force written data immediately to disk
>>
>> from http://git.kernel.org/?p=daemon/distsrv/chunkd.git;a=commit;h=3b02f749df2cb1288f345a689d85e7061f507e54
>>
>> The short version of the title gets chopped to
>>
>> 	API ...
>>
>> where it should be
>>
>> 	API & protocol: support option to force written data...
>>
>> This reverts that specific problem.
>> ---
>>  gitweb/gitweb.perl |    1 -
>>  1 files changed, 0 insertions(+), 1 deletions(-)
>>
>> diff --git a/gitweb/gitweb.perl b/gitweb/gitweb.perl
>> index 57771a0..4cc6d19 100755
>> --- a/gitweb/gitweb.perl
>> +++ b/gitweb/gitweb.perl
>> @@ -1382,7 +1382,6 @@ sub chop_str {
>>  		my $body = $1;
>>  		my $tail = $2;
>>  		if (length($tail) > 4) {
>> -			$body =~ s/&[^;]*$//;
>>  			$tail = "... ";
>>  		}
>>  		return "$body$tail";
> 
> I think it is a good change.  chop_str is meant to be used _before_
> HTML escaping (esc_html or equivalent) is to be applied; removed line
> looks like it was meant (badly) to always remove HTML entities
> fully... but those entities are only added later.
> 
> So now what is left is to come up with proper commit message, and add
> 
> Signed-off-by: John 'Warthog9' Hawley" <[email-masked]>
> Acked-by: Jakub Narebski <[email-masked]>
> 

There's a couple more lines, similar to that, ins chop_str.  The bug I
needed to fix didn't tickle those, so I made the smallest change
possible.  But those should probably be looked at as well.

- John 'Warthog9' Hawley