On Tue, Oct 15, 2013 at 10:52:55AM -0700, Junio C Hamano wrote:
Jeff King [off-list ref] writes:
quoted
quoted
Yeah, unrolling the loop is probably better. You may even be able
to do so in a single pass with an extra "last > seen" pointer
variable without too much additional code complexity, I would think.
I'm not sure what you mean here.
quoted
If you mean doing a single pass to find the final ">", that is easy,
because we know the length of the line already and can jump past and
start from the back.
I meant a single forward pass, like this.
Ah, I see. You are combining with the pass before, not the pass after.
I do not think this is any more (nor less) efficient than what I posted.
We still pass over the space after split->mail_end one additional time
searching for the closing bracket. Mine is _slightly_ more efficient in
that by going backwards we can stop when we see the first '>', avoiding
looking at the space between "mail_end" and "last_ket". But that space
is 0 in the normal case, and even if it is not, we are talking about
tens of bytes at most. So I doubt it would ever matter.
My version seems a little clearer to me, but that is probably because I
wrote it. If you strongly prefer the other, feel free to mark up my
patch.
-Peff
PS I learned a new term, "ket". I always called it "closing angle
bracket".