Index: generic/xotcl.c =================================================================== diff -u -ra47d62c39a33a69e4550eab30369560d56baf574 -re849d060161385466c782e46c19344428934cd7f --- generic/xotcl.c (.../xotcl.c) (revision a47d62c39a33a69e4550eab30369560d56baf574) +++ generic/xotcl.c (.../xotcl.c) (revision e849d060161385466c782e46c19344428934cd7f) @@ -5940,9 +5940,9 @@ XOTclObject *self = (XOTclObject *)cp; char *methodName = ObjStr(objv[1]); - fprintf(stderr, "save self %p %s (ns %p) object %p %s\n", + /*fprintf(stderr, "save self %p %s (ns %p) object %p %s\n", self, objectName(self), self->nsPtr, - object, objectName(object)); + object, objectName(object));*/ if (self->nsPtr) { cmd = FindMethod(self->nsPtr, methodName); if (cmd) { @@ -14085,21 +14085,16 @@ } /* -infoObjectMethod mixin XOTclObjInfoMixinMethod { - {-argName "object" -required 1 -type object} - {-argName "-guard"} +objectInfoMethod mixinclasses XOTclObjInfoMixinclassesMethod { {-argName "-guards"} {-argName "-order"} {-argName "pattern" -type objpattern} } */ -static int XOTclObjInfoMixinMethod(Tcl_Interp *interp, XOTclObject *object, - int withGuard, int withGuards, int withOrder, +static int XOTclObjInfoMixinclassesMethod(Tcl_Interp *interp, XOTclObject *object, + int withGuards, int withOrder, CONST char *patternString, XOTclObject *patternObj) { - if (withGuard) { - return object->opt ? GuardList(interp, object->opt->mixins, patternString) : TCL_OK; - } if (withOrder) { if (!(object->flags & XOTCL_MIXIN_ORDER_VALID)) MixinComputeDefined(interp, object); @@ -14110,6 +14105,15 @@ } /* +objectInfoMethod mixinguard XOTclObjInfoMixinguardMethod { + {-argName "mixin" -required 1} +} +*/ +static int XOTclObjInfoMixinguardMethod(Tcl_Interp *interp, XOTclObject *object, CONST char *mixin) { + return object->opt ? GuardList(interp, object->opt->mixins, mixin) : TCL_OK; +} + +/* infoObjectMethod parent XOTclObjInfoParentMethod { {-argName "object" -required 1 -type object} } @@ -14323,23 +14327,18 @@ } /* -infoClassMethod mixin XOTclClassInfoMixinMethod { - {-argName "class" -required 1 -type class} +classInfoMethod mixinclasses XOTclClassInfoMixinclassesMethod { {-argName "-closure"} - {-argName "-guard"} {-argName "-guards"} {-argName "pattern" -type objpattern} } */ -static int XOTclClassInfoMixinMethod(Tcl_Interp *interp, XOTclClass *class, - int withClosure, int withGuard, int withGuards, - CONST char *patternString, XOTclObject *patternObj) { +static int XOTclClassInfoMixinclassesMethod(Tcl_Interp *interp, XOTclClass *class, + int withClosure, int withGuards, + CONST char *patternString, XOTclObject *patternObj) { XOTclClassOpt *opt = class->opt; int rc; - if (withGuard) { - return opt ? GuardList(interp, opt->classmixins, patternString) : TCL_OK; - } if (withClosure) { Tcl_HashTable objTable, *commandTable = &objTable; MEM_COUNT_ALLOC("Tcl_InitHashTable", commandTable); @@ -14358,6 +14357,15 @@ } /* +classInfoMethod mixinguard XOTclClassInfoMixinguardMethod { + {-argName "mixin" -required 1} +} +*/ +static int XOTclClassInfoMixinguardMethod(Tcl_Interp *interp, XOTclClass *class, CONST char *mixin) { + return class->opt ? GuardList(interp, class->opt->classmixins, mixin) : TCL_OK; +} + +/* infoClassMethod mixinof XOTclClassInfoMixinOfMethod { {-argName "class" -required 1 -type class} {-argName "-closure"}