summaryrefslogtreecommitdiff
path: root/mysys
diff options
context:
space:
mode:
authorunknown <serg@serg.mylan>2005-01-11 22:34:10 +0100
committerunknown <serg@serg.mylan>2005-01-11 22:34:10 +0100
commit581c2148c4c2e13c76cf4b57ae0c74964e2ab651 (patch)
treece087bea3f0f89ccded6d4ce75b557c81f62d42f /mysys
parent93283bd9a2adacfe71910a543f07a7a592f1e1a2 (diff)
parent8c71efbcd45fd625cfb8cd6f893642d0b69f3069 (diff)
downloadmariadb-git-581c2148c4c2e13c76cf4b57ae0c74964e2ab651.tar.gz
Merge bk-internal:/home/bk/mysql-5.0
into serg.mylan:/usr/home/serg/Abk/mysql-5.0
Diffstat (limited to 'mysys')
-rw-r--r--mysys/default.c52
1 files changed, 38 insertions, 14 deletions
diff --git a/mysys/default.c b/mysys/default.c
index 3de134d936f..0b3f830d476 100644
--- a/mysys/default.c
+++ b/mysys/default.c
@@ -112,20 +112,14 @@ static int search_files(const char *conf_file, int *argc, char ***argv,
DBUG_ENTER("search_files");
/* 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);
if (forced_default_file)
{
@@ -262,6 +256,36 @@ static int handle_default_option(void *in_ctx, const char *group_name,
/*
+ 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