diff options
author | Miguel Sofer <miguel.sofer@gmail.com> | 2001-05-03 21:14:57 (GMT) |
---|---|---|
committer | Miguel Sofer <miguel.sofer@gmail.com> | 2001-05-03 21:14:57 (GMT) |
commit | be1d3ffdb010f8ac70bfb807fca3631897628951 (patch) | |
tree | 83f53718e1e84676836f93f4ed6aa22aaaf9c852 | |
parent | 0bbb06a04a6eef073c35a9b20dd262b5ed7c0902 (diff) | |
download | tcl-be1d3ffdb010f8ac70bfb807fca3631897628951.zip tcl-be1d3ffdb010f8ac70bfb807fca3631897628951.tar.gz tcl-be1d3ffdb010f8ac70bfb807fca3631897628951.tar.bz2 |
Patch for bug #420507
-rw-r--r-- | ChangeLog | 8 | ||||
-rw-r--r-- | generic/tclParse.c | 4 | ||||
-rw-r--r-- | tests/namespace.test | 13 |
3 files changed, 22 insertions, 3 deletions
@@ -1,3 +1,11 @@ +2001-05-03 Miguel Sofer <msofer@users.sourceforge.net> + + * generic/tclParse.c: + * tests/namespace.test: Insure consistent behaviour of the + [unknown] command: when a command is unknown, it is always + processed by [::unknown], ignoring any namespace proc which + happens to be called "unknown" [Patch #421166, Bug #420507] + 2001-05-02 Don Porter <dgp@users.sourceforge.net> * tools/genStubs.tcl: Add a package require of Tcl 8 diff --git a/generic/tclParse.c b/generic/tclParse.c index 96678ef..de62df8 100644 --- a/generic/tclParse.c +++ b/generic/tclParse.c @@ -14,7 +14,7 @@ * See the file "license.terms" for information on usage and redistribution * of this file, and for a DISCLAIMER OF ALL WARRANTIES. * - * RCS: @(#) $Id: tclParse.c,v 1.14 2000/11/01 22:13:39 hobbs Exp $ + * RCS: @(#) $Id: tclParse.c,v 1.15 2001/05/03 21:14:57 msofer Exp $ */ #include "tclInt.h" @@ -860,7 +860,7 @@ EvalObjv(interp, objc, objv, command, length, flags) for (i = objc-1; i >= 0; i--) { newObjv[i+1] = objv[i]; } - newObjv[0] = Tcl_NewStringObj("unknown", -1); + newObjv[0] = Tcl_NewStringObj("::unknown", -1); Tcl_IncrRefCount(newObjv[0]); cmdPtr = (Command *) Tcl_GetCommandFromObj(interp, newObjv[0]); if (cmdPtr == NULL) { diff --git a/tests/namespace.test b/tests/namespace.test index 234f90b..75f8fc5 100644 --- a/tests/namespace.test +++ b/tests/namespace.test @@ -11,7 +11,7 @@ # See the file "license.terms" for information on usage and redistribution # of this file, and for a DISCLAIMER OF ALL WARRANTIES. # -# RCS: @(#) $Id: namespace.test,v 1.14 2001/04/07 02:12:30 msofer Exp $ +# RCS: @(#) $Id: namespace.test,v 1.15 2001/05/03 21:14:57 msofer Exp $ if {[lsearch [namespace children] ::tcltest] == -1} { package require tcltest @@ -1125,6 +1125,17 @@ test namespace-39.3 {NamespaceExistsCmd error} { list [catch {namespace exists a b} msg] $msg } {1 {wrong # args: should be "namespace exists name"}} +test namespace-40.1 {Ignoring namespace proc "unknown"} { + rename unknown _unknown + proc unknown args {return global} + namespace eval ns {proc unknown args {return local}} + set l [list [namespace eval ns aaa bbb] [namespace eval ns aaa]] + rename unknown {} + rename _unknown unknown + namespace delete ns + set l +} {global global} + # cleanup catch {rename cmd1 {}} catch {unset l} |