44 lines
1.2 KiB
Diff
44 lines
1.2 KiB
Diff
--- 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
|