Rewrite formatting code in C, removing last remenants of TCL help code. Sinificantly improves the readability by using smarter indent and wrap.
47 lines
1.1 KiB
Tcl
47 lines
1.1 KiB
Tcl
# Defines basic Tcl procs that must exist for OpenOCD scripts to work.
|
|
#
|
|
# Embedded into OpenOCD executable
|
|
#
|
|
|
|
|
|
# We need to explicitly redirect this to the OpenOCD command
|
|
# as Tcl defines the exit proc
|
|
proc exit {} {
|
|
ocd_throw exit
|
|
}
|
|
|
|
# Try flipping / and \ to find file if the filename does not
|
|
# match the precise spelling
|
|
proc find {filename} {
|
|
if {[catch {ocd_find $filename} t]==0} {
|
|
return $t
|
|
}
|
|
if {[catch {ocd_find [string map {\ /} $filename} t]==0} {
|
|
return $t
|
|
}
|
|
if {[catch {ocd_find [string map {/ \\} $filename} t]==0} {
|
|
return $t
|
|
}
|
|
# make sure error message matches original input string
|
|
return -code error "Can't find $filename"
|
|
}
|
|
add_usage_text find "<file>"
|
|
add_help_text find "print full path to file according to OpenOCD search rules"
|
|
|
|
# Run script
|
|
proc script {filename} {
|
|
source [find $filename]
|
|
}
|
|
add_help_text script "filename of OpenOCD script (tcl) to run"
|
|
add_usage_text script "<file>"
|
|
|
|
#########
|
|
|
|
# catch any exceptions, capture output and return output
|
|
proc capture_catch {a} {
|
|
catch {
|
|
capture {uplevel $a}
|
|
} result
|
|
return $result
|
|
}
|