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>
This commit is contained in:
parent
840ef17f63
commit
64938011f3
5
TODO
5
TODO
@ -127,11 +127,6 @@ patch
|
|||||||
|
|
||||||
And while we're at it, a new patch filename quoting format is apparently
|
And while we're at it, a new patch filename quoting format is apparently
|
||||||
coming soon: http://marc.theaimsgroup.com/?l=git&m=112927316408690&w=2
|
coming soon: http://marc.theaimsgroup.com/?l=git&m=112927316408690&w=2
|
||||||
---
|
|
||||||
tail
|
|
||||||
./busybox tail -f foo.c~ TODO
|
|
||||||
should not print fmt=header_fmt for subsequent date >> TODO; i.e. only
|
|
||||||
fmt+ if another (not the current) file did change
|
|
||||||
|
|
||||||
Architectural issues:
|
Architectural issues:
|
||||||
|
|
||||||
|
@ -105,6 +105,7 @@ int tail_main(int argc, char **argv)
|
|||||||
|
|
||||||
int *fds;
|
int *fds;
|
||||||
const char *fmt;
|
const char *fmt;
|
||||||
|
int prev_fd;
|
||||||
|
|
||||||
INIT_G();
|
INIT_G();
|
||||||
|
|
||||||
@ -309,6 +310,7 @@ int tail_main(int argc, char **argv)
|
|||||||
xwrite(STDOUT_FILENO, tailbuf, taillen);
|
xwrite(STDOUT_FILENO, tailbuf, taillen);
|
||||||
}
|
}
|
||||||
} while (++i < nfiles);
|
} while (++i < nfiles);
|
||||||
|
prev_fd = fds[i-1];
|
||||||
|
|
||||||
tailbuf = xrealloc(tailbuf, BUFSIZ);
|
tailbuf = xrealloc(tailbuf, BUFSIZ);
|
||||||
|
|
||||||
@ -365,9 +367,10 @@ int tail_main(int argc, char **argv)
|
|||||||
nread = tail_read(fd, tailbuf, BUFSIZ);
|
nread = tail_read(fd, tailbuf, BUFSIZ);
|
||||||
if (nread <= 0)
|
if (nread <= 0)
|
||||||
break;
|
break;
|
||||||
if (fmt) {
|
if (fmt && (fd != prev_fd)) {
|
||||||
tail_xprint_header(fmt, filename);
|
tail_xprint_header(fmt, filename);
|
||||||
fmt = NULL;
|
fmt = NULL;
|
||||||
|
prev_fd = fd;
|
||||||
}
|
}
|
||||||
xwrite(STDOUT_FILENO, tailbuf, nread);
|
xwrite(STDOUT_FILENO, tailbuf, nread);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user