For future reference, if you do a "git format-patch -1 $COMMIT" and then attach the file, I can just "git am" it with proper attribution.
Thanks, Rob On 05/28/2017 09:03 AM, Ilya Kuzmich wrote: > Not POSIX, but implemented in coreutils and busybox. > Tests use sed to compensate for the stdin naming difference. > > Signed-off-by: Ilya Kuzmich <ilya.kuzm...@gmail.com> > --- > tests/head.test | 10 ++++++++++ > toys/posix/head.c | 10 +++++++--- > 2 files changed, 17 insertions(+), 3 deletions(-) > > diff --git a/tests/head.test b/tests/head.test > index 83d9399..6ed027c 100755 > --- a/tests/head.test > +++ b/tests/head.test > @@ -11,9 +11,19 @@ testing "-number" "head -2 input && echo yes" > "one\ntwo\nyes\n" \ > "one\ntwo\nthree\nfour" "" > testing "head, default lines" "head" "1\n2\n3\n4\n5\n6\n7\n8\n9\n10\n" "" > "1\n2\n3\n4\n5\n6\n7\n8\n9\n10\n11\n12" > > +# coreutils & busybox name stdin as "standard input", toybox uses "-" > +testing "-v file" "head -v -n 1 input" "==> input <==\none\n" "one\ntwo\n" "" > +testing "-v stdin" "head -v -n 1 | sed 's/==> standard input <==/==> - > <==/'" \ > + "==> - <==\none\n" "" "one\ntwo\n" > + > +testing "file and stdin" "head -n 1 input - | sed 's/==> standard input > <==/==> - <==/'" \ > + "==> input <==\none\n\n==> - <==\nfoo\n" "one\ntwo\n" "foo\nbar\n" > + > echo "foo > bar > baz" > file1 > testing "head, multiple files" "head -n 2 input file1" "==> input > <==\none\ntwo\n\n==> file1 <==\nfoo\nbar\n" "one\ntwo\nthree\n" "" > +testing "-q, multiple files" "head -q -n 2 input file1" > "one\ntwo\nfoo\nbar\n" \ > + "one\ntwo\nthree\n" "" > rm file1 > > diff --git a/toys/posix/head.c b/toys/posix/head.c > index e3d7886..63eb85b 100644 > --- a/toys/posix/head.c > +++ b/toys/posix/head.c > @@ -4,7 +4,7 @@ > * > * See http://opengroup.org/onlinepubs/9699919799/utilities/head.html > > -USE_HEAD(NEWTOY(head, "?n#<0=10", TOYFLAG_USR|TOYFLAG_BIN)) > +USE_HEAD(NEWTOY(head, "?n#<0=10qv", TOYFLAG_USR|TOYFLAG_BIN)) > > config HEAD > bool "head" > @@ -16,6 +16,8 @@ config HEAD > stdin. Filename "-" is a synonym for stdin. > > -n Number of lines to copy > + -q Never print headers > + -v Always print headers > */ > > #define FOR_head > @@ -30,9 +32,9 @@ static void do_head(int fd, char *name) > { > int i, len, lines=TT.lines, size=sizeof(toybuf); > > - if (toys.optc > 1) { > + if ((toys.optc > 1 && !(toys.optflags & FLAG_q)) || toys.optflags & > FLAG_v) { > // Print an extra newline for all but the first file > - if (TT.file_no++) xprintf("\n"); > + if (TT.file_no) xprintf("\n"); > xprintf("==> %s <==\n", name); > xflush(); > } > @@ -46,6 +48,8 @@ static void do_head(int fd, char *name) > > xwrite(1, toybuf, i); > } > + > + TT.file_no++; > } > > void head_main(void) > _______________________________________________ Toybox mailing list Toybox@lists.landley.net http://lists.landley.net/listinfo.cgi/toybox-landley.net