summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjan.nijtmans <nijtmans@users.sourceforge.net>2024-02-06 14:16:57 (GMT)
committerjan.nijtmans <nijtmans@users.sourceforge.net>2024-02-06 14:16:57 (GMT)
commit3bca85b23b94d896c7b0f59544aac9dce3d3feca (patch)
treed7d37d6e1cfd0d0a58996ee2399418c3d76a73cd
parente079e789cbd90c7a5f8f1fee702d0632cd53674d (diff)
downloadtcl-3bca85b23b94d896c7b0f59544aac9dce3d3feca.zip
tcl-3bca85b23b94d896c7b0f59544aac9dce3d3feca.tar.gz
tcl-3bca85b23b94d896c7b0f59544aac9dce3d3feca.tar.bz2
Proposed fix for [86b3c15f0c]: ::unknown has infinite recursion in a corner case
-rw-r--r--library/init.tcl5
1 files changed, 4 insertions, 1 deletions
diff --git a/library/init.tcl b/library/init.tcl
index 9412e00..188cb3d 100644
--- a/library/init.tcl
+++ b/library/init.tcl
@@ -371,7 +371,10 @@ proc unknown args {
return -options $::tcl::UnknownOptions $::tcl::UnknownResult
}
- set ret [catch {set candidates [info commands $name*]} msg]
+ set ret [catch [list uplevel 1 [list info commands $name*]] msg]
+ if {$ret == 0} {
+ set candidates $msg
+ }
if {$name eq "::"} {
set name ""
}