From: <no...@so...> - 2001-07-30 17:26:22
|
Bugs item #446017, was opened at 2001-07-30 10:26 You can respond by visiting: http://sourceforge.net/tracker/?func=detail&atid=110894&aid=446017&group_id=10894 Category: None Group: None Status: Open Resolution: None Priority: 5 Submitted By: Hemang Lavana (hemanglavana) Assigned to: Nobody/Anonymous (nobody) Summary: uplevel bug for rare case scenario Initial Comment: When only one argument is passed to uplevel command and if the first letter is a # sign, then tcl reports an error: godel> tclsh %info patch 8.3.3 % proc #123 {args} {puts args=$args} % uplevel [list #123 hello world] expected integer but got "123 hello world" % uplevel 0 [list #123 hello world] args=hello world % exit The current workaround is to explicitly specify the _level_ argment to uplevel command. Hemang. ---------------------------------------------------------------------- You can respond by visiting: http://sourceforge.net/tracker/?func=detail&atid=110894&aid=446017&group_id=10894 |
From: <no...@so...> - 2001-07-30 23:32:47
|
Bugs item #446017, was opened at 2001-07-30 10:26 You can respond by visiting: http://sourceforge.net/tracker/?func=detail&atid=110894&aid=446017&group_id=10894 >Category: Parsing and Eval Group: None >Status: Closed >Resolution: Invalid Priority: 5 Submitted By: Hemang Lavana (hemanglavana) >Assigned to: miguel sofer (msofer) Summary: uplevel bug for rare case scenario Initial Comment: When only one argument is passed to uplevel command and if the first letter is a # sign, then tcl reports an error: godel> tclsh %info patch 8.3.3 % proc #123 {args} {puts args=$args} % uplevel [list #123 hello world] expected integer but got "123 hello world" % uplevel 0 [list #123 hello world] args=hello world % exit The current workaround is to explicitly specify the _level_ argment to uplevel command. Hemang. ---------------------------------------------------------------------- >Comment By: miguel sofer (msofer) Date: 2001-07-30 16:32 Message: Logged In: YES user_id=148712 This is the behaviour documented in the man pages: "If level consists of # followed by a number then the number gives an absolute level number. If level is omitted then it defaults to 1. Level cannot be defaulted if the first command argument starts with a digit or #." For performance reasons you should try not to omit the level if you are passing a command assembled with [list] to [uplevel]: if you do, Tcl_UplevelObjCmd will get the string rep of the list, thereby defeating the "pure list optimisation". Note that (assuming 'cmd' does not start with a digit or #), uplevel cmd ?arg? is equivalent to uplevel 1 cmd ?arg? ---------------------------------------------------------------------- You can respond by visiting: http://sourceforge.net/tracker/?func=detail&atid=110894&aid=446017&group_id=10894 |