summaryrefslogtreecommitdiff
path: root/inotail.c
diff options
context:
space:
mode:
authorTobias Klauser <tklauser@distanz.ch>2007-11-11 21:17:57 +0100
committerTobias Klauser <tklauser@xenon.tklauser.home>2007-11-11 21:17:57 +0100
commita4d7f34d0210344d2e25e5af1c2e61057422521d (patch)
treeec7dcec92fcee2bce373ce5bcc5c4be3704c3b4a /inotail.c
parent21cddfba5f53ed0ad9d8f14bc1555c57cad9790e (diff)
Revert "inotail.c: Decrement n_units before calling tail_pipe_from_begin"pipe
This reverts commit 21cddfba5f53ed0ad9d8f14bc1555c57cad9790e. Makes inotail -n +0 work again. Sometimes reducing code leads to unrecognised errors ;-)
Diffstat (limited to 'inotail.c')
-rw-r--r--inotail.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/inotail.c b/inotail.c
index 2eef622..483306e 100644
--- a/inotail.c
+++ b/inotail.c
@@ -244,6 +244,9 @@ static int tail_pipe_from_begin(struct file_struct *f, unsigned long n_units, co
int bytes_read = 0;
char buf[BUFSIZ];
+ if (n_units)
+ n_units--;
+
while (n_units > 0) {
if ((bytes_read = read(f->fd, buf, BUFSIZ)) <= 0) {
if (bytes_read < 0 && (errno == EINTR || errno == EAGAIN))
@@ -292,7 +295,7 @@ static int tail_pipe_lines(struct file_struct *f, unsigned long n_lines)
const char *p;
if (from_begin)
- return tail_pipe_from_begin(f, n_lines - 1, M_LINES);
+ return tail_pipe_from_begin(f, n_lines, M_LINES);
if (n_lines == 0)
return 0;
@@ -400,7 +403,7 @@ static int tail_pipe_bytes(struct file_struct *f, unsigned long n_bytes)
unsigned long i = 0; /* Index into buffer */
if (from_begin)
- return tail_pipe_from_begin(f, n_bytes - 1, M_BYTES);
+ return tail_pipe_from_begin(f, n_bytes, M_BYTES);
/* XXX: Needed? */
if (n_bytes == 0)