Lines Matching refs:options

225 static int parse_short_opt(struct parse_opt_ctx_t *p, const struct option *options)  in parse_short_opt()  argument
227 for (; options->type != OPTION_END; options++) { in parse_short_opt()
228 if (options->short_name == *p->opt) { in parse_short_opt()
230 return get_value(p, options, OPT_SHORT); in parse_short_opt()
237 const struct option *options) in parse_long_opt() argument
246 for (; options->type != OPTION_END; options++) { in parse_long_opt()
250 if (!options->long_name) in parse_long_opt()
253 rest = skip_prefix(arg, options->long_name); in parse_long_opt()
254 if (options->type == OPTION_ARGUMENT) { in parse_long_opt()
258 return opterror(options, "takes no value", flags); in parse_long_opt()
265 if (!prefixcmp(options->long_name, "no-")) { in parse_long_opt()
272 rest = skip_prefix(arg, options->long_name + 3); in parse_long_opt()
278 if (!prefixcmp(options->long_name + 3, arg)) { in parse_long_opt()
284 if (!strncmp(options->long_name, arg, arg_end - arg)) { in parse_long_opt()
298 abbrev_option = options; in parse_long_opt()
311 rest = skip_prefix(arg + 3, options->long_name); in parse_long_opt()
313 if (!rest && !prefixcmp(options->long_name, arg + 3)) in parse_long_opt()
324 return get_value(p, options, flags); in parse_long_opt()
340 static void check_typos(const char *arg, const struct option *options) in check_typos() argument
350 for (; options->type != OPTION_END; options++) { in check_typos()
351 if (!options->long_name) in check_typos()
353 if (!prefixcmp(options->long_name, arg)) { in check_typos()
378 const struct option *options, in parse_options_step() argument
400 return usage_with_options_internal(usagestr, options, 0); in parse_options_step()
401 switch (parse_short_opt(ctx, options)) { in parse_options_step()
403 return parse_options_usage(usagestr, options, arg, 1); in parse_options_step()
412 check_typos(arg, options); in parse_options_step()
415 return usage_with_options_internal(usagestr, options, 0); in parse_options_step()
417 switch (parse_short_opt(ctx, options)) { in parse_options_step()
419 return parse_options_usage(usagestr, options, arg, 1); in parse_options_step()
448 return usage_with_options_internal(usagestr, options, 1); in parse_options_step()
450 return usage_with_options_internal(usagestr, options, 0); in parse_options_step()
455 switch (parse_long_opt(ctx, arg, options)) { in parse_options_step()
457 return parse_options_usage(usagestr, options, arg, 0); in parse_options_step()
476 parse_options_usage(usagestr, options, arg, excl_short_opt); in parse_options_step()
480 parse_options_usage(NULL, options, &opt, 1); in parse_options_step()
482 parse_options_usage(NULL, options, ctx->excl_opt->long_name, 0); in parse_options_step()
494 int parse_options_subcommand(int argc, const char **argv, const struct option *options, in parse_options_subcommand() argument
518 switch (parse_options_step(&ctx, options, usagestr)) { in parse_options_subcommand()
524 while (options->type != OPTION_END) { in parse_options_subcommand()
525 if (options->long_name) in parse_options_subcommand()
526 printf("--%s ", options->long_name); in parse_options_subcommand()
527 options++; in parse_options_subcommand()
544 usage_with_options(usagestr, options); in parse_options_subcommand()
550 int parse_options(int argc, const char **argv, const struct option *options, in parse_options() argument
553 return parse_options_subcommand(argc, argv, options, NULL, in parse_options()