Browse Source

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 <stian@nixia.no>
Reviewed-on: http://openocd.zylin.com/470
Tested-by: jenkins
Reviewed-by: Spencer Oliver <spen@spen-soft.co.uk>
Reviewed-by: Bill Traynor <wmat@alphatroop.com>
Reviewed-by: Mathias Küster <kesmtp@freenet.de>
Reviewed-by: Freddie Chopin <freddie.chopin@gmail.com>
tags/v0.6.0-rc1
Stian Skjelsad 12 years ago
committed by Freddie Chopin
parent
commit
e8641695c6
3 changed files with 13 additions and 7 deletions
  1. +10
    -6
      src/helper/command.c
  2. +1
    -1
      src/helper/log.h
  3. +2
    -0
      src/openocd.c

+ 10
- 6
src/helper/command.c View File

@@ -118,10 +118,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;
@@ -671,8 +676,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;


+ 1
- 1
src/helper/log.h View File

@@ -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 */

+ 2
- 0
src/openocd.c View File

@@ -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;



Loading…
Cancel
Save