Commit Diff


commit - 6c19a3dcfa5f03ec889d629dded9ff4dfa9f6237
commit + 1fee9f40e2ed335d4ec8899954b59b43990b97c3
blob - 6343f4f287533c9a4793e0e93a169a6bc59a5d23
blob + f9cd08718072cece748caacb6f92cb0c91edc747
--- lib/diff3.c
+++ lib/diff3.c
@@ -885,10 +885,12 @@ duplicate(int *dpl, int j, struct line_range *r1, stru
 	for (nline = 0; nline < r1->to - r1->from; nline++) {
 		do {
 			c = getc(d3s->fp[0]);
-			if (c == EOF)
-				return got_ferror(d3s->fp[0], GOT_ERR_EOF);
 			d = getc(d3s->fp[1]);
-			if (d == EOF)
+			if (c == EOF && d == EOF)
+				break;
+			else if (c == EOF)
+				return got_ferror(d3s->fp[0], GOT_ERR_EOF);
+			else if (d == EOF)
 				return got_ferror(d3s->fp[1], GOT_ERR_EOF);
 			nchar++;
 			if (c != d) {