diff options
author | delphij <delphij@FreeBSD.org> | 2005-02-04 14:01:06 +0000 |
---|---|---|
committer | delphij <delphij@FreeBSD.org> | 2005-02-04 14:01:06 +0000 |
commit | aa38886281809aaa5c85623d9e104bbad542786b (patch) | |
tree | 467ce5d5c88f9c537fcfa365350e40049896dcc6 /usr.bin/tail | |
parent | ed3d473296113c9c043b1ad439315bba88a79bbb (diff) | |
download | FreeBSD-src-aa38886281809aaa5c85623d9e104bbad542786b.zip FreeBSD-src-aa38886281809aaa5c85623d9e104bbad542786b.tar.gz |
Save last displayed file by having the "last" pointer global and save it
during we show the first file's tail. Instead of:
tarsier% tail -f 1 2
==> 1 <==
foo
bar
==> 2 <==
bar
foo
==> 2 <==
bar2
foo2
Now with this change, we have:
tarsier% tail -f 1 2
==> 1 <==
foo
bar
==> 2 <==
bar
foo
bar2
foo2
While I'm there, move a comment to where it should belong to. Also,
const'ify the "last" static because we will never need to change the
contents it points to.
MFC After: 1 week
Diffstat (limited to 'usr.bin/tail')
-rw-r--r-- | usr.bin/tail/forward.c | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/usr.bin/tail/forward.c b/usr.bin/tail/forward.c index 0d9ff8d..1a3c658 100644 --- a/usr.bin/tail/forward.c +++ b/usr.bin/tail/forward.c @@ -72,6 +72,8 @@ struct kevent *ev; int action = USE_SLEEP; int kq; +static const file_info_t *last; + /* * forward -- display the file, from an offset, forward. * @@ -238,16 +240,10 @@ rlines(fp, off, sbp) } } -/* - * follow -- display the file, from an offset, forward. - * - */ - static void show(file_info_t *file) { int ch; - static file_info_t *last; while ((ch = getc(file->fp)) != EOF) { if (last != file && no_files > 1) { @@ -295,6 +291,10 @@ set_events(file_info_t *files) } } +/* + * follow -- display the file, from an offset, forward. + * + */ void follow(file_info_t *files, enum STYLE style, off_t off) { @@ -322,6 +322,8 @@ follow(file_info_t *files, enum STYLE style, off_t off) if (! active) return; + last = --file; + kq = kqueue(); if (kq < 0) err(1, "kqueue"); |