Index: generic/tclAPI.h =================================================================== diff -u -r29267f0c9db8387f58b03ffc124fc138ad88e463 -rbc6eb608936be7ce3ab17f64981902a4f51194d1 --- generic/tclAPI.h (.../tclAPI.h) (revision 29267f0c9db8387f58b03ffc124fc138ad88e463) +++ generic/tclAPI.h (.../tclAPI.h) (revision bc6eb608936be7ce3ab17f64981902a4f51194d1) @@ -76,27 +76,27 @@ } enum SelfoptionIdx {SelfoptionNULL, SelfoptionProcIdx, SelfoptionClassIdx, SelfoptionActivelevelIdx, SelfoptionArgsIdx, SelfoptionActivemixinIdx, SelfoptionCalledprocIdx, SelfoptionCalledmethodIdx, SelfoptionCalledclassIdx, SelfoptionCallingprocIdx, SelfoptionCallingclassIdx, SelfoptionCallinglevelIdx, SelfoptionCallingobjectIdx, SelfoptionFilterregIdx, SelfoptionIsnextcallIdx, SelfoptionNextIdx}; -static int convertToObjectkind(Tcl_Interp *interp, Tcl_Obj *objPtr, XOTclParam CONST *pPtr, +static int convertToMethodproperty(Tcl_Interp *interp, Tcl_Obj *objPtr, XOTclParam CONST *pPtr, ClientData *clientData, Tcl_Obj **outObjPtr) { int index, result; - static CONST char *opts[] = {"type", "object", "class", "baseclass", "metaclass", "hasmixin", NULL}; - result = Tcl_GetIndexFromObj(interp, objPtr, opts, "objectkind", 0, &index); + static CONST char *opts[] = {"protected", "redefine-protected", "slotobj", NULL}; + result = Tcl_GetIndexFromObj(interp, objPtr, opts, "methodproperty", 0, &index); *clientData = (ClientData) INT2PTR(index + 1); *outObjPtr = objPtr; return result; } -enum ObjectkindIdx {ObjectkindNULL, ObjectkindTypeIdx, ObjectkindObjectIdx, ObjectkindClassIdx, ObjectkindBaseclassIdx, ObjectkindMetaclassIdx, ObjectkindHasmixinIdx}; +enum MethodpropertyIdx {MethodpropertyNULL, MethodpropertyProtectedIdx, MethodpropertyRedefine_protectedIdx, MethodpropertySlotobjIdx}; -static int convertToMethodproperty(Tcl_Interp *interp, Tcl_Obj *objPtr, XOTclParam CONST *pPtr, +static int convertToObjectkind(Tcl_Interp *interp, Tcl_Obj *objPtr, XOTclParam CONST *pPtr, ClientData *clientData, Tcl_Obj **outObjPtr) { int index, result; - static CONST char *opts[] = {"protected", "redefine-protected", "slotobj", NULL}; - result = Tcl_GetIndexFromObj(interp, objPtr, opts, "methodproperty", 0, &index); + static CONST char *opts[] = {"type", "object", "class", "baseclass", "metaclass", "hasmixin", NULL}; + result = Tcl_GetIndexFromObj(interp, objPtr, opts, "objectkind", 0, &index); *clientData = (ClientData) INT2PTR(index + 1); *outObjPtr = objPtr; return result; } -enum MethodpropertyIdx {MethodpropertyNULL, MethodpropertyProtectedIdx, MethodpropertyRedefine_protectedIdx, MethodpropertySlotobjIdx}; +enum ObjectkindIdx {ObjectkindNULL, ObjectkindTypeIdx, ObjectkindObjectIdx, ObjectkindClassIdx, ObjectkindBaseclassIdx, ObjectkindMetaclassIdx, ObjectkindHasmixinIdx}; static int convertToRelationtype(Tcl_Interp *interp, Tcl_Obj *objPtr, XOTclParam CONST *pPtr, ClientData *clientData, Tcl_Obj **outObjPtr) { @@ -202,13 +202,13 @@ static int XOTclGetSelfObjCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv []); static int XOTclImportvarCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv []); static int XOTclInterpObjCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv []); -static int XOTclIs2CmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv []); static int XOTclIsCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv []); static int XOTclMethodCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv []); static int XOTclMethodPropertyCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv []); static int XOTclMyCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv []); static int XOTclNSCopyCmdsStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv []); static int XOTclNSCopyVarsStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv []); +static int XOTclObjectpropertyCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv []); static int XOTclQualifyObjCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv []); static int XOTclRelationCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv []); static int XOTclSetInstvarCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv []); @@ -283,13 +283,13 @@ static int XOTclGetSelfObjCmd(Tcl_Interp *interp, int selfoption); static int XOTclImportvarCmd(Tcl_Interp *interp, XOTclObject *object, int nobjc, Tcl_Obj *CONST nobjv[]); static int XOTclInterpObjCmd(Tcl_Interp *interp, char *name, int objc, Tcl_Obj *CONST objv[]); -static int XOTclIs2Cmd(Tcl_Interp *interp, Tcl_Obj *value, Tcl_Obj *constraint, Tcl_Obj *withHasmixin, Tcl_Obj *withType, Tcl_Obj *arg); -static int XOTclIsCmd(Tcl_Interp *interp, Tcl_Obj *object, int objectkind, Tcl_Obj *value); +static int XOTclIsCmd(Tcl_Interp *interp, Tcl_Obj *value, Tcl_Obj *constraint, Tcl_Obj *withHasmixin, Tcl_Obj *withType, Tcl_Obj *arg); static int XOTclMethodCmd(Tcl_Interp *interp, XOTclObject *object, int withInner_namespace, int withPer_object, int withPublic, Tcl_Obj *name, Tcl_Obj *args, Tcl_Obj *body, Tcl_Obj *withPrecondition, Tcl_Obj *withPostcondition); static int XOTclMethodPropertyCmd(Tcl_Interp *interp, XOTclObject *object, int withPer_object, Tcl_Obj *methodName, int methodproperty, Tcl_Obj *value); static int XOTclMyCmd(Tcl_Interp *interp, int withLocal, Tcl_Obj *method, int nobjc, Tcl_Obj *CONST nobjv[]); static int XOTclNSCopyCmds(Tcl_Interp *interp, Tcl_Obj *fromNs, Tcl_Obj *toNs); static int XOTclNSCopyVars(Tcl_Interp *interp, Tcl_Obj *fromNs, Tcl_Obj *toNs); +static int XOTclObjectpropertyCmd(Tcl_Interp *interp, Tcl_Obj *object, int objectkind, Tcl_Obj *value); static int XOTclQualifyObjCmd(Tcl_Interp *interp, Tcl_Obj *name); static int XOTclRelationCmd(Tcl_Interp *interp, XOTclObject *object, int relationtype, Tcl_Obj *value); static int XOTclSetInstvarCmd(Tcl_Interp *interp, XOTclObject *object, Tcl_Obj *variable, Tcl_Obj *value); @@ -365,13 +365,13 @@ XOTclGetSelfObjCmdIdx, XOTclImportvarCmdIdx, XOTclInterpObjCmdIdx, - XOTclIs2CmdIdx, XOTclIsCmdIdx, XOTclMethodCmdIdx, XOTclMethodPropertyCmdIdx, XOTclMyCmdIdx, XOTclNSCopyCmdsIdx, XOTclNSCopyVarsIdx, + XOTclObjectpropertyCmdIdx, XOTclQualifyObjCmdIdx, XOTclRelationCmdIdx, XOTclSetInstvarCmdIdx, @@ -1712,12 +1712,12 @@ } static int -XOTclIs2CmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) { +XOTclIsCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) { parseContext pc; if (ArgumentParse(interp, objc, objv, NULL, objv[0], - method_definitions[XOTclIs2CmdIdx].paramDefs, - method_definitions[XOTclIs2CmdIdx].nrParameters, + method_definitions[XOTclIsCmdIdx].paramDefs, + method_definitions[XOTclIsCmdIdx].nrParameters, &pc) != TCL_OK) { return TCL_ERROR; } else { @@ -1728,32 +1728,12 @@ Tcl_Obj *arg = (Tcl_Obj *)pc.clientData[4]; parseContextRelease(&pc); - return XOTclIs2Cmd(interp, value, constraint, withHasmixin, withType, arg); + return XOTclIsCmd(interp, value, constraint, withHasmixin, withType, arg); } } static int -XOTclIsCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) { - parseContext pc; - - if (ArgumentParse(interp, objc, objv, NULL, objv[0], - method_definitions[XOTclIsCmdIdx].paramDefs, - method_definitions[XOTclIsCmdIdx].nrParameters, - &pc) != TCL_OK) { - return TCL_ERROR; - } else { - Tcl_Obj *object = (Tcl_Obj *)pc.clientData[0]; - int objectkind = (int )PTR2INT(pc.clientData[1]); - Tcl_Obj *value = (Tcl_Obj *)pc.clientData[2]; - - parseContextRelease(&pc); - return XOTclIsCmd(interp, object, objectkind, value); - - } -} - -static int XOTclMethodCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) { parseContext pc; @@ -1859,6 +1839,26 @@ } static int +XOTclObjectpropertyCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) { + parseContext pc; + + if (ArgumentParse(interp, objc, objv, NULL, objv[0], + method_definitions[XOTclObjectpropertyCmdIdx].paramDefs, + method_definitions[XOTclObjectpropertyCmdIdx].nrParameters, + &pc) != TCL_OK) { + return TCL_ERROR; + } else { + Tcl_Obj *object = (Tcl_Obj *)pc.clientData[0]; + int objectkind = (int )PTR2INT(pc.clientData[1]); + Tcl_Obj *value = (Tcl_Obj *)pc.clientData[2]; + + parseContextRelease(&pc); + return XOTclObjectpropertyCmd(interp, object, objectkind, value); + + } +} + +static int XOTclQualifyObjCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) { parseContext pc; @@ -2252,18 +2252,13 @@ {"name", 0, 0, convertToString}, {"args", 0, 0, convertToNothing}} }, -{"::xotcl::is2", XOTclIs2CmdStub, 5, { +{"::xotcl::is", XOTclIsCmdStub, 5, { {"value", 1, 0, convertToTclobj}, {"constraint", 1, 0, convertToTclobj}, {"-hasmixin", 0, 1, convertToTclobj}, {"-type", 0, 1, convertToTclobj}, {"arg", 0, 0, convertToTclobj}} }, -{"::xotcl::is", XOTclIsCmdStub, 3, { - {"object", 1, 0, convertToTclobj}, - {"objectkind", 0, 0, convertToObjectkind}, - {"value", 0, 0, convertToTclobj}} -}, {"::xotcl::method", XOTclMethodCmdStub, 9, { {"object", 1, 0, convertToObject}, {"-inner-namespace", 0, 0, convertToString}, @@ -2295,6 +2290,11 @@ {"fromNs", 1, 0, convertToTclobj}, {"toNs", 1, 0, convertToTclobj}} }, +{"::xotcl::objectproperty", XOTclObjectpropertyCmdStub, 3, { + {"object", 1, 0, convertToTclobj}, + {"objectkind", 0, 0, convertToObjectkind}, + {"value", 0, 0, convertToTclobj}} +}, {"::xotcl::__qualify", XOTclQualifyObjCmdStub, 1, { {"name", 1, 0, convertToTclobj}} },