diff options
Diffstat (limited to 'package/busybox/patches/000-upstream-tail.patch')
-rw-r--r-- | package/busybox/patches/000-upstream-tail.patch | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/package/busybox/patches/000-upstream-tail.patch b/package/busybox/patches/000-upstream-tail.patch new file mode 100644 index 0000000000..92805939ff --- /dev/null +++ b/package/busybox/patches/000-upstream-tail.patch @@ -0,0 +1,43 @@ +--- a/coreutils/tail.c ++++ b/coreutils/tail.c +@@ -203,7 +203,7 @@ int tail_main(int argc, char **argv) + int fd = fds[i]; + + if (ENABLE_FEATURE_FANCY_TAIL && fd < 0) +- continue; /* may happen with -E */ ++ continue; /* may happen with -F */ + + if (nfiles > header_threshhold) { + tail_xprint_header(fmt, argv[i]); +@@ -252,14 +252,14 @@ int tail_main(int argc, char **argv) + * Used only by +N code ("start from Nth", 1-based): */ + seen = 1; + newlines_seen = 0; +- while ((nread = tail_read(fd, buf, tailbufsize-taillen)) > 0) { ++ while ((nread = tail_read(fd, buf, tailbufsize - taillen)) > 0) { + if (G.from_top) { + int nwrite = nread; + if (seen < count) { + /* We need to skip a few more bytes/lines */ + if (COUNT_BYTES) { + nwrite -= (count - seen); +- seen = count; ++ seen += nread; + } else { + char *s = buf; + do { +--- a/testsuite/tail.tests ++++ b/testsuite/tail.tests +@@ -14,4 +14,12 @@ testing "tail: +N with N > file length" + "0\n" \ + "" "qw" + ++testing "tail: -c +N with largish N" \ ++ " ++ dd if=/dev/zero bs=16k count=1 2>/dev/null | tail -c +8200 | wc -c; ++ dd if=/dev/zero bs=16k count=1 2>/dev/null | tail -c +8208 | wc -c; ++ " \ ++ "8185\n8177\n" \ ++ "" "" ++ + exit $FAILCOUNT |