Index: generic/nsfAPI.h =================================================================== diff -u -r85ee1fdb043ed3f82fd272cc004c476c40861fdb -r6ad766595b0095a72fb7b3a1d6d34960a013b464 --- generic/nsfAPI.h (.../nsfAPI.h) (revision 85ee1fdb043ed3f82fd272cc004c476c40861fdb) +++ generic/nsfAPI.h (.../nsfAPI.h) (revision 6ad766595b0095a72fb7b3a1d6d34960a013b464) @@ -281,7 +281,7 @@ /* just to define the symbol */ -static Nsf_methodDefinition method_definitions[106]; +static Nsf_methodDefinition method_definitions[107]; static CONST char *method_command_namespace_names[] = { "::nsf::methods::object::info", @@ -415,6 +415,8 @@ NSF_nonnull(2) NSF_nonnull(4); static int NsfVarExistsCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv []) NSF_nonnull(2) NSF_nonnull(4); +static int NsfVarGetCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv []) + NSF_nonnull(2) NSF_nonnull(4); static int NsfVarImportCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv []) NSF_nonnull(2) NSF_nonnull(4); static int NsfVarSetCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv []) @@ -626,6 +628,8 @@ NSF_nonnull(1); static int NsfVarExistsCmd(Tcl_Interp *interp, int withArray, NsfObject *object, CONST char *varName) NSF_nonnull(1) NSF_nonnull(3) NSF_nonnull(4); +static int NsfVarGetCmd(Tcl_Interp *interp, int withArray, NsfObject *object, Tcl_Obj *varName) + NSF_nonnull(1) NSF_nonnull(3) NSF_nonnull(4); static int NsfVarImportCmd(Tcl_Interp *interp, NsfObject *object, int nobjc, Tcl_Obj *CONST nobjv[]) NSF_nonnull(1) NSF_nonnull(2); static int NsfVarSetCmd(Tcl_Interp *interp, int withArray, NsfObject *object, Tcl_Obj *varName, Tcl_Obj *value) @@ -775,6 +779,7 @@ NsfShowStackCmdIdx, NsfUnsetUnknownArgsCmdIdx, NsfVarExistsCmdIdx, + NsfVarGetCmdIdx, NsfVarImportCmdIdx, NsfVarSetCmdIdx, NsfVarUnsetCmdIdx, @@ -2179,6 +2184,27 @@ } static int +NsfVarGetCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) { + ParseContext pc; + (void)clientData; + + if (likely(ArgumentParse(interp, objc, objv, NULL, objv[0], + method_definitions[NsfVarGetCmdIdx].paramDefs, + method_definitions[NsfVarGetCmdIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN, + &pc) == TCL_OK)) { + int withArray = (int )PTR2INT(pc.clientData[0]); + NsfObject *object = (NsfObject *)pc.clientData[1]; + Tcl_Obj *varName = (Tcl_Obj *)pc.clientData[2]; + + assert(pc.status == 0); + return NsfVarGetCmd(interp, withArray, object, varName); + + } else { + return TCL_ERROR; + } +} + +static int NsfVarImportCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) { ParseContext pc; (void)clientData; @@ -3056,7 +3082,7 @@ } } -static Nsf_methodDefinition method_definitions[106] = { +static Nsf_methodDefinition method_definitions[107] = { {"::nsf::methods::class::alloc", NsfCAllocMethodStub, 1, { {"objectName", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}} }, @@ -3350,6 +3376,11 @@ {"object", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Object, NULL,NULL,"object",NULL,NULL,NULL,NULL,NULL}, {"varName", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_String, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}} }, +{"::nsf::var::get", NsfVarGetCmdStub, 3, { + {"-array", 0, 0, Nsf_ConvertTo_String, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}, + {"object", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Object, NULL,NULL,"object",NULL,NULL,NULL,NULL,NULL}, + {"varName", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}} +}, {"::nsf::var::import", NsfVarImportCmdStub, 2, { {"object", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Object, NULL,NULL,"object",NULL,NULL,NULL,NULL,NULL}, {"args", 0, 1, ConvertToNothing, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}