diff --git a/src/helper/command.c b/src/helper/command.c index bab98dfee..4883984f1 100644 --- a/src/helper/command.c +++ b/src/helper/command.c @@ -351,27 +351,11 @@ static int register_command_handler(struct command_context *cmd_ctx, struct command *c) { Jim_Interp *interp = cmd_ctx->interp; - char *ocd_name = alloc_printf("ocd_%s", c->name); - if (NULL == ocd_name) - return JIM_ERR; - LOG_DEBUG("registering '%s'...", ocd_name); + LOG_DEBUG("registering '%s'...", c->name); Jim_CmdProc *func = c->handler ? &script_command : &command_unknown; - int retval = Jim_CreateCommand(interp, ocd_name, func, c, NULL); - free(ocd_name); - if (JIM_OK != retval) - return retval; - - /* we now need to add an overrideable proc */ - char *override_name = alloc_printf( - "proc %s {args} {eval ocd_bouncer %s $args}", - c->name, c->name); - if (NULL == override_name) - return JIM_ERR; - - retval = Jim_Eval_Named(interp, override_name, 0, 0); - free(override_name); + int retval = Jim_CreateCommand(interp, c->name, func, c, NULL); return retval; } diff --git a/src/helper/startup.tcl b/src/helper/startup.tcl index cda3a8fa3..691e3824f 100644 --- a/src/helper/startup.tcl +++ b/src/helper/startup.tcl @@ -3,36 +3,6 @@ # Embedded into OpenOCD executable # -# All commands are registered with an 'ocd_' prefix, while the "real" -# command is a wrapper that calls this function. Its primary purpose is -# to discard 'handler' command output. -# Due to the two nested proc calls, this wrapper has to explicitly run -# the wrapped command in the stack frame two levels above. -proc ocd_bouncer {name args} { - set cmd [format "ocd_%s" $name] - set type [eval ocd_command type $cmd $args] - set errcode error - set skiplevel [expr [eval info level] > 1 ? 2 : 1] - if {$type == "native"} { - return [uplevel $skiplevel $cmd $args] - } else {if {$type == "simple"} { - set errcode [catch {uplevel $skiplevel $cmd $args}] - if {$errcode == 0} { - return "" - } else { - # 'classic' commands output error message as part of progress output - set errmsg "" - } - } else {if {$type == "group"} { - catch {eval ocd_usage $name $args} - set errmsg [format "%s: command requires more arguments" \ - [concat $name " " $args]] - } else { - set errmsg [format "invalid subcommand \"%s\"" $args] - }}} - return -code $errcode $errmsg -} - # Try flipping / and \ to find file if the filename does not # match the precise spelling proc find {filename} {