aboutsummaryrefslogtreecommitdiff
path: root/tclcompat.tcl
diff options
context:
space:
mode:
authorSteve Bennett <steveb@workware.net.au>2014-12-04 10:21:33 +1000
committerSteve Bennett <steveb@workware.net.au>2014-12-04 10:23:21 +1000
commit9d6004a26d406aa9331fae3ffcb26be298be552d (patch)
treea74bb245c511c605c8154e797915b43e7657192e /tclcompat.tcl
parent9750e362c183c85bb1c67cfb962a3a2ed3a31b5f (diff)
downloadjimtcl-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.tcl6
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