diff options
author | Antonio Borneo <borneo.antonio@gmail.com> | 2021-04-26 14:22:06 +0200 |
---|---|---|
committer | Antonio Borneo <borneo.antonio@gmail.com> | 2021-05-08 09:48:03 +0100 |
commit | 5ba8e365d9f02b7cb4a316959e0c8b39274f9d83 (patch) | |
tree | 0d9f9ecab22dde65184eba2e4875442507b77f1f /src/server/startup.tcl | |
parent | 8ecc2888cf219454527d77a7d355fdbe12c319f9 (diff) | |
download | riscv-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.tcl | 17 |
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] +} |