28 const struct mi_opt *opts,
int *oind,
char **oarg,
35 if (*oind > argc || *oind < 0)
37 _(
"mi_getopt_long: oind out of bounds"));
42 if (strcmp (arg,
"--") == 0)
55 for (opt = opts; opt->
name != NULL; opt++)
57 if (strcmp (opt->
name, arg + 1) != 0)
63 error (
_(
"%s: Option %s requires an argument"), prefix, arg);
64 *oarg = argv[(*oind) + 1];
77 error (
_(
"%s: Unknown option ``%s''"), prefix, arg + 1);
84 int argc,
char **argv,
86 int *oind,
char **oarg)
88 return mi_getopt_1 (prefix, argc, argv, opts, oind, oarg, 1);
93 const struct mi_opt *opts,
int *oind,
char **oarg)
95 return mi_getopt_1 (prefix, argc, argv, opts, oind, oarg, 0);
103 static const struct mi_opt opts[] =
108 if (
mi_getopt (prefix, argc, argv, opts, &oind, &oarg) == -1)
void internal_error(const char *file, int line, const char *fmt,...)
int mi_getopt(const char *prefix, int argc, char **argv, const struct mi_opt *opts, int *oind, char **oarg)
static int mi_getopt_1(const char *prefix, int argc, char **argv, const struct mi_opt *opts, int *oind, char **oarg, int error_on_unknown)
int mi_valid_noargs(const char *prefix, int argc, char **argv)
int mi_getopt_allow_unknown(const char *prefix, int argc, char **argv, const struct mi_opt *opts, int *oind, char **oarg)
void error(const char *fmt,...)