summaryrefslogtreecommitdiffstats
path: root/library/foreachline.tcl
diff options
context:
space:
mode:
authordkf <donal.k.fellows@manchester.ac.uk>2023-05-30 13:48:53 (GMT)
committerdkf <donal.k.fellows@manchester.ac.uk>2023-05-30 13:48:53 (GMT)
commitd3acda84955821249bc38d697afe3cc890ac1bf2 (patch)
tree17f85f3a238860b5c79f88f1a12d87b1b420957e /library/foreachline.tcl
parentcc0a37c8b15ef75df258cd833823dae892c69507 (diff)
downloadtcl-d3acda84955821249bc38d697afe3cc890ac1bf2.zip
tcl-d3acda84955821249bc38d697afe3cc890ac1bf2.tar.gz
tcl-d3acda84955821249bc38d697afe3cc890ac1bf2.tar.bz2
Get return stack correct when doing [return -code error] in the body
Diffstat (limited to 'library/foreachline.tcl')
-rw-r--r--library/foreachline.tcl3
1 files changed, 3 insertions, 0 deletions
diff --git a/library/foreachline.tcl b/library/foreachline.tcl
index d619104..06ad62a 100644
--- a/library/foreachline.tcl
+++ b/library/foreachline.tcl
@@ -16,6 +16,9 @@ proc foreachLine {filename varName body} {
while {[gets $f line] >= 0} {
uplevel 1 $body
}
+ } on return {msg opt} {
+ dict incr opt -level
+ return -options $opt $msg
} finally {
close $f
}