/* MI Option Parser.
- Copyright (C) 2000, 2007, 2008, 2009 Free Software Foundation, Inc.
+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
Contributed by Cygnus Solutions (a Red Hat company).
This file is part of GDB.
#ifndef MI_GETOPT_H
#define MI_GETOPT_H
+/* The option list. Terminated by NAME==NULL. ARG_P that the option
+ requires an argument. INDEX is returned to identify the option. */
+
+struct mi_opt
+ {
+ const char *name;
+ int index;
+ int arg_p;
+ };
+
/* Like getopt() but with simpler semantics.
An option has the form ``-<name>''. The special option ``--''
If ARGV[OPTIND] is not an option, -1 is returned and OPTIND updated
to specify the non-option argument. OPTARG is set to NULL.
- mi_getopt() calls ``error("%s: Unknown option %c", prefix,
- option)'' if an unknown option is encountered. */
+ If an unknown option is encountered, mi_getopt() calls
+ ``error("%s: Unknown option %c", prefix, option)'' while
+ mi_getopt_allow_unknown returns -1. */
-struct mi_opt;
extern int mi_getopt (const char *prefix, int argc, char **argv,
- struct mi_opt *opt, int *optind, char **optarg);
-
-/* The option list. Terminated by NAME==NULL. ARG_P that the option
- requires an argument. INDEX is returned to identify th option. */
-
-struct mi_opt
- {
- const char *name;
- int index;
- int arg_p;
- };
-
-struct mi_opt;
-
-/* mi_valid_noargs
-
- Determines if ARGC/ARGV are a valid set of parameters to satisfy
- an MI function that is not supposed to recieve any arguments.
+ const struct mi_opt *opt, int *optind, char **optarg);
+extern int mi_getopt_allow_unknown (const char *prefix, int argc,
+ char **argv, const struct mi_opt *opts,
+ int *oind, char **oarg);
+
+/* mi_valid_noargs determines if ARGC/ARGV are a valid set of
+ parameters to satisfy an MI function that is not supposed to
+ recieve any arguments.
- An MI function that should not recieve arguments can still be
+ An MI function that should not receive arguments can still be
passed parameters after the special option '--' such as below.
Example: The MI function -exec-run takes no args.