From f1cc5072a99f4311e4a58bfb442318528871412b Mon Sep 17 00:00:00 2001
From: Spencer Oliver <spen@spen-soft.co.uk>
Date: Wed, 23 Nov 2011 20:25:14 +0000
Subject: [PATCH] target: fix init_targets script handling

Change-Id: Icd5bd4c2a8eea2e399d9de4e331a77560e9672ac
Signed-off-by: Spencer Oliver <spen@spen-soft.co.uk>
---
 src/openocd.c       |   10 +++-------
 src/target/target.c |    8 +++++++-
 2 files changed, 10 insertions(+), 8 deletions(-)

diff --git a/src/openocd.c b/src/openocd.c
index 2c27fc4..488ffcd 100644
--- a/src/openocd.c
+++ b/src/openocd.c
@@ -62,15 +62,15 @@ static int jim_version_command(Jim_Interp *interp, int argc,
 	const char *str = "";
 	char * version_str;
 	version_str = OPENOCD_VERSION;
-	
+
 	if (argc == 2)
 		str = Jim_GetString(argv[1], NULL);
 
 	if (strcmp("git", str) == 0)
 	{
 		version_str = GITVERSION;
-	} 
-	
+	}
+
 	Jim_SetResult(interp, Jim_NewStringObj(interp, version_str, -1));
 
 	return JIM_OK;
@@ -292,10 +292,6 @@ static int openocd_thread(int argc, char *argv[], struct command_context *cmd_ct
 	if (ERROR_OK != ret)
 		return EXIT_FAILURE;
 
-	ret = command_run_line(cmd_ctx, "init_targets");
-	if (ERROR_OK != ret)
-		ret = EXIT_FAILURE;
-
 	if (init_at_startup)
 	{
 		ret = command_run_line(cmd_ctx, "init");
diff --git a/src/target/target.c b/src/target/target.c
index 4708a1d..4b5aedc 100644
--- a/src/target/target.c
+++ b/src/target/target.c
@@ -1043,6 +1043,8 @@ static int target_init(struct command_context *cmd_ctx)
 
 COMMAND_HANDLER(handle_target_init_command)
 {
+	int retval;
+
 	if (CMD_ARGC != 0)
 		return ERROR_COMMAND_SYNTAX_ERROR;
 
@@ -1054,6 +1056,10 @@ COMMAND_HANDLER(handle_target_init_command)
 	}
 	target_initialized = true;
 
+	retval = command_run_line(CMD_CTX, "init_targets");
+	if (ERROR_OK != retval)
+		return retval;
+
 	LOG_DEBUG("Initializing targets...");
 	return target_init(CMD_CTX);
 }
@@ -5118,7 +5124,7 @@ static int jim_target_smp(Jim_Interp *interp, int argc, Jim_Obj *const *argv)
 	struct target_list *head, *curr;
     curr = (struct target_list*) NULL;
 	head = (struct target_list*) NULL;
-	
+
 	retval = 0;
 	LOG_DEBUG("%d",argc);
 	/* argv[1] = target to associate in smp
-- 
1.7.5.1

