tail: fix -c +N. Closes 4111

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
Denys Vlasenko 2011-09-17 00:12:24 +02:00
parent 6d2d652cd3
commit 0851d125c3
2 changed files with 11 additions and 3 deletions

View File

@ -203,7 +203,7 @@ int tail_main(int argc, char **argv)
int fd = fds[i]; int fd = fds[i];
if (ENABLE_FEATURE_FANCY_TAIL && fd < 0) if (ENABLE_FEATURE_FANCY_TAIL && fd < 0)
continue; /* may happen with -E */ continue; /* may happen with -F */
if (nfiles > header_threshhold) { if (nfiles > header_threshhold) {
tail_xprint_header(fmt, argv[i]); tail_xprint_header(fmt, argv[i]);
@ -259,7 +259,7 @@ int tail_main(int argc, char **argv)
/* We need to skip a few more bytes/lines */ /* We need to skip a few more bytes/lines */
if (COUNT_BYTES) { if (COUNT_BYTES) {
nwrite -= (count - seen); nwrite -= (count - seen);
seen = count; seen += nread;
} else { } else {
char *s = buf; char *s = buf;
do { do {

View File

@ -14,4 +14,12 @@ testing "tail: +N with N > file length" \
"0\n" \ "0\n" \
"" "qw" "" "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 exit $FAILCOUNT