X-Git-Url: https://git.cworth.org/git?a=blobdiff_plain;f=src%2Fargs.c;h=90edc984f154dc882f0a58aab62361d4d4c6377f;hb=073736b9a3889b8ca726bf4e16067c4af11d1504;hp=67d970361df624784842a2971e993f64d22d1ddf;hpb=2c00783f6c19313d78dc29fc65c483f5e5d0c81b;p=rrsolve diff --git a/src/args.c b/src/args.c index 67d9703..90edc98 100644 --- a/src/args.c +++ b/src/args.c @@ -35,7 +35,7 @@ const char *argp_program_bug_address = ""; static char doc[] = "rrsolve - Ricochet Robot solver"; -static char args_doc[] = ""; +static char args_doc[] = "[file ...]"; static struct argp_option options[] = { /* name, key, arg, flags, doc */ @@ -66,16 +66,11 @@ parse_opt (int key, char *arg, struct argp_state *state) break; case ARGP_KEY_ARG: - argp_usage (state); + /* Consume all remaining non-option arguments */ + args->files = &state->argv[state->next - 1]; + state->next = state->argc; break; -/* - case ARGP_KEY_END: - if (state->arg_num < 1) - argp_usage (state); - break; -*/ - default: return ARGP_ERR_UNKNOWN; } @@ -98,6 +93,9 @@ args_parse(args_t *args, int argc, char *argv[]) args->game = getenv ("RR_GAME"); if (args->game == NULL) args->game = ARGS_GAME_DEFAULT; + args->files = NULL; - return argp_parse (&argp, argc, argv, 0, 0, args); + return argp_parse (&argp, argc, argv, + ARGP_LONG_ONLY, + NULL, args); }