aboutsummaryrefslogtreecommitdiff
path: root/coreutils/tail.c
diff options
context:
space:
mode:
Diffstat (limited to 'coreutils/tail.c')
-rw-r--r--coreutils/tail.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/coreutils/tail.c b/coreutils/tail.c
index 07c71ca4b..eab502beb 100644
--- a/coreutils/tail.c
+++ b/coreutils/tail.c
@@ -105,6 +105,7 @@ int tail_main(int argc, char **argv)
105 105
106 int *fds; 106 int *fds;
107 const char *fmt; 107 const char *fmt;
108 int prev_fd;
108 109
109 INIT_G(); 110 INIT_G();
110 111
@@ -309,6 +310,7 @@ int tail_main(int argc, char **argv)
309 xwrite(STDOUT_FILENO, tailbuf, taillen); 310 xwrite(STDOUT_FILENO, tailbuf, taillen);
310 } 311 }
311 } while (++i < nfiles); 312 } while (++i < nfiles);
313 prev_fd = fds[i-1];
312 314
313 tailbuf = xrealloc(tailbuf, BUFSIZ); 315 tailbuf = xrealloc(tailbuf, BUFSIZ);
314 316
@@ -365,9 +367,10 @@ int tail_main(int argc, char **argv)
365 nread = tail_read(fd, tailbuf, BUFSIZ); 367 nread = tail_read(fd, tailbuf, BUFSIZ);
366 if (nread <= 0) 368 if (nread <= 0)
367 break; 369 break;
368 if (fmt) { 370 if (fmt && (fd != prev_fd)) {
369 tail_xprint_header(fmt, filename); 371 tail_xprint_header(fmt, filename);
370 fmt = NULL; 372 fmt = NULL;
373 prev_fd = fd;
371 } 374 }
372 xwrite(STDOUT_FILENO, tailbuf, nread); 375 xwrite(STDOUT_FILENO, tailbuf, nread);
373 } 376 }