[Toybox] [PATCH] head -X

Isaac Dunham ibid.ag at gmail.com
Tue Mar 17 12:54:33 PDT 2015


On Mon, Mar 16, 2015 at 09:16:00PM -0700, enh wrote:
> Allow "head -X" as well as "head -n X".
>
> diff --git a/toys/posix/head.c b/toys/posix/head.c
> index e8517d4..608b93a 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_BIN))
> +USE_HEAD(NEWTOY(head, "?n#<0=10", TOYFLAG_BIN))
> 
>  config HEAD
>    bool "head"
> @@ -50,5 +50,10 @@ static void do_head(int fd, char *name)
> 
>  void head_main(void)
>  {
> -  loopfiles(toys.optargs, do_head);
> +  char **args = toys.optargs;
> +  if (*args && **args == '-') {
> +    TT.lines = xstrtol(*(args++) + 1, NULL, 10);

This will break "head -", which is valid though redundant.
I'd suggest using
  if (*args && **args == '-' && isdigit(*args + 1))
or some similar check.

Same applies to the "tail -X" patch.

> +    toys.optc--;
> +  }
> +  loopfiles(args, do_head);
>  }
> _______________________________________________
> Toybox mailing list
> Toybox at lists.landley.net
> http://lists.landley.net/listinfo.cgi/toybox-landley.net

 1426622073.0


More information about the Toybox mailing list