Mercurial > hg > toybox
changeset 304:93223118c813
Option parsing: stopearly is now a ^ prefix (not +), and an option string with
no flags auto-enables stopearly (so seq doesn't have to specify it to avoid
having negative number arguments eaten by the option parsing logic).
author | Rob Landley <rob@landley.net> |
---|---|
date | Thu, 26 Jun 2008 22:48:43 -0500 |
parents | b8f6dd7cf7f7 |
children | b094b81830b0 |
files | lib/args.c toys/echo.c toys/oneit.c toys/seq.c |
diffstat | 4 files changed, 6 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/lib/args.c Sun Jun 22 04:18:39 2008 -0500 +++ b/lib/args.c Thu Jun 26 22:48:43 2008 -0500 @@ -25,7 +25,7 @@ // !X die with error if X already set (x!x die if x supplied twice) // [yz] needs at least one of y or z. // at the beginning: -// + stop at first nonoption argument +// ^ stop at first nonoption argument // <0 at least # leftover arguments needed (default 0) // >9 at most # leftover arguments needed (default MAX_INT) // ? don't show_usage() on unknown argument. @@ -167,7 +167,7 @@ // Parse leading special behavior indicators for (;;) { - if (*options == '+') stopearly++; + if (*options == '^') stopearly++; else if (*options == '<') minargs=*(++options)-'0'; else if (*options == '>') maxargs=*(++options)-'0'; else if (*options == '?') gof.noerror++; @@ -176,6 +176,7 @@ options++; } + if (!*options) stopearly++; // Parse rest of opts into array while (*options) { char *temp;
--- a/toys/echo.c Sun Jun 22 04:18:39 2008 -0500 +++ b/toys/echo.c Thu Jun 26 22:48:43 2008 -0500 @@ -6,7 +6,7 @@ * * See http://www.opengroup.org/onlinepubs/009695399/utilities/echo.html -USE_ECHO(NEWTOY(echo, "+?en", TOYFLAG_BIN)) +USE_ECHO(NEWTOY(echo, "^?en", TOYFLAG_BIN)) config ECHO bool "echo"