Index: generic/nsfShadow.c =================================================================== diff -u -rd1916d543ed083b100c8f9c48dd987d92c4bdb95 -r3b75a92f67f6614a7ee823e4d37bc8724f9fb77d --- generic/nsfShadow.c (.../nsfShadow.c) (revision d1916d543ed083b100c8f9c48dd987d92c4bdb95) +++ generic/nsfShadow.c (.../nsfShadow.c) (revision 3b75a92f67f6614a7ee823e4d37bc8724f9fb77d) @@ -107,7 +107,27 @@ return NsfCallCommand(interp, NSF_RENAME, objc, objv); } +#if 0 static int +Nsf_VariableObjCmd(ClientData cd, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) { + int i; + Tcl_CallFrame *varFramePtr = (Tcl_CallFrame *)Tcl_Interp_varFramePtr(interp); + int frameFlags = varFramePtr ? Tcl_CallFrame_isProcCallFrame(varFramePtr) : 0; + + if (frameFlags & (FRAME_IS_NSF_METHOD|FRAME_IS_NSF_CMETHOD)) { + for (i=1 ; itclCommands != NULL); assert(initialized == 0); RUNTIME_STATE(interp)->tclCommands = - NEW_ARRAY(NsfShadowTclCommandInfo, NSF_SUBST - NSF_EXPR + 1); + NEW_ARRAY(NsfShadowTclCommandInfo, NSF_VARIABLE - NSF_EXPR + 1); /*fprintf(stderr, "+++ load tcl commands %d %d\n", load, initialized);*/ @@ -214,12 +234,16 @@ /* for the following commands, we have to add our own semantics */ rc |= NsfReplaceCommand(interp, NSF_INFO_FRAME, Nsf_InfoFrameObjCmd, initialized); rc |= NsfReplaceCommand(interp, NSF_RENAME, Nsf_RenameObjCmd, initialized); - + /*rc |= NsfReplaceCommand(interp, NSF_VARIABLE, Nsf_VariableObjCmd, initialized);*/ } else if (load == SHADOW_REFETCH) { - NsfReplaceCommandCheck(interp, NSF_RENAME, Nsf_RenameObjCmd); + NsfReplaceCommandCheck(interp, NSF_INFO_FRAME, Nsf_InfoFrameObjCmd); + NsfReplaceCommandCheck(interp, NSF_RENAME, Nsf_RenameObjCmd); + /*NsfReplaceCommandCheck(interp, NSF_VARIABLE, Nsf_VariableObjCmd);*/ } else { - NsfReplaceCommandCleanup(interp, NSF_RENAME); NsfReplaceCommandCleanup(interp, NSF_INFO_FRAME); + NsfReplaceCommandCleanup(interp, NSF_RENAME); + /*NsfReplaceCommandCleanup(interp, NSF_VARIABLE);*/ + FREE(NsfShadowTclCommandInfo*, RUNTIME_STATE(interp)->tclCommands); RUNTIME_STATE(interp)->tclCommands = NULL; }