diff options
author | Steve Bennett <steveb@workware.net.au> | 2014-12-04 10:21:33 +1000 |
---|---|---|
committer | Steve Bennett <steveb@workware.net.au> | 2014-12-04 10:23:21 +1000 |
commit | 9d6004a26d406aa9331fae3ffcb26be298be552d (patch) | |
tree | a74bb245c511c605c8154e797915b43e7657192e /tclcompat.tcl | |
parent | 9750e362c183c85bb1c67cfb962a3a2ed3a31b5f (diff) | |
download | jimtcl-9d6004a26d406aa9331fae3ffcb26be298be552d.zip jimtcl-9d6004a26d406aa9331fae3ffcb26be298be552d.tar.gz jimtcl-9d6004a26d406aa9331fae3ffcb26be298be552d.tar.bz2 |
try: fix use of catch/uplevel
Use catch {uplevel 1 $script} instead of catch [list uplevel 1 $script]
to ensure that source info is not lost.
Signed-off-by: Steve Bennett <steveb@workware.net.au>
Diffstat (limited to 'tclcompat.tcl')
-rw-r--r-- | tclcompat.tcl | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/tclcompat.tcl b/tclcompat.tcl index 1509b95..d1516b3 100644 --- a/tclcompat.tcl +++ b/tclcompat.tcl @@ -193,7 +193,7 @@ proc try {args} { return -code error {wrong # args: should be "try ?options? script ?argument ...?"} } set args [lassign $args script] - set code [catch -eval {*}$catchopts [list uplevel 1 $script] msg opts] + set code [catch -eval {*}$catchopts {uplevel 1 $script} msg opts] set handled 0 @@ -211,12 +211,12 @@ proc try {args} { set hopts $opts } # Override any body result - set code [catch [list uplevel 1 $script] msg opts] + set code [catch {uplevel 1 $script} msg opts] incr handled } } \ finally { - set finalcode [catch [list uplevel 1 $codes] finalmsg finalopts] + set finalcode [catch {uplevel 1 $codes} finalmsg finalopts] if {$finalcode} { # Override any body or handler result set code $finalcode |