Lines Matching refs:options
228 static int parse_short_opt(struct parse_opt_ctx_t *p, const struct option *options) in parse_short_opt() argument
230 for (; options->type != OPTION_END; options++) { in parse_short_opt()
231 if (options->short_name == *p->opt) { in parse_short_opt()
233 return get_value(p, options, OPT_SHORT); in parse_short_opt()
240 const struct option *options) in parse_long_opt() argument
249 for (; options->type != OPTION_END; options++) { in parse_long_opt()
253 if (!options->long_name) in parse_long_opt()
256 rest = skip_prefix(arg, options->long_name); in parse_long_opt()
257 if (options->type == OPTION_ARGUMENT) { in parse_long_opt()
261 return opterror(options, "takes no value", flags); in parse_long_opt()
268 if (!prefixcmp(options->long_name, "no-")) { in parse_long_opt()
275 rest = skip_prefix(arg, options->long_name + 3); in parse_long_opt()
281 if (!prefixcmp(options->long_name + 3, arg)) { in parse_long_opt()
287 if (!strncmp(options->long_name, arg, arg_end - arg)) { in parse_long_opt()
301 abbrev_option = options; in parse_long_opt()
314 rest = skip_prefix(arg + 3, options->long_name); in parse_long_opt()
316 if (!rest && !prefixcmp(options->long_name, arg + 3)) in parse_long_opt()
327 return get_value(p, options, flags); in parse_long_opt()
343 static void check_typos(const char *arg, const struct option *options) in check_typos() argument
353 for (; options->type != OPTION_END; options++) { in check_typos()
354 if (!options->long_name) in check_typos()
356 if (!prefixcmp(options->long_name, arg)) { in check_typos()
382 const struct option *options, in parse_options_step() argument
404 return usage_with_options_internal(usagestr, options, 0, ctx); in parse_options_step()
406 switch (parse_short_opt(ctx, options)) { in parse_options_step()
408 return parse_options_usage(usagestr, options, arg, 1); in parse_options_step()
417 check_typos(arg, options); in parse_options_step()
420 return usage_with_options_internal(usagestr, options, 0, ctx); in parse_options_step()
422 switch (parse_short_opt(ctx, options)) { in parse_options_step()
424 return parse_options_usage(usagestr, options, arg, 1); in parse_options_step()
453 return usage_with_options_internal(usagestr, options, 1, ctx); in parse_options_step()
455 return usage_with_options_internal(usagestr, options, 0, ctx); in parse_options_step()
460 switch (parse_long_opt(ctx, arg, options)) { in parse_options_step()
462 return parse_options_usage(usagestr, options, arg, 0); in parse_options_step()
481 parse_options_usage(usagestr, options, arg, excl_short_opt); in parse_options_step()
485 parse_options_usage(NULL, options, &opt, 1); in parse_options_step()
487 parse_options_usage(NULL, options, ctx->excl_opt->long_name, 0); in parse_options_step()
499 int parse_options_subcommand(int argc, const char **argv, const struct option *options, in parse_options_subcommand() argument
523 switch (parse_options_step(&ctx, options, usagestr)) { in parse_options_subcommand()
529 while (options->type != OPTION_END) { in parse_options_subcommand()
530 if (options->long_name) in parse_options_subcommand()
531 printf("--%s ", options->long_name); in parse_options_subcommand()
532 options++; in parse_options_subcommand()
551 usage_with_options(usagestr, options); in parse_options_subcommand()
557 int parse_options(int argc, const char **argv, const struct option *options, in parse_options() argument
560 return parse_options_subcommand(argc, argv, options, NULL, in parse_options()