Index: generic/xotcl.c =================================================================== diff -u -rd58e86e7557ee729a2a687854c4107d4b212cf35 -rf9e18344d59553044453d08e464acce46664ffcf --- generic/xotcl.c (.../xotcl.c) (revision d58e86e7557ee729a2a687854c4107d4b212cf35) +++ generic/xotcl.c (.../xotcl.c) (revision f9e18344d59553044453d08e464acce46664ffcf) @@ -9699,36 +9699,41 @@ } -static int XOTclIsCmd(Tcl_Interp *interp, Tcl_Obj *object, int objectkind, XOTclClass *value) { +static int XOTclIsCmd(Tcl_Interp *interp, Tcl_Obj *object, int objectkind, Tcl_Obj *value) { int success = TCL_ERROR; XOTclObject *obj; + XOTclClass *cl; switch (objectkind) { case objectkindTypeIdx: - if (value == NULL) return XOTclObjErrArgCnt(interp, NULL, NULL, "type "); - success = (GetObjectFromObj(interp, object, &obj) == TCL_OK) && isSubType(obj->cl, value); + if (value == NULL) return XOTclObjErrArgCnt(interp, NULL, NULL, " type "); + success = (GetObjectFromObj(interp, object, &obj) == TCL_OK) + && (GetClassFromObj(interp, value, &cl, 0) == TCL_OK) + && isSubType(obj->cl, cl); break; case objectkindObjectIdx: - if (value != NULL) return XOTclObjErrArgCnt(interp, NULL, NULL, "object "); + if (value != NULL) return XOTclObjErrArgCnt(interp, NULL, NULL, " object"); success = (GetObjectFromObj(interp, object, &obj) == TCL_OK); break; case objectkindClassIdx: - if (value != NULL) return XOTclObjErrArgCnt(interp, NULL, NULL, "class "); + if (value != NULL) return XOTclObjErrArgCnt(interp, NULL, NULL, " class"); success = (GetObjectFromObj(interp, object, &obj) == TCL_OK) && XOTclObjectIsClass(obj); break; case objectkindMetaclassIdx: - if (value != NULL) return XOTclObjErrArgCnt(interp, NULL, NULL, "metaclass "); + if (value != NULL) return XOTclObjErrArgCnt(interp, NULL, NULL, " metaclass"); success = (GetObjectFromObj(interp, object, &obj) == TCL_OK) - && XOTclObjectIsClass(obj) && IsMetaClass(interp, (XOTclClass*)obj, 1); + && XOTclObjectIsClass(obj) + && IsMetaClass(interp, (XOTclClass*)obj, 1); break; case objectkindMixinIdx: - if (value == NULL) return XOTclObjErrArgCnt(interp, NULL, NULL, "mixin "); - success = (GetObjectFromObj(interp, object, &obj) == TCL_OK) && - (hasMixin(interp, obj, value) == TCL_OK); + if (value == NULL) return XOTclObjErrArgCnt(interp, NULL, NULL, " mixin "); + success = (GetObjectFromObj(interp, object, &obj) == TCL_OK) + && (GetClassFromObj(interp, value, &cl, 0) == TCL_OK) + && hasMixin(interp, obj, cl); break; } @@ -10836,12 +10841,6 @@ return TCL_OK; } -static int XOTclOIsObjectMethod(Tcl_Interp *interp, XOTclObject *obj, Tcl_Obj *object) { - XOTclObject *o; - Tcl_SetIntObj(Tcl_GetObjResult(interp), (GetObjectFromObj(interp, object, &o) == TCL_OK)); - return TCL_OK; -} - static int XOTclOIsTypeMethod(Tcl_Interp *interp, XOTclObject *obj, Tcl_Obj *class) { XOTclClass *cl; int success = 0;