summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Brownell <dbrownell@users.sourceforge.net>2009-11-28 23:08:05 -0800
committerDavid Brownell <dbrownell@users.sourceforge.net>2009-11-28 23:11:31 -0800
commit3debd59c5ec2a91146e1d2781bedf2ab36ee0c6c (patch)
tree2bb382f61d4890d703f727093042a3b14cfd2d8f
parentb0858e89c7a7cf761c2f67db835d17840fd830ee (diff)
downloadopenocd+libswd-3debd59c5ec2a91146e1d2781bedf2ab36ee0c6c.tar.gz
openocd+libswd-3debd59c5ec2a91146e1d2781bedf2ab36ee0c6c.tar.bz2
openocd+libswd-3debd59c5ec2a91146e1d2781bedf2ab36ee0c6c.tar.xz
openocd+libswd-3debd59c5ec2a91146e1d2781bedf2ab36ee0c6c.zip
bugfix: 'init' changes state, not main()
Code other than main() may invoke "init". When it does so, customized handlers may need to run ... so make sure the command context state is updated before they do so. Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
-rw-r--r--src/openocd.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/openocd.c b/src/openocd.c
index 629d50ae..01e9e79c 100644
--- a/src/openocd.c
+++ b/src/openocd.c
@@ -109,6 +109,8 @@ COMMAND_HANDLER(handle_init_command)
atexit(exit_handler);
+ command_context_mode(CMD_CTX, COMMAND_EXEC);
+
if (target_init(CMD_CTX) != ERROR_OK)
return ERROR_FAIL;
LOG_DEBUG("target init complete");
@@ -267,7 +269,6 @@ int openocd_main(int argc, char *argv[])
if (ret != ERROR_COMMAND_CLOSE_CONNECTION)
{
- command_context_mode(cmd_ctx, COMMAND_EXEC);
if (command_run_line(cmd_ctx, "init") != ERROR_OK)
return EXIT_FAILURE;