diff options
author | Sergei Golubchik <serg@mariadb.org> | 2019-09-29 14:38:53 +0200 |
---|---|---|
committer | Sergei Golubchik <serg@mariadb.org> | 2019-10-14 10:29:30 +0200 |
commit | eb3431d5299d8ec531a3f54b0638d30efa391d55 (patch) | |
tree | e3ead19203ebb5131ec07173454b7070cc7f91d1 | |
parent | 8965ae27b9f011333dd1e2dc47db6e0514b5976a (diff) | |
download | mariadb-git-eb3431d5299d8ec531a3f54b0638d30efa391d55.tar.gz |
cleanup: my_getopt, consistency
almost all my_getopt settings and callbacks are global variables,
directly assignable to configure my_getopt. Only getopt_get_addr
was using a setter function. Get rid of it, make it a global
directly assignable variable like all other settings.
Also make getopt_compare_strings() static.
-rw-r--r-- | include/my_getopt.h | 3 | ||||
-rw-r--r-- | mysys/my_getopt.c | 28 | ||||
-rw-r--r-- | sql/mysqld.cc | 6 |
3 files changed, 14 insertions, 23 deletions
diff --git a/include/my_getopt.h b/include/my_getopt.h index 72ce03d5654..709225d47d5 100644 --- a/include/my_getopt.h +++ b/include/my_getopt.h @@ -107,13 +107,13 @@ extern my_bool my_getopt_print_errors; extern my_bool my_getopt_skip_unknown; extern my_bool my_getopt_prefix_matching; extern my_error_reporter my_getopt_error_reporter; +extern my_getopt_value my_getopt_get_addr; extern int handle_options (int *argc, char ***argv, const struct my_option *longopts, my_get_one_option); extern void my_cleanup_options(const struct my_option *options); extern void my_print_help(const struct my_option *options); extern void my_print_variables(const struct my_option *options); -extern void my_getopt_register_get_addr(my_getopt_value); ulonglong getopt_ull_limit_value(ulonglong num, const struct my_option *optp, my_bool *fix); @@ -121,7 +121,6 @@ longlong getopt_ll_limit_value(longlong, const struct my_option *, my_bool *fix); double getopt_double_limit_value(double num, const struct my_option *optp, my_bool *fix); -my_bool getopt_compare_strings(const char *s, const char *t, uint length); ulonglong getopt_double2ulonglong(double); double getopt_ulonglong2double(ulonglong); diff --git a/mysys/my_getopt.c b/mysys/my_getopt.c index 7d539cd44fe..d14e37133ec 100644 --- a/mysys/my_getopt.c +++ b/mysys/my_getopt.c @@ -31,7 +31,7 @@ static void default_reporter(enum loglevel level, const char *format, ...); my_error_reporter my_getopt_error_reporter= &default_reporter; static int findopt(char *, uint, const struct my_option **, const char **); -my_bool getopt_compare_strings(const char *, const char *, uint); +static my_bool getopt_compare_strings(const char *, const char *, uint); static longlong getopt_ll(char *arg, const struct my_option *optp, int *err); static ulonglong getopt_ull(char *, const struct my_option *, int *); static double getopt_double(char *arg, const struct my_option *optp, int *err); @@ -79,8 +79,9 @@ my_bool my_getopt_skip_unknown= 0; */ my_bool my_getopt_prefix_matching= 1; -static void default_reporter(enum loglevel level, - const char *format, ...) +my_getopt_value my_getopt_get_addr= 0; + +static void default_reporter(enum loglevel level, const char *format, ...) { va_list args; DBUG_ENTER("default_reporter"); @@ -97,13 +98,6 @@ static void default_reporter(enum loglevel level, DBUG_VOID_RETURN; } -static my_getopt_value getopt_get_addr; - -void my_getopt_register_get_addr(my_getopt_value func_addr) -{ - getopt_get_addr= func_addr; -} - union ull_dbl { ulonglong ull; @@ -408,9 +402,9 @@ int handle_options(int *argc, char ***argv, DBUG_RETURN(EXIT_OPTION_DISABLED); } error= 0; - value= optp->var_type & GET_ASK_ADDR ? - (*getopt_get_addr)(key_name, (uint) strlen(key_name), optp, &error) : - optp->value; + value= optp->var_type & GET_ASK_ADDR + ? (*my_getopt_get_addr)(key_name, (uint)strlen(key_name), optp, &error) + : optp->value; if (error) DBUG_RETURN(error); @@ -1430,8 +1424,8 @@ static void init_variables(const struct my_option *options, */ if (options->u_max_value) func_init_one_value(options, options->u_max_value, options->max_value); - value= (options->var_type & GET_ASK_ADDR ? - (*getopt_get_addr)("", 0, options, 0) : options->value); + value= options->var_type & GET_ASK_ADDR ? + (*my_getopt_get_addr)("", 0, options, 0) : options->value; if (value) func_init_one_value(options, value, options->def_value); } @@ -1635,8 +1629,8 @@ void my_print_variables(const struct my_option *options) for (optp= options; optp->name; optp++) { - void *value= (optp->var_type & GET_ASK_ADDR ? - (*getopt_get_addr)("", 0, optp, 0) : optp->value); + void *value= optp->var_type & GET_ASK_ADDR ? + (*my_getopt_get_addr)("", 0, optp, 0) : optp->value; if (value) { length= print_name(optp); diff --git a/sql/mysqld.cc b/sql/mysqld.cc index d46505fa3c0..603bb6296bc 100644 --- a/sql/mysqld.cc +++ b/sql/mysqld.cc @@ -6357,7 +6357,6 @@ int handle_early_options() int ho_error; DYNAMIC_ARRAY all_early_options; - my_getopt_register_get_addr(NULL); /* Skip unknown options so that they may be processed later */ my_getopt_skip_unknown= TRUE; @@ -8532,13 +8531,12 @@ static int get_options(int *argc_ptr, char ***argv_ptr) { int ho_error; - my_getopt_register_get_addr(mysql_getopt_value); + my_getopt_get_addr= mysql_getopt_value; my_getopt_error_reporter= option_error_reporter; /* prepare all_options array */ my_init_dynamic_array(&all_options, sizeof(my_option), - array_elements(my_long_options) + - sys_var_elements(), + array_elements(my_long_options) + sys_var_elements(), array_elements(my_long_options)/4, MYF(0)); add_many_options(&all_options, my_long_options, array_elements(my_long_options)); sys_var_add_options(&all_options, 0); |