From 4d3b3da2746f6b71b4f1f2649a800818e88a1b66 Mon Sep 17 00:00:00 2001 From: Rob Landley Date: Sat, 22 Jun 2013 15:36:25 -0500 Subject: Option type @ counts number of occurrences, it doesn't take an argument. --- lib/args.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'lib/args.c') diff --git a/lib/args.c b/lib/args.c index 0efad075..ae608e03 100644 --- a/lib/args.c +++ b/lib/args.c @@ -142,7 +142,9 @@ static int gotflag(struct getoptflagstate *gof, struct opts *opt) // Does this option take an argument? gof->arg++; type = opt->type; - if (type) { + + if (type == '@') ++*(opt->arg); + else if (type) { char *arg = gof->arg; // Handle "-xblah" and "-x blah", but also a third case: "abxc blah" @@ -176,7 +178,7 @@ static int gotflag(struct getoptflagstate *gof, struct opts *opt) error_exit("-%c < %lf", opt->c, (double)opt->val[0].f); if (opt->val[1].l != LONG_MAX && *f > opt->val[1].f) error_exit("-%c > %lf", opt->c, (double)opt->val[1].f); - } else if (type == '@') ++*(opt->arg); + } if (!gof->nodash_now) gof->arg = ""; } -- cgit v1.2.3