From 76628ce773bf1b5fc444cc38f3490da4b4d1960f Mon Sep 17 00:00:00 2001 From: Xin LI Date: Fri, 4 Feb 2005 14:01:06 +0000 Subject: [PATCH] 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 --- usr.bin/tail/forward.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/usr.bin/tail/forward.c b/usr.bin/tail/forward.c index 0d9ff8d3e1b..1a3c6580714 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");