applying fix for:
authorpgf <pgf@69ca8d6d-28ef-0310-b511-8ec308f3f277>
Wed, 20 Jul 2005 19:46:32 +0000 (19:46 +0000)
committerpgf <pgf@69ca8d6d-28ef-0310-b511-8ec308f3f277>
Wed, 20 Jul 2005 19:46:32 +0000 (19:46 +0000)
    0000265: tail -f should keep following files even if they
                    were truncated

git-svn-id: svn://busybox.net/trunk/busybox@10884 69ca8d6d-28ef-0310-b511-8ec308f3f277

coreutils/tail.c

index e3f89d2..d495399 100644 (file)
@@ -79,7 +79,19 @@ static void tail_xbb_full_write(const char *buf, size_t len)
 static ssize_t tail_read(int fd, char *buf, size_t count)
 {
        ssize_t r;
+       off_t current,end;
+       struct stat sbuf;
+       int ret;
 
+       end = current = lseek (fd, 0, SEEK_CUR);
+       if (!fstat(fd, &sbuf)){
+           end = sbuf.st_size;
+       }
+       if ( end < current) {
+               lseek(fd, 0, SEEK_SET);
+       } else {
+               lseek(fd, current, SEEK_SET);
+       }
        if ((r = safe_read(fd, buf, count)) < 0) {
                bb_perror_msg("read");
                status = EXIT_FAILURE;