Initial Patch of Auction House bot rev. 135
[auctionmangos.git] / dep / include / mysql / my_getopt.h
blobf5688a37231618c43e62bfdeca58e1d3d371c86d
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 */
16 #ifndef _my_getopt_h
17 #define _my_getopt_h
19 C_MODE_START
21 #define GET_NO_ARG 1
22 #define GET_BOOL 2
23 #define GET_INT 3
24 #define GET_UINT 4
25 #define GET_LONG 5
26 #define GET_ULONG 6
27 #define GET_LL 7
28 #define GET_ULL 8
29 #define GET_STR 9
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 };
38 struct my_option
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 */
46 ulong var_type;
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,
71 bool *fixed);
72 my_bool getopt_compare_strings(const char *s, const char *t, uint length);
74 C_MODE_END
76 #endif /* _my_getopt_h */