diff options
author | andreas_kupries <akupries@shaw.ca> | 2008-07-21 22:50:30 (GMT) |
---|---|---|
committer | andreas_kupries <akupries@shaw.ca> | 2008-07-21 22:50:30 (GMT) |
commit | d0b609270a5168026fc5df405c4245ae2e33deed (patch) | |
tree | 29f73567f546804a17604f4a80c01c4551d51979 /generic/tclProc.c | |
parent | 57bdff7e68cb1e0fe66a2671b18ce67ecbb79e69 (diff) | |
download | tcl-d0b609270a5168026fc5df405c4245ae2e33deed.zip tcl-d0b609270a5168026fc5df405c4245ae2e33deed.tar.gz tcl-d0b609270a5168026fc5df405c4245ae2e33deed.tar.bz2 |
* generic/tclBasic.c: Extended the existing TIP #280 system (info
* generic/tclCmdAH.c: frame), added the ability to track the
* generic/tclCompCmds.c: absolute location of literal procedure
* generic/tclCompile.c: arguments, and making this information
* generic/tclCompile.h: available to uplevel, eval, and
* generic/tclInterp.c: siblings. This allows proper tracking of
* generic/tclInt.h: absolute location through custom (Tcl-coded)
* generic/tclNamesp.c: control structures based on uplevel, etc.
* generic/tclProc.c:
* tests/info.test:
Diffstat (limited to 'generic/tclProc.c')
-rw-r--r-- | generic/tclProc.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/generic/tclProc.c b/generic/tclProc.c index 713ee18..9947549 100644 --- a/generic/tclProc.c +++ b/generic/tclProc.c @@ -12,7 +12,7 @@ * See the file "license.terms" for information on usage and redistribution of * this file, and for a DISCLAIMER OF ALL WARRANTIES. * - * RCS: @(#) $Id: tclProc.c,v 1.150 2008/07/21 03:43:32 msofer Exp $ + * RCS: @(#) $Id: tclProc.c,v 1.151 2008/07/21 22:50:36 andreas_kupries Exp $ */ #include "tclInt.h" @@ -919,6 +919,8 @@ TclNRUplevelObjCmd( { register Interp *iPtr = (Interp *) interp; + CmdFrame* invoker = NULL; + int word = 0; int result; CallFrame *savedVarFramePtr, *framePtr; Tcl_Obj *objPtr; @@ -955,7 +957,13 @@ TclNRUplevelObjCmd( */ if (objc == 1) { + /* + * TIP #280. Make actual argument location available to eval'd script + */ + + TclArgumentGet (interp, objv[0], &invoker, &word); objPtr = objv[0]; + } else { /* * More than one argument: concatenate them together with spaces @@ -968,7 +976,7 @@ TclNRUplevelObjCmd( TclNRAddCallback(interp, Uplevel_Callback, savedVarFramePtr, NULL, NULL, NULL); - return TclNREvalObjEx(interp, objPtr, 0, NULL, 0); + return TclNREvalObjEx(interp, objPtr, 0, invoker, word); } /* |