27 #define __need_error_t
35 # define __const const
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
143 typedef 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)
400 extern 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;
404 extern 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;
415 extern __const
char *argp_program_version;
422 extern void (*argp_program_version_hook) (FILE *__restrict __stream,
431 extern __const
char *argp_program_bug_address;
436 extern 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)
469 extern void argp_help (__const
struct argp *__restrict __argp,
470 FILE *__restrict __stream,
471 unsigned __flags,
char *__restrict __name) __THROW;
472 extern void __argp_help (__const
struct argp *__restrict __argp,
473 FILE *__restrict __stream,
unsigned __flags,
474 char *__name) __THROW;
486 extern void argp_state_help (__const
struct argp_state *__restrict __state,
487 FILE *__restrict __stream,
488 unsigned int __flags) __THROW;
489 extern void __argp_state_help (__const
struct argp_state *__restrict __state,
490 FILE *__restrict __stream,
491 unsigned int __flags) __THROW;
494 extern void argp_usage (__const
struct argp_state *__state) __THROW;
495 extern void __argp_usage (__const
struct argp_state *__state) __THROW;
500 extern void argp_error (__const
struct argp_state *__restrict __state,
501 __const
char *__restrict __fmt, ...) __THROW
503 extern
void __argp_error (__const struct
argp_state *__restrict __state,
504 __const
char *__restrict __fmt, ...) __THROW
515 extern
void argp_failure (__const struct
argp_state *__restrict __state,
516 int __status,
int __errnum,
517 __const
char *__restrict __fmt, ...) __THROW
519 extern
void __argp_failure (__const struct
argp_state *__restrict __state,
520 int __status,
int __errnum,
521 __const
char *__restrict __fmt, ...) __THROW
525 extern
int _option_is_short (__const struct
argp_option *__opt) __THROW;
526 extern
int __option_is_short (__const struct
argp_option *__opt) __THROW;
530 extern
int _option_is_end (__const struct
argp_option *__opt) __THROW;
531 extern
int __option_is_end (__const struct
argp_option *__opt) __THROW;
535 extern
void *_argp_input (__const struct
argp *__restrict __argp,
536 __const struct
argp_state *__restrict __state)
538 extern
void *__argp_input (__const struct
argp *__restrict __argp,
539 __const struct
argp_state *__restrict __state)
543 extern
char *_argp_basename(
char *name) __THROW;
544 extern
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);
585 __option_is_end (__const
struct argp_option *__opt)
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