Lines Matching refs:options

324 static int parse_short_opt(struct parse_opt_ctx_t *p, const struct option *options)  in parse_short_opt()  argument
327 for (; options->type != OPTION_END; options++) { in parse_short_opt()
328 if (options->short_name == *p->opt) { in parse_short_opt()
330 return get_value(p, options, OPT_SHORT); in parse_short_opt()
334 if (options->parent) { in parse_short_opt()
335 options = options->parent; in parse_short_opt()
343 const struct option *options) in parse_long_opt() argument
353 for (; options->type != OPTION_END; options++) { in parse_long_opt()
357 if (!options->long_name) in parse_long_opt()
360 rest = skip_prefix(arg, options->long_name); in parse_long_opt()
361 if (options->type == OPTION_ARGUMENT) { in parse_long_opt()
365 return opterror(options, "takes no value", flags); in parse_long_opt()
372 if (strstarts(options->long_name, "no-")) { in parse_long_opt()
379 rest = skip_prefix(arg, options->long_name + 3); in parse_long_opt()
385 if (strstarts(options->long_name + 3, arg)) { in parse_long_opt()
391 if (!strncmp(options->long_name, arg, arg_end - arg)) { in parse_long_opt()
405 abbrev_option = options; in parse_long_opt()
418 rest = skip_prefix(arg + 3, options->long_name); in parse_long_opt()
420 if (!rest && strstarts(options->long_name, arg + 3)) in parse_long_opt()
431 return get_value(p, options, flags); in parse_long_opt()
447 if (options->parent) { in parse_long_opt()
448 options = options->parent; in parse_long_opt()
455 static void check_typos(const char *arg, const struct option *options) in check_typos() argument
465 for (; options->type != OPTION_END; options++) { in check_typos()
466 if (!options->long_name) in check_typos()
468 if (strstarts(options->long_name, arg)) { in check_typos()
494 const struct option *options, in parse_options_step() argument
516 return usage_with_options_internal(usagestr, options, 0, ctx); in parse_options_step()
518 switch (parse_short_opt(ctx, options)) { in parse_options_step()
520 return parse_options_usage(usagestr, options, arg, 1); in parse_options_step()
529 check_typos(arg, options); in parse_options_step()
532 return usage_with_options_internal(usagestr, options, 0, ctx); in parse_options_step()
534 switch (parse_short_opt(ctx, options)) { in parse_options_step()
536 return parse_options_usage(usagestr, options, arg, 1); in parse_options_step()
565 return usage_with_options_internal(usagestr, options, 1, ctx); in parse_options_step()
567 return usage_with_options_internal(usagestr, options, 0, ctx); in parse_options_step()
572 switch (parse_long_opt(ctx, arg, options)) { in parse_options_step()
574 return parse_options_usage(usagestr, options, arg, 0); in parse_options_step()
593 parse_options_usage(usagestr, options, arg, excl_short_opt); in parse_options_step()
597 parse_options_usage(NULL, options, &opt, 1); in parse_options_step()
599 parse_options_usage(NULL, options, ctx->excl_opt->long_name, 0); in parse_options_step()
611 int parse_options_subcommand(int argc, const char **argv, const struct option *options, in parse_options_subcommand() argument
633 switch (parse_options_step(&ctx, options, usagestr)) { in parse_options_subcommand()
639 while (options->type != OPTION_END) { in parse_options_subcommand()
640 if (options->long_name) in parse_options_subcommand()
641 printf("--%s ", options->long_name); in parse_options_subcommand()
642 options++; in parse_options_subcommand()
659 usage_with_options(usagestr, options); in parse_options_subcommand()
665 int parse_options(int argc, const char **argv, const struct option *options, in parse_options() argument
668 return parse_options_subcommand(argc, argv, options, NULL, in parse_options()