From: Junio C Hamano Date: Sat, 15 Dec 2007 17:49:06 GMT Subject: Re: trim_common_tail bug? Message-ID: <7vprx7n90t.fsf@gitster.siamese.dyndns.org> In-Reply-To: <20071215155150.GA24810@coredump.intra.peff.net> Jeff King writes: > diff --git a/xdiff-interface.c b/xdiff-interface.c > index 700def2..eb60e88 100644 > --- a/xdiff-interface.c > +++ b/xdiff-interface.c > @@ -124,6 +124,8 @@ static void trim_common_tail(mmfile_t *a, mmfile_t *b, long ctx) > for (i = 0, recovered = 0; recovered < trimmed && i <= ctx; i++) { > while (recovered < trimmed && ap[recovered] != '\n') > recovered++; > + if (recovered < trimmed && ap[recovered] == '\n') > + recovered++; > } > a->size -= (trimmed - recovered); > b->size -= (trimmed - recovered); Shoot. Thanks for spotting. Wouldn't it be enough to do: for (i = 0, recovered = 0; recovered < trimmed && i <= ctx; i++) { while (recovered < trimmed && ap[recovered++] != '\n') ; /* nothing */ } then (warning: I haven't had my coffee yet)?