From: Jeff King Date: Tue, 15 Oct 2013 18:03:12 GMT Subject: Re: [PATCH] split_ident: parse timestamp from end of line Message-ID: <20131015180312.GA26845@sigill.intra.peff.net> In-Reply-To: On Tue, Oct 15, 2013 at 10:52:55AM -0700, Junio C Hamano wrote: > Jeff King writes: > > >> 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. > > > 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".