This structure has the following fields, which may be modified as noted:
const struct argp *const root_argp
- The top level argp parser being parsed. Note that this is often
not the same
struct argp passed into argp_parse by
the invoking program (see Argp), but instead an internal argp parser
that contains options implemented by argp_parse itself (such as
--help ).
int argc
char **argv
- The argument vector being parsed. May be modified.
int next
- The index in
argv of the next argument to be parsed. May be modified.
One way to consume all remaining arguments in the input is to set
state->next = state->argc (perhaps after recording
the value of the next field to find the consumed arguments).
Also, you can cause the current option to be re-parsed by decrementing
this field, and then modifying
state->argv[state->next] to be the option that should
be reexamined.
unsigned flags
- The flags supplied to
argp_parse . May be modified, although some
flags may only take effect when argp_parse is first invoked.
See Argp Flags.
unsigned arg_num
- While calling a parsing function with the key argument
ARGP_KEY_ARG , this is the number of the current arg, starting at
0, and incremented after each such call returns. At all other times,
this is the number of such arguments that have been processed.
int quoted
- If non-zero, the index in
argv of the first argument following a
special -- argument (which prevents anything following being
interpreted as an option). Only set once argument parsing has proceeded
past this point.
void *input
- An arbitrary pointer passed in from the caller of
argp_parse , in
the input argument.
void **child_inputs
- Values to pass to child parsers. This vector will be the same length as
the number of children in the current parser, and each child parser will
be given the value of
state->child_inputs[i] as
its state->input field, where i is the index
of the child in the this parser's children field. See Argp
Children.
void *hook
- For the parser function's use. Initialized to 0, but otherwise ignored
by argp.
char *name
- The name used when printing messages. This is initialized to
argv[0] , or program_invocation_name if that is
unavailable.
FILE *err_stream
FILE *out_stream
- Stdio streams used when argp prints something; error messages are
printed to
err_stream , and all other output (such as
--help output) to out_stream . These are initialized to
stderr and stdout respectively (see Standard Streams).
void *pstate
- Private, for use by the argp implementation.
|