Move the tail -c option from FANCY_TAIL to the default tail, this makes

the default tail options conform to SUSv3, with the non-SUS
option all in FANCY_TAIL
This commit is contained in:
Glenn L McGrath 2003-10-31 00:35:59 +00:00
parent 0120be94a0
commit 4ef5a84583
2 changed files with 9 additions and 18 deletions

View File

@ -420,11 +420,12 @@ config CONFIG_TAIL
from files.
config CONFIG_FEATURE_FANCY_TAIL
bool " Enable extra tail options (-c, -q, -s, and -v)"
bool " Enable extra tail options (-q, -s, and -v)"
default y
depends on CONFIG_TAIL
help
Enable tail options (-c, -q, -s, and -v).
The options (-q, -s, and -v) are provided by GNU tail, but
are not specific in the SUSv3 standard.
config CONFIG_TEE
bool "tee"

View File

@ -89,9 +89,9 @@ static ssize_t tail_read(int fd, char *buf, size_t count)
}
static const char tail_opts[] =
"fn:"
"fn:c:"
#ifdef CONFIG_FEATURE_FANCY_TAIL
"c:qs:v"
"qs:v"
#endif
;
@ -104,9 +104,7 @@ int tail_main(int argc, char **argv)
int from_top = 0;
int follow = 0;
int header_threshhold = 1;
#ifdef CONFIG_FEATURE_FANCY_TAIL
int count_bytes = 0;
#endif
char *tailbuf;
size_t tailbufsize;
@ -132,11 +130,9 @@ int tail_main(int argc, char **argv)
case 'f':
follow = 1;
break;
#ifdef CONFIG_FEATURE_FANCY_TAIL
case 'c':
count_bytes = 1;
/* FALLS THROUGH */
#endif
case 'n':
GET_COUNT:
count = bb_xgetlarg10_sfx(optarg, tail_suffixes);
@ -201,7 +197,7 @@ int tail_main(int argc, char **argv)
}
tailbufsize = BUFSIZ;
#ifdef CONFIG_FEATURE_FANCY_TAIL
/* tail the files */
if (from_top < count_bytes) { /* Each is 0 or 1, so true iff 0 < 1. */
/* Hence, !from_top && count_bytes */
@ -209,7 +205,7 @@ int tail_main(int argc, char **argv)
tailbufsize = count + BUFSIZ;
}
}
#endif
buf = tailbuf = xmalloc(tailbufsize);
fmt = header_fmt + 1; /* Skip header leading newline on first output. */
@ -237,13 +233,10 @@ int tail_main(int argc, char **argv)
if (from_top) {
nwrite = nread;
if (seen < count) {
#ifdef CONFIG_FEATURE_FANCY_TAIL
if (count_bytes) {
nwrite -= (count - seen);
seen = count;
} else
#endif
{
} else {
s = buf;
do {
--nwrite;
@ -255,16 +248,13 @@ int tail_main(int argc, char **argv)
}
tail_xbb_full_write(buf + nread - nwrite, nwrite);
} else if (count) {
#ifdef CONFIG_FEATURE_FANCY_TAIL
if (count_bytes) {
taillen += nread;
if (taillen > count) {
memmove(tailbuf, tailbuf + taillen - count, count);
taillen = count;
}
} else
#endif
{
} else {
int k = nread;
int nbuf = 0;