diff options
author | unknown <hf@deer.(none)> | 2005-01-03 19:21:54 +0400 |
---|---|---|
committer | unknown <hf@deer.(none)> | 2005-01-03 19:21:54 +0400 |
commit | d3be3cbcfdf74f4131e16b201c7eb5dfde0a8257 (patch) | |
tree | 96a377282ba249c3076ed502ea0325733639fff9 /mysys/default.c | |
parent | a77d4ce2725a0d8e2310b3d7e1c3aed7908ea143 (diff) | |
download | mariadb-git-d3be3cbcfdf74f4131e16b201c7eb5dfde0a8257.tar.gz |
fix for bug #5920 (embedded-server mysql doesn't handle --defaults-file)
client/mysql.cc:
bug #5920 (embedded-server mysql doesn't handle --defaults-file)
defaults files handled
include/my_sys.h:
bug #5920 (embedded-server mysql doesn't handle --defaults-file)
get_defaults_file interface added
libmysqld/libmysqld.c:
just small fix, not related to the bug.
mysys/default.c:
bug #5920 (embedded-server mysql doesn't handle --defaults-file)
get_defaults_files implementation
Diffstat (limited to 'mysys/default.c')
-rw-r--r-- | mysys/default.c | 55 |
1 files changed, 39 insertions, 16 deletions
diff --git a/mysys/default.c b/mysys/default.c index ea23bbb6693..5f554ac36f6 100644 --- a/mysys/default.c +++ b/mysys/default.c @@ -79,6 +79,36 @@ static char *remove_end_comment(char *ptr); /* + Gets --defaults-file and --defaults-extra-file options from command line. + + SYNOPSIS + get_defaults_files() + argc Pointer to argc of original program + argv Pointer to argv of original program + defaults --defaults-file option + extra_defaults --defaults-extra-file option + + RETURN + defaults and extra_defaults will be set to appropriate items + of argv array, or to NULL if there are no such options +*/ + +void get_defaults_files(int argc, char **argv, + char **defaults, char **extra_defaults) +{ + *defaults=0; + *extra_defaults=0; + if (argc >= 2) + { + if (is_prefix(argv[1],"--defaults-file=")) + *defaults= argv[1]; + else if (is_prefix(argv[1],"--defaults-extra-file=")) + *extra_defaults= argv[1]; + } +} + + +/* Read options from configurations files SYNOPSIS @@ -111,7 +141,7 @@ static char *remove_end_comment(char *ptr); int load_defaults(const char *conf_file, const char **groups, - int *argc, char ***argv) + int *argc, char ***argv) { DYNAMIC_ARRAY args; const char **dirs, *forced_default_file; @@ -143,21 +173,14 @@ int load_defaults(const char *conf_file, const char **groups, DBUG_RETURN(0); } - /* Check if we want to force the use a specific default file */ - forced_default_file=0; - if (*argc >= 2) - { - if (is_prefix(argv[0][1],"--defaults-file=")) - { - forced_default_file=strchr(argv[0][1],'=')+1; - args_used++; - } - else if (is_prefix(argv[0][1],"--defaults-extra-file=")) - { - defaults_extra_file=strchr(argv[0][1],'=')+1; - args_used++; - } - } + get_defaults_files(*argc, *argv, + (char **)&forced_default_file, &defaults_extra_file); + if (forced_default_file) + forced_default_file= strchr(forced_default_file,'=')+1; + if (defaults_extra_file) + defaults_extra_file= strchr(defaults_extra_file,'=')+1; + + args_used+= (forced_default_file ? 1 : 0) + (defaults_extra_file ? 1 : 0); group.count=0; group.name= "defaults"; |