helper/command: do not replace new commands with ocd_ prefix
The TCL return values are now consistent, no need anymore for the hack of registering the commands with "ocd_" prefix and override them with proc ocd_bouncer. Clean-up the command registration and remove the proc ocd_bouncer. This change was part of http://openocd.zylin.com/1815 from Paul Fertser and has been extracted and rebased to simplify the review. Change-Id: I2a467e73ecb068686ea3fda91bf961aba6db6427 Signed-off-by: Paul Fertser <fercerpav@gmail.com> Signed-off-by: Tomas Vanek <vanekt@fbl.cz> Signed-off-by: Antonio Borneo <borneo.antonio@gmail.com> Reviewed-on: http://openocd.zylin.com/5086 Tested-by: jenkins
This commit is contained in:
committed by
Tomas Vanek
parent
a72561ba91
commit
0840414f0e
@@ -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} {
|
||||
|
||||
Reference in New Issue
Block a user