summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergei Golubchik <serg@mariadb.org>2019-09-29 14:38:53 +0200
committerSergei Golubchik <serg@mariadb.org>2019-10-14 10:29:30 +0200
commiteb3431d5299d8ec531a3f54b0638d30efa391d55 (patch)
treee3ead19203ebb5131ec07173454b7070cc7f91d1
parent8965ae27b9f011333dd1e2dc47db6e0514b5976a (diff)
downloadmariadb-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.h3
-rw-r--r--mysys/my_getopt.c28
-rw-r--r--sql/mysqld.cc6
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);