From 5b5d4d9e1b31997b3179e6a253d47b7eea03d0fa Mon Sep 17 00:00:00 2001 From: Johannes Schindelin Date: Fri, 17 Feb 2006 15:23:16 +0100 Subject: Optionally support old diffs Some versions of diff do not correctly detect a missing new-line at the end of the file under certain circumstances. When defining NO_ACCURATE_DIFF, work around this bug. Signed-off-by: Johannes E. Schindelin Signed-off-by: Junio C Hamano --- apply.c | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'apply.c') diff --git a/apply.c b/apply.c index 2ad47fbbb3..1083d4f316 100644 --- a/apply.c +++ b/apply.c @@ -1142,6 +1142,14 @@ static int apply_one_fragment(struct buffer_desc *desc, struct fragment *frag) size -= len; } +#ifdef NO_ACCURATE_DIFF + if (oldsize > 0 && old[oldsize - 1] == '\n' && + newsize > 0 && new[newsize - 1] == '\n') { + oldsize--; + newsize--; + } +#endif + offset = find_offset(buf, desc->size, old, oldsize, frag->newpos); if (offset >= 0) { int diff = newsize - oldsize; -- cgit v1.2.3