aboutsummaryrefslogtreecommitdiff
path: root/src/server/startup.tcl
diff options
context:
space:
mode:
authorAntonio Borneo <borneo.antonio@gmail.com>2021-04-26 14:22:06 +0200
committerAntonio Borneo <borneo.antonio@gmail.com>2021-05-08 09:48:03 +0100
commit5ba8e365d9f02b7cb4a316959e0c8b39274f9d83 (patch)
tree0d9f9ecab22dde65184eba2e4875442507b77f1f /src/server/startup.tcl
parent8ecc2888cf219454527d77a7d355fdbe12c319f9 (diff)
downloadriscv-openocd-5ba8e365d9f02b7cb4a316959e0c8b39274f9d83.zip
riscv-openocd-5ba8e365d9f02b7cb4a316959e0c8b39274f9d83.tar.gz
riscv-openocd-5ba8e365d9f02b7cb4a316959e0c8b39274f9d83.tar.bz2
telnet: allow hiding selected commands during auto-completion
We have TCL procedure and commands that we do not want to show in the list of auto-completion. E.g. TCL wrappers for deprecated commands, internal procedures that are not supposed to be exposed to user, or even commands that the user decides to hide. Create a TCL procedure to be called by telnet auto-complete code in place of the hard-coded TCL command. The procedure will run the same command and will filter-out the unwanted command names. Initialize the list of commands to be filtered-out with the name of the TCL procedure above, as it is considered as internal. Change-Id: I2d83bbf8194502368c589c85cccb617e69128c69 Signed-off-by: Antonio Borneo <borneo.antonio@gmail.com> Reviewed-on: http://openocd.zylin.com/6194 Tested-by: jenkins Reviewed-by: Tarek BOCHKATI <tarek.bouchkati@gmail.com>
Diffstat (limited to 'src/server/startup.tcl')
-rw-r--r--src/server/startup.tcl17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/server/startup.tcl b/src/server/startup.tcl
index dd1b31e..04a1cc0 100644
--- a/src/server/startup.tcl
+++ b/src/server/startup.tcl
@@ -19,3 +19,20 @@ proc prevent_cps {} {
proc POST {args} { prevent_cps }
proc Host: {args} { prevent_cps }
+
+# list of commands we don't want to appear in autocomplete
+lappend _telnet_autocomplete_skip _telnet_autocomplete_helper
+
+# helper for telnet autocomplete
+proc _telnet_autocomplete_helper pattern {
+ set cmds [info commands $pattern]
+
+ # skip matches in variable '_telnet_autocomplete_skip'
+ foreach skip $::_telnet_autocomplete_skip {
+ foreach n [lsearch -all -regexp $cmds "^$skip\$"] {
+ set cmds [lreplace $cmds $n $n]
+ }
+ }
+
+ return [lsort $cmds]
+}