--- comm.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/comm.c b/comm.c index e0ec7b7..138b5ea 100644 --- a/comm.c +++ b/comm.c _AT_@ -33,7 +33,7 @@ main(int argc, char *argv[]) { FILE *fp[2]; size_t linelen[2] = { 0, 0 }; - int ret = 0, i, diff = 0; + int ret = 0, i, diff = 0, seenline = 0; char *line[2] = { NULL, NULL }; ARGBEGIN { _AT_@ -62,11 +62,13 @@ main(int argc, char *argv[]) for (i = 0; i < 2; i++) { if (diff && i == (diff < 0)) continue; - if (getline(&line[i], &linelen[i], fp[i]) > 0) + if (getline(&line[i], &linelen[i], fp[i]) > 0) { + seenline = 1; continue; + } if (ferror(fp[i])) eprintf("getline %s:", argv[i]); - if (diff && line[!i][0]) + if ((diff || seenline) && line[!i][0]) printline(!i, line[!i]); while (getline(&line[!i], &linelen[!i], fp[!i]) > 0) printline(!i, line[!i]); _AT_@ -76,6 +78,7 @@ main(int argc, char *argv[]) } diff = strcmp(line[0], line[1]); LIMIT(diff, -1, 1); + seenline = 0; printline((2 - diff) % 3, line[MAX(0, diff)]); } end: -- 2.3.5Received on Mon Aug 03 2015 - 21:30:35 CEST
This archive was generated by hypermail 2.3.0 : Mon Aug 03 2015 - 21:36:11 CEST