aboutsummaryrefslogtreecommitdiff
path: root/lib/args.c
diff options
context:
space:
mode:
authorRob Landley <rob@landley.net>2008-06-26 22:48:43 -0500
committerRob Landley <rob@landley.net>2008-06-26 22:48:43 -0500
commitb1487dc9ed8c892afde94a8ac04350e3ca0e7074 (patch)
treef9e041f48ececa6e63decbd2957394275f81d3e6 /lib/args.c
parentf901f24334ee8c0f03b72c2a1ad365b61334db5a (diff)
downloadtoybox-b1487dc9ed8c892afde94a8ac04350e3ca0e7074.tar.gz
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).
Diffstat (limited to 'lib/args.c')
-rw-r--r--lib/args.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/lib/args.c b/lib/args.c
index ee915b46..60b99d20 100644
--- a/lib/args.c
+++ b/lib/args.c
@@ -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;