From 64938011f3ba06a8f425926397172dc361bce851 Mon Sep 17 00:00:00 2001 From: Bartosz Golaszewski Date: Mon, 14 Oct 2013 20:11:55 +0200 Subject: 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 Signed-off-by: Denys Vlasenko --- coreutils/tail.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'coreutils') 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) int *fds; const char *fmt; + int prev_fd; INIT_G(); @@ -309,6 +310,7 @@ int tail_main(int argc, char **argv) xwrite(STDOUT_FILENO, tailbuf, taillen); } } while (++i < nfiles); + prev_fd = fds[i-1]; tailbuf = xrealloc(tailbuf, BUFSIZ); @@ -365,9 +367,10 @@ int tail_main(int argc, char **argv) nread = tail_read(fd, tailbuf, BUFSIZ); if (nread <= 0) break; - if (fmt) { + if (fmt && (fd != prev_fd)) { tail_xprint_header(fmt, filename); fmt = NULL; + prev_fd = fd; } xwrite(STDOUT_FILENO, tailbuf, nread); } -- cgit v1.2.3