Index: generic/xotclShadow.c =================================================================== diff -u -rb9eae4f9d548939af915f0f27141389d18172485 -r09b4e37fc62c4a5fe5514bbcef9c3cdfb8d60470 --- generic/xotclShadow.c (.../xotclShadow.c) (revision b9eae4f9d548939af915f0f27141389d18172485) +++ generic/xotclShadow.c (.../xotclShadow.c) (revision 09b4e37fc62c4a5fe5514bbcef9c3cdfb8d60470) @@ -115,6 +115,7 @@ if (result == TCL_OK && objc == 2) { int level, topLevel, frameFlags; + CONST char *frameType; CmdFrame *framePtr = Tcl_Interp_cmdFramePtr(interp); CallFrame *varFramePtr = Tcl_Interp_varFramePtr(interp); Tcl_Obj *resultObj = Tcl_GetObjResult(interp); @@ -145,7 +146,18 @@ Tcl_ListObjAppendElement(interp, resultObj, cscPtr->cl ? cscPtr->cl->object.cmdName : XOTclGlobalObjects[XOTE_EMPTY]); Tcl_ListObjAppendElement(interp, resultObj, Tcl_NewStringObj("frametype",9)); - Tcl_ListObjAppendElement(interp, resultObj, Tcl_NewIntObj(cscPtr->frameType)); + if (cscPtr->frameType == XOTCL_CSC_TYPE_PLAIN) { + frameType = "intrinsic"; + } else if (cscPtr->frameType & XOTCL_CSC_TYPE_ACTIVE_MIXIN) { + frameType = "mixin"; + } else if (cscPtr->frameType & XOTCL_CSC_TYPE_ACTIVE_FILTER) { + frameType = "filter"; + } else if (cscPtr->frameType & XOTCL_CSC_TYPE_GUARD) { + frameType = "guard"; + } else { + frameType = "unknown"; + } + Tcl_ListObjAppendElement(interp, resultObj, Tcl_NewStringObj(frameType,-1)); } }