Subject: Re: [PATCH] gitweb: Better chopping in commit search results

From: Jakub Narebski <[email-masked]>
Date: Sun, 24 Feb 2008 00:36:01 +0100

On Sat, 23 Feb 2008, Junio C Hamano wrote:
> Jakub Narebski <[email-masked]> writes:
> 
> > 	# regexps: ending and beginning with word part up to $add_len
> > 	my $endre = qr/.{0,$len}[^ \/\-_:\.@]{0,$add_len}/;
> > 	my $begre = qr/[^ \/\-_:\.@]{0,$add_len}.{0,$len}/;
> 
> I have no idea what these line noise characters inside [] are.
> Did you mean something like "\w"?

They were in original chop_str, written by Kay Sievers if I have
checked correctly, I have only repeated it. But changing it to
"\w" might be a good idea.

> I have a suspicion that it may be easier to read and could be
> even more efficient to split an overlong line at word boundaries
> and to remove elements from the end you are removing from until
> it fits.
> 
> sub chop_whence {
> 	my ($line, $max, $slop, $where) = @_;

IMHO it is neither easier to read, nor more efficient. And changes
semantic a bit.

Original chop_str used to mean:

 chop_str($str, $len, $add_len) means: Try to chop on a word boundary 
 between position $len and $len+$add_len. If there is no word boundary
 between $len and $len+$add_len, chop at $add_len, and replace chopped
 part by " ...". Do not chop if to be replaced part is shorter than
 ellipsis, i.e. " ..." replacement.

(I think I add this description to gitweb). With this description the 
code is I think quite obvious.
-- 
Jakub Narebski
Poland