Option parsing: stopearly is now a ^ prefix (not +), and an option string with
authorRob Landley <rob@landley.net>
Fri, 27 Jun 2008 03:48:43 +0000 (22:48 -0500)
committerRob Landley <rob@landley.net>
Fri, 27 Jun 2008 03:48:43 +0000 (22:48 -0500)
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).

lib/args.c
toys/echo.c
toys/oneit.c
toys/seq.c

index ee915b4..60b99d2 100644 (file)
@@ -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 @@ void get_optflags(void)
 
                // 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 @@ void get_optflags(void)
                        options++;
                }
 
+               if (!*options) stopearly++;
                // Parse rest of opts into array
                while (*options) {
                        char *temp;
index fda008a..5feb989 100644 (file)
@@ -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"
index 4c36491..341bb08 100644 (file)
@@ -6,7 +6,7 @@
  *
  * Not in SUSv3.
 
-USE_ONEIT(NEWTOY(oneit, "+<1c:p", TOYFLAG_SBIN))
+USE_ONEIT(NEWTOY(oneit, "^<1c:p", TOYFLAG_SBIN))
 
 config ONEIT
        bool "oneit"
index 8eb8fb8..ced5e8f 100644 (file)
@@ -6,7 +6,7 @@
  *
  * Not in SUSv3.  (Don't ask me why not.)
 
-USE_SEQ(NEWTOY(seq, "<1>3?+", TOYFLAG_USR|TOYFLAG_BIN))
+USE_SEQ(NEWTOY(seq, "<1>3?", TOYFLAG_USR|TOYFLAG_BIN))
 
 config SEQ
        bool "seq"