X-Git-Url: https://review.openocd.org/gitweb?p=openocd.git;a=blobdiff_plain;f=src%2Ftarget%2Ftarget.c;h=e6c434362a9eb6c2507451540e127ff51ab624a6;hp=917fb662226db0b3447ed2f670a34e7194adcf34;hb=1af83682e0d7dbed0ba6db4b2bbf2542a4f9ab0d;hpb=e6990bdd00e80b48ba49e4b440c8d654a9431a34 diff --git a/src/target/target.c b/src/target/target.c index 917fb66222..e6c434362a 100644 --- a/src/target/target.c +++ b/src/target/target.c @@ -4526,6 +4526,7 @@ static int target_array2mem(Jim_Interp *interp, struct target *target, void target_handle_event(struct target *target, enum target_event e) { struct target_event_action *teap; + int retval; for (teap = target->event_action; teap != NULL; teap = teap->next) { if (teap->event == e) { @@ -4544,8 +4545,12 @@ void target_handle_event(struct target *target, enum target_event e) struct command_context *cmd_ctx = current_command_context(teap->interp); struct target *saved_target_override = cmd_ctx->current_target_override; cmd_ctx->current_target_override = target; + retval = Jim_EvalObj(teap->interp, teap->body); + + if (retval == JIM_RETURN) + retval = teap->interp->returnCode; - if (Jim_EvalObj(teap->interp, teap->body) != JIM_OK) { + if (retval != JIM_OK) { Jim_MakeErrorMessage(teap->interp); LOG_USER("Error executing event %s on target %s:\n%s", Jim_Nvp_value2name_simple(nvp_target_event, e)->name,