This is an automated email from Gerrit. Stian Skjelstad ([email protected]) just uploaded a new patch set to Gerrit, which you can find at http://openocd.zylin.com/470
-- gerrit commit 017554b1a5ee70275f6ba308ff2e6fc112fdc17c Author: Stian Skjelsad <[email protected]> Date: Sat Feb 18 16:10:19 2012 +0100 When calling openocd from a shell like this: openocd -f board/sheevaplug.cfg -c init -c exit the calling shell will believe that openocd exited with an error due to exitval will be non-zero This is not tested against incomming telnet Change-Id: I63d15715a7b46f39a7de261a45039f8c3cad7a98 Signed-off-by: Stian Skjelstad <[email protected]> diff --git a/src/helper/command.c b/src/helper/command.c index c218f3f..ff078cb 100644 --- a/src/helper/command.c +++ b/src/helper/command.c @@ -120,10 +120,15 @@ static void command_log_capture_finish(struct log_capture_state *state) static int command_retval_set(Jim_Interp *interp, int retval) { int *return_retval = Jim_GetAssocData(interp, "retval"); - if (return_retval != NULL) - *return_retval = retval; - - return (retval == ERROR_OK) ? JIM_OK : JIM_ERR; + if (retval == ERROR_COMMAND_CLOSE_CONNECTION) { + if (return_retval != NULL) + *return_retval = 0; + return JIM_EXIT; + } else { + if (return_retval != NULL) + *return_retval = retval; + return (retval == ERROR_OK) ? JIM_OK : JIM_ERR; + } } extern struct command_context *global_cmd_ctx; @@ -673,8 +678,7 @@ int command_run_line(struct command_context *context, char *line) } return retval; } else if (retcode == JIM_EXIT) { - /* ignore. - * exit(Jim_GetExitCode(interp)); */ + return ERROR_OK_EXIT; } else { const char *result; int reslen; diff --git a/src/helper/log.h b/src/helper/log.h index e161a6e..ad8d247 100644 --- a/src/helper/log.h +++ b/src/helper/log.h @@ -138,5 +138,5 @@ extern int debug_level; * make no assumptions about what went wrong and try to handle the problem. */ #define ERROR_FAIL (-4) - +#define ERROR_OK_EXIT (-5) #endif /* LOG_H */ diff --git a/src/openocd.c b/src/openocd.c index 048ce85..d06e2c5 100644 --- a/src/openocd.c +++ b/src/openocd.c @@ -279,6 +279,8 @@ static int openocd_thread(int argc, char *argv[], struct command_context *cmd_ct return EXIT_FAILURE; ret = parse_config_file(cmd_ctx); + if (ret == ERROR_OK_EXIT) + return ERROR_OK; if (ret != ERROR_OK) return EXIT_FAILURE; -- ------------------------------------------------------------------------------ Virtualization & Cloud Management Using Capacity Planning Cloud computing makes use of virtualization - but cloud computing also focuses on allowing computing to be delivered as a service. http://www.accelacomm.com/jaw/sfnl/114/51521223/ _______________________________________________ OpenOCD-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/openocd-devel
