diff options
author | Steve Bennett <steveb@workware.net.au> | 2017-08-28 10:03:21 +1000 |
---|---|---|
committer | Steve Bennett <steveb@workware.net.au> | 2017-09-15 19:17:48 +1000 |
commit | eb1918117c0ae5f2b67d441f2ed459718e79cad4 (patch) | |
tree | 593d49627e6c26a7158ac32c8a819415cd3ddf91 /stdlib.tcl | |
parent | a5877cb1c624597f340fe5268c2ff8e61f6de4b0 (diff) | |
download | jimtcl-eb1918117c0ae5f2b67d441f2ed459718e79cad4.zip jimtcl-eb1918117c0ae5f2b67d441f2ed459718e79cad4.tar.gz jimtcl-eb1918117c0ae5f2b67d441f2ed459718e79cad4.tar.bz2 |
Implement defer, $jim::defer
Allows commands to run when a proc or interpreter exits.
If the $jim::defer variables exists at proc or interp exit,
it is treated as a list of scripts to evaluate (in reverse order).
The [defer] command is a helper to add scripts to $jim::defer
See tests/defer.test
Signed-off-by: Steve Bennett <steveb@workware.net.au>
Diffstat (limited to 'stdlib.tcl')
-rw-r--r-- | stdlib.tcl | 7 |
1 files changed, 7 insertions, 0 deletions
@@ -66,6 +66,13 @@ proc stackdump {stacktrace} { join $lines \n } +# Add the given script to $jim::defer, to be evaluated when the current +# procedure exits +proc defer {script} { + upvar jim::defer v + lappend v $script +} + # Sort of replacement for $::errorInfo # Usage: errorInfo error ?stacktrace? proc errorInfo {msg {stacktrace ""}} { |