From 4b9bdd664a79d5713b22a178086b071abc049d01 Mon Sep 17 00:00:00 2001
From: oharboe <oharboe@b42882b7-edfa-0310-969c-e2dbd0fdcd60>
Date: Sun, 30 Aug 2009 17:27:50 +0000
Subject: [PATCH] David Brownell <david-b@pacbell.net> Be sure the built-in
 search paths always go *after* ones provided on the command line ... matching
 comment in add_default_dirs().

Without this it's impossible to use a private config file which
happens to have the same name as an installed one.  Say, because
you're bugfixing a private copy...

git-svn-id: svn://svn.berlios.de/openocd/trunk@2649 b42882b7-edfa-0310-969c-e2dbd0fdcd60
---
 src/ecosboard.c            |  2 +-
 src/helper/command.c       |  2 --
 src/helper/configuration.h |  1 -
 src/helper/options.c       | 10 +++++++---
 4 files changed, 8 insertions(+), 7 deletions(-)

diff --git a/src/ecosboard.c b/src/ecosboard.c
index 78623ae09..419f038de 100644
--- a/src/ecosboard.c
+++ b/src/ecosboard.c
@@ -918,7 +918,7 @@ command_context_t *setup_command_handler(void);
 
 static const char *zylin_config_dir="/config/settings";
 
-int add_default_dirs(void)
+static int add_default_dirs(void)
 {
 	add_script_search_dir(zylin_config_dir);
 	add_script_search_dir("/rom/lib/openocd");
diff --git a/src/helper/command.c b/src/helper/command.c
index d93020e99..ca83ec6f4 100644
--- a/src/helper/command.c
+++ b/src/helper/command.c
@@ -744,8 +744,6 @@ command_context_t* command_init()
 	interp->cb_fflush = openocd_jim_fflush;
 	interp->cb_fgets = openocd_jim_fgets;
 
-	add_default_dirs();
-
 #if !BUILD_ECOSBOARD
 	Jim_EventLoopOnLoad(interp);
 #endif
diff --git a/src/helper/configuration.h b/src/helper/configuration.h
index 5bdb58f63..16bd8d844 100644
--- a/src/helper/configuration.h
+++ b/src/helper/configuration.h
@@ -32,6 +32,5 @@ extern void add_script_search_dir (const char *dir);
 extern int configuration_output_handler(struct command_context_s *context, const char* line);
 extern FILE *open_file_from_path (char *file, char *mode);
 extern char *find_file(const char *name);
-int add_default_dirs(void);
 
 #endif /* CONFIGURATION_H */
diff --git a/src/helper/options.c b/src/helper/options.c
index 05587c8ce..a0c9a9e92 100644
--- a/src/helper/options.c
+++ b/src/helper/options.c
@@ -38,7 +38,7 @@ static struct option long_options[] =
 	{"help",	no_argument,		&help_flag,	1},
 	{"version",	no_argument,		&version_flag,	1},
 	{"debug",	optional_argument,	0,		'd'},
-	{"file", 	required_argument,	0,		'f'},
+	{"file",	required_argument,	0,		'f'},
 	{"search",	required_argument,	0,		's'},
 	{"log_output",	required_argument,	0,	'l'},
 	{"command",	required_argument,	0,		'c'},
@@ -53,7 +53,7 @@ int configuration_output_handler(struct command_context_s *context, const char*
 	return ERROR_OK;
 }
 
-int add_default_dirs(void)
+static void add_default_dirs(void)
 {
 #ifdef _WIN32
 	/* Add the parent of the directory where openocd.exe resides to the
@@ -106,7 +106,6 @@ int add_default_dirs(void)
 	add_script_search_dir(PKGDATADIR "/site");
 	add_script_search_dir(PKGDATADIR "/scripts");
 #endif
-	return ERROR_OK;
 }
 
 int parse_cmdline_args(struct command_context_s *cmd_ctx, int argc, char *argv[])
@@ -196,5 +195,10 @@ int parse_cmdline_args(struct command_context_s *cmd_ctx, int argc, char *argv[]
 		exit(0);
 	}
 
+	/* paths specified on the command line take precedence over these
+	 * built-in paths
+	 */
+	add_default_dirs();
+
 	return ERROR_OK;
 }
-- 
GitLab