42#define CMDOPT_EXISTS 0b00000001
43#define CMDOPT_OPTIONAL 0b00000010
44#define CMDOPT_TAKESARG 0b00000100
45#define CMDOPT_MAYTAKEARG 0b00001000
47#define CMDAPP_MODE_MULTIFLAG 0b00000000
48#define CMDAPP_MODE_SHORTARG 0b00000001
49#define CMDAPP_MODE_SILENT 0b00000000
50#define CMDAPP_MODE_PRINT 0b00000010
51#define _CMDAPP_MODE_EXIT 0b10000000
54#define cmdopt_exists(opt) ((opt).flags & CMDOPT_EXISTS)
56#define cmdopt_is_optional(opt) ((opt).flags | CMDOPT_OPTIONAL)
94#define cmdapp_should_exit(app) ((app)->_mode & _CMDAPP_MODE_EXIT)
105 cmdopt_t** conflicts,
const char* description,
void cmdapp_set(cmdapp_t *app, char shorto, const char *longo, uint8_t flags, cmdopt_t **conflicts, const char *description, const char *argtype, cmdopt_t *option)
void cmdapp_enable_procedure(cmdapp_t *app, cmdapp_procedure_t proc, void *user_data)
void cmdapp_print_version(cmdapp_t *app)
void cmdapp_print_help(cmdapp_t *app)
cmdargs_t * cmdapp_getargs(cmdapp_t *app)
int cmdapp_run(cmdapp_t *app)
void(* cmdapp_procedure_t)(void *data, cmdopt_t *option, const char *arg)
struct _cmdopt_internal_t cmdopt_internal_t
void cmdapp_error(cmdapp_t *app, const char *fmt,...)
void cmdapp_destroy(cmdapp_t *app)
void cmdapp_init(cmdapp_t *app, int argc, char **argv, cmdapp_mode_t mode, const cmdapp_info_t *info)
cmdopt_internal_t ** _start