From 61b1f2ce952047aa1766e6a83db122f26f7730e5 Mon Sep 17 00:00:00 2001 From: unknown Date: Tue, 15 Mar 2005 15:54:57 -0800 Subject: [PATCH 1/2] Fix handling of the -e flag to my_print_defaults. (Bug #9136) mysys/default.c: Don't automatically reset defaults_extra_file in load_defaults(), only update it based on it appearing as a command-line option. --- mysys/default.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/mysys/default.c b/mysys/default.c index 5f554ac36f6..ac6d689d735 100644 --- a/mysys/default.c +++ b/mysys/default.c @@ -144,7 +144,7 @@ int load_defaults(const char *conf_file, const char **groups, int *argc, char ***argv) { DYNAMIC_ARRAY args; - const char **dirs, *forced_default_file; + const char **dirs, *forced_default_file, *forced_extra_defaults; TYPELIB group; my_bool found_print_defaults=0; uint args_used=0; @@ -174,13 +174,14 @@ int load_defaults(const char *conf_file, const char **groups, } get_defaults_files(*argc, *argv, - (char **)&forced_default_file, &defaults_extra_file); + (char **)&forced_default_file, + (char **)&forced_extra_defaults); if (forced_default_file) forced_default_file= strchr(forced_default_file,'=')+1; - if (defaults_extra_file) - defaults_extra_file= strchr(defaults_extra_file,'=')+1; + if (forced_extra_defaults) + defaults_extra_file= strchr(forced_extra_defaults,'=')+1; - args_used+= (forced_default_file ? 1 : 0) + (defaults_extra_file ? 1 : 0); + args_used+= (forced_default_file ? 1 : 0) + (forced_extra_defaults ? 1 : 0); group.count=0; group.name= "defaults"; From 0eb3528741247f42c49f7586e9b14e9ea96cf008 Mon Sep 17 00:00:00 2001 From: unknown Date: Tue, 26 Apr 2005 17:33:49 -0700 Subject: [PATCH 2/2] Fix undersized array in my_print_defaults that caused crash on Sun Solaris (and maybe strange results on other platforms). (Bug #9851) extra/my_print_defaults.c: Increase size of tmp_arguments array to actually fit possible values --- extra/my_print_defaults.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/extra/my_print_defaults.c b/extra/my_print_defaults.c index d5836cb0dc8..c0461fd0368 100644 --- a/extra/my_print_defaults.c +++ b/extra/my_print_defaults.c @@ -27,12 +27,20 @@ const char *config_file="my"; /* Default config file */ uint verbose= 0, opt_defaults_file_used= 0; +const char *default_dbug_option="d:t:o,/tmp/my_print_defaults.trace"; static struct my_option my_long_options[] = { {"config-file", 'c', "The config file to be used.", (gptr*) &config_file, (gptr*) &config_file, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0}, +#ifdef DBUG_OFF + {"debug", '#', "This is a non-debug version. Catch this and exit", + 0,0, 0, GET_DISABLED, OPT_ARG, 0, 0, 0, 0, 0, 0}, +#else + {"debug", '#', "Output debug log", (gptr*) &default_dbug_option, + (gptr*) &default_dbug_option, 0, GET_STR, OPT_ARG, 0, 0, 0, 0, 0, 0}, +#endif {"defaults-file", 'c', "Synonym for --config-file.", (gptr*) &config_file, (gptr*) &config_file, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0}, @@ -95,6 +103,9 @@ get_one_option(int optid, const struct my_option *opt __attribute__((unused)), case 'V': usage(1); exit(0); + case '#': + DBUG_PUSH(argument ? argument : default_dbug_option); + break; } return 0; } @@ -118,7 +129,7 @@ static int get_options(int *argc,char ***argv) int main(int argc, char **argv) { int count, error; - char **load_default_groups, *tmp_arguments[2], + char **load_default_groups, *tmp_arguments[3], **argument, **arguments; char *defaults, *extra_defaults; MY_INIT(argv[0]);