38#ifndef __error_t_defined
40# define __error_t_defined
57# define PRINTF_STYLE(f, a) __attribute__ ((__format__ (__printf__, f, a)))
59# define PRINTF_STYLE(f, a)
107#define OPTION_ARG_OPTIONAL 0x1
110#define OPTION_HIDDEN 0x2
115#define OPTION_ALIAS 0x4
127#define OPTION_DOC 0x8
136#define OPTION_NO_USAGE 0x10
143typedef error_t (*argp_parser_t) (
int key,
char *arg,
151#define ARGP_ERR_UNKNOWN E2BIG
179#define ARGP_KEY_ARG 0
185#define ARGP_KEY_ARGS 0x1000006
187#define ARGP_KEY_END 0x1000001
193#define ARGP_KEY_NO_ARGS 0x1000002
197#define ARGP_KEY_INIT 0x1000003
199#define ARGP_KEY_FINI 0x1000007
202#define ARGP_KEY_SUCCESS 0x1000004
204#define ARGP_KEY_ERROR 0x1000005
232 __const
char *args_doc;
257 char *(*help_filter) (
int __key, __const
char *__text,
void *__input);
262 const char *argp_domain;
266#define ARGP_KEY_HELP_PRE_DOC 0x2000001
267#define ARGP_KEY_HELP_POST_DOC 0x2000002
268#define ARGP_KEY_HELP_HEADER 0x2000003
269#define ARGP_KEY_HELP_EXTRA 0x2000004
273#define ARGP_KEY_HELP_DUP_ARGS_NOTE 0x2000005
274#define ARGP_KEY_HELP_ARGS_DOC 0x2000006
290 __const
char *header;
306 __const
struct argp *root_argp;
356#define ARGP_PARSE_ARGV0 0x01
362#define ARGP_NO_ERRS 0x02
374#define ARGP_NO_ARGS 0x04
378#define ARGP_IN_ORDER 0x08
382#define ARGP_NO_HELP 0x10
385#define ARGP_NO_EXIT 0x20
388#define ARGP_LONG_ONLY 0x40
391#define ARGP_SILENT (ARGP_NO_EXIT | ARGP_NO_ERRS | ARGP_NO_HELP)
400extern error_t argp_parse (__const
struct argp *__restrict __argp,
401 int ,
char **__restrict ,
402 unsigned __flags,
int *__restrict __arg_index,
403 void *__restrict __input) __THROW;
404extern error_t __argp_parse (__const
struct argp *__restrict __argp,
405 int ,
char **__restrict ,
406 unsigned __flags,
int *__restrict __arg_index,
407 void *__restrict __input) __THROW;
415extern __const
char *argp_program_version;
422extern void (*argp_program_version_hook) (FILE *__restrict __stream,
431extern __const
char *argp_program_bug_address;
436extern error_t argp_err_exit_status;
439#define ARGP_HELP_USAGE 0x01
440#define ARGP_HELP_SHORT_USAGE 0x02
441#define ARGP_HELP_SEE 0x04
442#define ARGP_HELP_LONG 0x08
443#define ARGP_HELP_PRE_DOC 0x10
444#define ARGP_HELP_POST_DOC 0x20
445#define ARGP_HELP_DOC (ARGP_HELP_PRE_DOC | ARGP_HELP_POST_DOC)
446#define ARGP_HELP_BUG_ADDR 0x40
447#define ARGP_HELP_LONG_ONLY 0x80
451#define ARGP_HELP_EXIT_ERR 0x100
452#define ARGP_HELP_EXIT_OK 0x200
456#define ARGP_HELP_STD_ERR \
457 (ARGP_HELP_SEE | ARGP_HELP_EXIT_ERR)
460#define ARGP_HELP_STD_USAGE \
461 (ARGP_HELP_SHORT_USAGE | ARGP_HELP_SEE | ARGP_HELP_EXIT_ERR)
463#define ARGP_HELP_STD_HELP \
464 (ARGP_HELP_SHORT_USAGE | ARGP_HELP_LONG | ARGP_HELP_EXIT_OK \
465 | ARGP_HELP_DOC | ARGP_HELP_BUG_ADDR)
469extern void argp_help (__const
struct argp *__restrict __argp,
470 FILE *__restrict __stream,
471 unsigned __flags,
char *__restrict __name) __THROW;
472extern void __argp_help (__const
struct argp *__restrict __argp,
473 FILE *__restrict __stream,
unsigned __flags,
474 char *__name) __THROW;
486extern void argp_state_help (__const
struct argp_state *__restrict __state,
487 FILE *__restrict __stream,
488 unsigned int __flags) __THROW;
489extern void __argp_state_help (__const
struct argp_state *__restrict __state,
490 FILE *__restrict __stream,
491 unsigned int __flags) __THROW;
494extern void argp_usage (__const
struct argp_state *__state) __THROW;
495extern void __argp_usage (__const
struct argp_state *__state) __THROW;
500extern void argp_error (__const
struct argp_state *__restrict __state,
501 __const
char *__restrict __fmt, ...) __THROW
503extern
void __argp_error (__const struct
argp_state *__restrict __state,
504 __const
char *__restrict __fmt, ...) __THROW
515extern
void argp_failure (__const struct
argp_state *__restrict __state,
516 int __status,
int __errnum,
517 __const
char *__restrict __fmt, ...) __THROW
519extern
void __argp_failure (__const struct
argp_state *__restrict __state,
520 int __status,
int __errnum,
521 __const
char *__restrict __fmt, ...) __THROW
525extern
int _option_is_short (__const struct
argp_option *__opt) __THROW;
526extern
int __option_is_short (__const struct
argp_option *__opt) __THROW;
530extern
int _option_is_end (__const struct
argp_option *__opt) __THROW;
531extern
int __option_is_end (__const struct
argp_option *__opt) __THROW;
535extern
void *_argp_input (__const struct
argp *__restrict __argp,
536 __const struct
argp_state *__restrict __state)
538extern
void *__argp_input (__const struct
argp *__restrict __argp,
539 __const struct
argp_state *__restrict __state)
543extern
char *_argp_basename(
char *name) __THROW;
544extern
char *__argp_basename(
char *name) __THROW;
548_argp_short_program_name(const struct
argp_state *state) __THROW;
550__argp_short_program_name(const struct
argp_state *state) __THROW;
553#ifdef __USE_EXTERN_INLINES
556# define __argp_usage argp_usage
557# define __argp_state_help argp_state_help
558# define __option_is_short _option_is_short
559# define __option_is_end _option_is_end
563# define ARGP_EI extern __inline__
567__argp_usage (__const
struct argp_state *__state)
569 __argp_state_help (__state, stderr, ARGP_HELP_STD_USAGE);
573__option_is_short (__const
struct argp_option *__opt)
575 if (__opt->flags & OPTION_DOC)
579 int __key = __opt->key;
580 return __key > 0 && isprint (__key);
587 return !__opt->key && !__opt->name && !__opt->doc && !__opt->group;
592# undef __argp_state_help
593# undef __option_is_short
594# undef __option_is_end