smarter missing argument errors
This commit is contained in:
parent
f86dbffc93
commit
3b30447bca
1 changed files with 7 additions and 4 deletions
11
args.h
11
args.h
|
@ -46,6 +46,7 @@ static char** args_argv = NULL;
|
||||||
|
|
||||||
static int args_current = 0;
|
static int args_current = 0;
|
||||||
static int args_previous = 0;
|
static int args_previous = 0;
|
||||||
|
static char* args_previous_name = NULL;
|
||||||
|
|
||||||
static char args_is_blank(char* s)
|
static char args_is_blank(char* s)
|
||||||
{
|
{
|
||||||
|
@ -120,12 +121,13 @@ static char* args__poll(char wants_switch)
|
||||||
if (args_current >= args_argc) {
|
if (args_current >= args_argc) {
|
||||||
if (args_current - 1 == args_previous)
|
if (args_current - 1 == args_previous)
|
||||||
fprintf(stderr, "%s requires an argument.\n",
|
fprintf(stderr, "%s requires an argument.\n",
|
||||||
args_argv[args_previous]);
|
args_previous_name);
|
||||||
else
|
else
|
||||||
fprintf(stderr, "%s requires another argument.\n",
|
fprintf(stderr, "%s requires another argument.\n",
|
||||||
args_argv[args_previous]);
|
args_previous_name);
|
||||||
args_print_usage();
|
args_print_usage();
|
||||||
exit(1);
|
exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
arg = args_argv[args_current];
|
arg = args_argv[args_current];
|
||||||
if (!wants_switch) {
|
if (!wants_switch) {
|
||||||
|
@ -142,9 +144,8 @@ static char* args__poll(char wants_switch)
|
||||||
args_current++;
|
args_current++;
|
||||||
}
|
}
|
||||||
return short_;
|
return short_;
|
||||||
} else {
|
|
||||||
args_current++;
|
|
||||||
}
|
}
|
||||||
|
args_current++;
|
||||||
return arg;
|
return arg;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -172,6 +173,8 @@ void args_handle(int argc, char** argv)
|
||||||
|
|
||||||
args_previous = args_current;
|
args_previous = args_current;
|
||||||
name = args_poll_for_switch();
|
name = args_poll_for_switch();
|
||||||
|
args_previous_name = name;
|
||||||
|
|
||||||
index = args_get_index(name);
|
index = args_get_index(name);
|
||||||
if (index < 0) {
|
if (index < 0) {
|
||||||
fprintf(stderr, "Unknown option: %s\n", name);
|
fprintf(stderr, "Unknown option: %s\n", name);
|
||||||
|
|
Loading…
Add table
Reference in a new issue