diff options
author | Bartosz Golaszewski <bartekgola@gmail.com> | 2013-10-14 20:11:55 +0200 |
---|---|---|
committer | Denys Vlasenko <vda.linux@googlemail.com> | 2013-10-16 15:02:50 +0200 |
commit | 64938011f3ba06a8f425926397172dc361bce851 (patch) | |
tree | d3e406ab6e54d9235b6f7e9e03534d3ef064260a /coreutils | |
parent | 840ef17f63c85044c15d9a38a13c6539e26dfc31 (diff) | |
download | busybox-w32-64938011f3ba06a8f425926397172dc361bce851.tar.gz busybox-w32-64938011f3ba06a8f425926397172dc361bce851.tar.bz2 busybox-w32-64938011f3ba06a8f425926397172dc361bce851.zip |
tail compat: fix header printing for tail -f
Makes tail -f for multiple files display the header only if another (ie. not
currently displayed) file changed.
Signed-off-by: Bartosz Golaszewski <bartekgola@gmail.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'coreutils')
-rw-r--r-- | coreutils/tail.c | 5 |
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 | } |