1 /* Copyright (C) 2002-2004 MySQL AB
3 This program is free software; you can redistribute it and/or modify
4 it under the terms of the GNU General Public License as published by
5 the Free Software Foundation; version 2 of the License.
7 This program is distributed in the hope that it will be useful,
8 but WITHOUT ANY WARRANTY; without even the implied warranty of
9 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10 GNU General Public License for more details.
12 You should have received a copy of the GNU General Public License
13 along with this program; if not, write to the Free Software
14 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
30 #define GET_STR_ALLOC 10
31 #define GET_DISABLED 11
33 #define GET_ASK_ADDR 128
34 #define GET_TYPE_MASK 127
36 enum get_opt_arg_type
{ NO_ARG
, OPT_ARG
, REQUIRED_ARG
};
40 const char *name
; /* Name of the option */
41 int id
; /* unique id or short option */
42 const char *comment
; /* option comment, for autom. --help */
43 gptr
*value
; /* The variable value */
44 gptr
*u_max_value
; /* The user def. max variable value */
45 const char **str_values
; /* Pointer to possible values */
47 enum get_opt_arg_type arg_type
;
48 longlong def_value
; /* Default value */
49 longlong min_value
; /* Min allowed value */
50 longlong max_value
; /* Max allowed value */
51 longlong sub_size
; /* Subtract this from given value */
52 long block_size
; /* Value should be a mult. of this */
53 int app_type
; /* To be used by an application */
56 typedef my_bool (* my_get_one_option
) (int, const struct my_option
*, char * );
57 typedef void (* my_error_reporter
) (enum loglevel level
, const char *format
, ... );
59 extern char *disabled_my_option
;
60 extern my_bool my_getopt_print_errors
;
61 extern my_error_reporter my_getopt_error_reporter
;
63 extern int handle_options (int *argc
, char ***argv
,
64 const struct my_option
*longopts
, my_get_one_option
);
65 extern void my_print_help(const struct my_option
*options
);
66 extern void my_print_variables(const struct my_option
*options
);
67 extern void my_getopt_register_get_addr(gptr
* (*func_addr
)(const char *, uint
,
68 const struct my_option
*));
70 ulonglong
getopt_ull_limit_value(ulonglong num
, const struct my_option
*optp
,
72 my_bool
getopt_compare_strings(const char *s
, const char *t
, uint length
);
76 #endif /* _my_getopt_h */