summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordelphij <delphij@FreeBSD.org>2005-02-04 14:01:06 +0000
committerdelphij <delphij@FreeBSD.org>2005-02-04 14:01:06 +0000
commitaa38886281809aaa5c85623d9e104bbad542786b (patch)
tree467ce5d5c88f9c537fcfa365350e40049896dcc6
parented3d473296113c9c043b1ad439315bba88a79bbb (diff)
downloadFreeBSD-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
-rw-r--r--usr.bin/tail/forward.c14
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");
OpenPOWER on IntegriCloud