| 1 | /* Copyright (C) 2013 Monty Program Ab | 
| 2 |  | 
| 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. | 
| 6 |  | 
| 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. | 
| 11 |  | 
| 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., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA */ | 
| 15 |  | 
| 16 | /* Definitions for mysys/my_default.c */ | 
| 17 |  | 
| 18 | #ifndef MY_DEFAULT_INCLUDED | 
| 19 | #define MY_DEFAULT_INCLUDED | 
| 20 |  | 
| 21 | C_MODE_START | 
| 22 |  | 
| 23 | extern const char *; | 
| 24 | extern const char *my_defaults_group_suffix; | 
| 25 | extern const char *my_defaults_file; | 
| 26 | extern my_bool my_getopt_use_args_separator; | 
| 27 | extern my_bool my_getopt_is_args_separator(const char* arg); | 
| 28 |  | 
| 29 | /* Define the type of function to be passed to process_default_option_files */ | 
| 30 | typedef int (*Process_option_func)(void *ctx, const char *group_name, | 
| 31 |                                    const char *option); | 
| 32 |  | 
| 33 | extern int get_defaults_options(int argc, char **argv, | 
| 34 |                                 char **defaults, char **, | 
| 35 |                                 char **group_suffix); | 
| 36 | extern int my_load_defaults(const char *conf_file, const char **groups, | 
| 37 |                             int *argc, char ***argv, const char ***); | 
| 38 | extern int load_defaults(const char *conf_file, const char **groups, | 
| 39 |                          int *argc, char ***argv); | 
| 40 | extern int my_search_option_files(const char *conf_file, int *argc, | 
| 41 |                                   char ***argv, uint *args_used, | 
| 42 |                                   Process_option_func func, void *func_ctx, | 
| 43 |                                   const char **default_directories); | 
| 44 | extern void free_defaults(char **argv); | 
| 45 | extern void my_print_default_files(const char *conf_file); | 
| 46 | extern void print_defaults(const char *conf_file, const char **groups); | 
| 47 |  | 
| 48 |  | 
| 49 | /** Simplify load_defaults() common use */ | 
| 50 | #define load_defaults_or_exit(A, B, C, D) switch (load_defaults(A, B, C, D)) { \ | 
| 51 |                                           case 0: break; \ | 
| 52 |                                           case 4: my_end(0); exit(0); \ | 
| 53 |                                           default: my_end(0); exit(1); } | 
| 54 |  | 
| 55 | C_MODE_END | 
| 56 |  | 
| 57 | #endif /* MY_DEFAULT_INCLUDED */ | 
| 58 |  |