32
30
#define GET_ENUM 12
34
32
#define GET_DOUBLE 14
37
#define GET_ULONG_IS_FAIL 17
39
34
#define GET_ASK_ADDR 128
40
35
#define GET_TYPE_MASK 127
41
#include <mysys/my_sys.h>
47
43
enum get_opt_arg_type { NO_ARG, OPT_ARG, REQUIRED_ARG };
69
65
typedef bool (* my_get_one_option) (int, const struct my_option *, char * );
70
66
typedef void (* my_error_reporter) (enum loglevel level, const char *format, ... );
71
typedef char ** (*getopt_get_addr_func)(const char *, uint32_t, const struct my_option *);
73
68
extern char *disabled_my_option;
74
69
extern bool my_getopt_print_errors;
75
70
extern bool my_getopt_skip_unknown;
76
71
extern my_error_reporter my_getopt_error_reporter;
77
void default_reporter(enum loglevel level, const char *format, ...);
79
extern int handle_options (int *argc, char ***argv,
73
extern int handle_options (int *argc, char ***argv,
80
74
const struct my_option *longopts, my_get_one_option);
81
75
extern void my_cleanup_options(const struct my_option *options);
82
76
extern void my_print_help(const struct my_option *options);
83
77
extern void my_print_variables(const struct my_option *options);
84
extern void my_getopt_register_get_addr(getopt_get_addr_func func_addr);
78
extern void my_getopt_register_get_addr(char ** (*func_addr)(const char *, uint,
79
const struct my_option *));
86
81
uint64_t getopt_ull_limit_value(uint64_t num, const struct my_option *optp,