From: Ramkumar Ramachandra Date: Wed, 03 Aug 2011 17:59:00 GMT Subject: Re: [PATCH 17/18] revert: Introduce --continue to continue the operation Message-ID: In-Reply-To: <7v4o1ycsi4.fsf@alter.siamese.dyndns.org> Hi Junio, Junio C Hamano writes: > Ramkumar Ramachandra writes: >>>> +     for (p = buf.buf; *p; p = strchr(p, '\n') + 1) { >>> >>> This relies on a "\n" at the end of the last line... >> >> Yes, that was intentional.  Every editor I know of inserts a '\n' at >> the end of the last line,... > > Why do you think "diff" has a special codepath to report "No newline at > end of file"? Because some editors do leave an incomplete line incomplete. > > When working on a "buf" with an incomplete line at the end, the last round > of the loop will assign "(char *) 1" to "p", try to see "*p" is NUL and > segfault, no? Thanks for the excellent explanation! :) I'll fix this and re-roll asap: I'll take the opportunity to include the other changes that Christian suggested. -- Ram