]> git.cworth.org Git - rrsolve/blobdiff - src/args.c
Added support for solving boards in files provided on the command line.
[rrsolve] / src / args.c
index 67d970361df624784842a2971e993f64d22d1ddf..90edc984f154dc882f0a58aab62361d4d4c6377f 100644 (file)
@@ -35,7 +35,7 @@ const char *argp_program_bug_address = "<carl@theworths.org>";
 
 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);
 }