diff --git a/itcl-unbreak-iwidgets.patch b/itcl-unbreak-iwidgets.patch index 7e99d8e..2fdf0fd 100644 --- a/itcl-unbreak-iwidgets.patch +++ b/itcl-unbreak-iwidgets.patch @@ -1,21 +1,3 @@ -Index: generic/itclBase.c -================================================================== ---- generic/itclBase.c -+++ generic/itclBase.c -@@ -319,11 +319,11 @@ - Tcl_InitObjHashTable(&infoPtr->nameClasses); - Tcl_InitHashTable(&infoPtr->namespaceClasses, TCL_ONE_WORD_KEYS); - Tcl_InitHashTable(&infoPtr->procMethods, TCL_ONE_WORD_KEYS); - Tcl_InitObjHashTable(&infoPtr->instances); - Tcl_InitHashTable(&infoPtr->objectInstances, TCL_ONE_WORD_KEYS); -- Tcl_InitObjHashTable(&infoPtr->myEnsembles); -+// Tcl_InitObjHashTable(&infoPtr->myEnsembles); - Tcl_InitObjHashTable(&infoPtr->classTypes); - infoPtr->ensembleInfo = (EnsembleInfo *)ckalloc(sizeof(EnsembleInfo)); - memset(infoPtr->ensembleInfo, 0, sizeof(EnsembleInfo)); - Tcl_InitHashTable(&infoPtr->ensembleInfo->ensembles, TCL_ONE_WORD_KEYS); - Tcl_InitHashTable(&infoPtr->ensembleInfo->subEnsembles, TCL_ONE_WORD_KEYS); - Index: generic/itclInt.h ================================================================== --- generic/itclInt.h @@ -26,8 +8,8 @@ Index: generic/itclInt.h Tcl_HashTable procMethods; /* maps from procPtr to mFunc */ Tcl_HashTable instances; /* maps from instanceNumber to ioPtr */ Tcl_HashTable objectInstances; /* maps from ioPtr to instanceNumber */ -- Tcl_HashTable myEnsembles; /* maps from ensemble name (::itcl::find) -- * etc. to ensemble pathName */ +- Tcl_HashTable unused; /* used to be myEnsembles. Dummy left in +- * for binary compatibility with itk */ +// Tcl_HashTable myEnsembles; /* maps from ensemble name (::itcl::find) +// * etc. to ensemble pathName */ Tcl_HashTable classTypes; /* maps from class type i.e. "widget" @@ -36,179 +18,3 @@ Index: generic/itclInt.h int useOldResolvers; /* whether to use the "old" style * resolvers or the CallFrame resolvers */ -Index: generic/itclParse.c -================================================================== ---- generic/itclParse.c -+++ generic/itclParse.c -@@ -187,17 +187,17 @@ - int - Itcl_ParseInit( - Tcl_Interp *interp, /* interpreter to be updated */ - ItclObjectInfo *infoPtr) /* info regarding all known objects and classes */ - { -- Tcl_HashEntry *hPtr; -+// Tcl_HashEntry *hPtr; - Tcl_Namespace *parserNs; -- Tcl_Obj *objPtr; -- Tcl_Obj *namePtr; -+// Tcl_Obj *objPtr; -+// Tcl_Obj *namePtr; - ProtectionCmdInfo *pInfoPtr; - Tcl_DString buffer; -- int isNew; -+// int isNew; - int i; - - /* - * Create the "itcl::parser" namespace used to parse class - * definitions. -@@ -264,16 +264,18 @@ - * Create the "itcl::find" command for high-level queries. - */ - if (Itcl_CreateEnsemble(interp, "::itcl::find") != TCL_OK) { - return TCL_ERROR; - } -+/* - namePtr = Tcl_NewStringObj("::itcl::find", -1); - objPtr = Tcl_GetObjResult(interp); - Tcl_IncrRefCount(objPtr); - hPtr = Tcl_CreateHashEntry(&infoPtr->myEnsembles, (char *)namePtr, &isNew); - Tcl_SetHashValue(hPtr, objPtr); - Tcl_DecrRefCount(namePtr); -+*/ - - if (Itcl_AddEnsemblePart(interp, "::itcl::find", - "classes", "?pattern?", - Itcl_FindClassesCmd, - (ClientData)infoPtr, Itcl_ReleaseData) != TCL_OK) { -@@ -295,16 +297,18 @@ - * and classes. - */ - if (Itcl_CreateEnsemble(interp, "::itcl::delete") != TCL_OK) { - return TCL_ERROR; - } -+/* - namePtr = Tcl_NewStringObj("::itcl::delete", -1); - objPtr = Tcl_GetObjResult(interp); - Tcl_IncrRefCount(objPtr); - hPtr = Tcl_CreateHashEntry(&infoPtr->myEnsembles, (char *)namePtr, &isNew); - Tcl_SetHashValue(hPtr, objPtr); - Tcl_DecrRefCount(namePtr); -+*/ - - if (Itcl_AddEnsemblePart(interp, "::itcl::delete", - "class", "name ?name...?", - Itcl_DelClassCmd, - (ClientData)infoPtr, Itcl_ReleaseData) != TCL_OK) { -@@ -333,16 +337,18 @@ - * and classes existence. - */ - if (Itcl_CreateEnsemble(interp, "::itcl::is") != TCL_OK) { - return TCL_ERROR; - } -+/* - namePtr = Tcl_NewStringObj("::itcl::is", -1); - objPtr = Tcl_GetObjResult(interp); - Tcl_IncrRefCount(objPtr); - hPtr = Tcl_CreateHashEntry(&infoPtr->myEnsembles, (char *)namePtr, &isNew); - Tcl_SetHashValue(hPtr, objPtr); - Tcl_DecrRefCount(namePtr); -+*/ - - if (Itcl_AddEnsemblePart(interp, "::itcl::is", - "class", "name", Itcl_IsClassCmd, - (ClientData)infoPtr, Itcl_ReleaseData) != TCL_OK) { - return TCL_ERROR; -@@ -382,31 +388,35 @@ - if (Itcl_AddEnsemblePart(interp, "::itcl::filter", - "delete", "objectOrClass filter ? ... ?", Itcl_FilterDeleteCmd, - (ClientData)infoPtr, Itcl_ReleaseData) != TCL_OK) { - return TCL_ERROR; - } -+/* - namePtr = Tcl_NewStringObj("::itcl::filter", -1); - objPtr = Tcl_GetObjResult(interp); - Tcl_IncrRefCount(objPtr); - hPtr = Tcl_CreateHashEntry(&infoPtr->myEnsembles, (char *)namePtr, &isNew); - Tcl_SetHashValue(hPtr, objPtr); - Tcl_DecrRefCount(namePtr); -+*/ - - Itcl_PreserveData((ClientData)infoPtr); - - /* - * Add the "forward" commands (add/delete) - */ - if (Itcl_CreateEnsemble(interp, "::itcl::forward") != TCL_OK) { - return TCL_ERROR; - } -+/* - namePtr = Tcl_NewStringObj("::itcl::forward", -1); - objPtr = Tcl_GetObjResult(interp); - Tcl_IncrRefCount(objPtr); - hPtr = Tcl_CreateHashEntry(&infoPtr->myEnsembles, (char *)namePtr, &isNew); - Tcl_SetHashValue(hPtr, objPtr); - Tcl_DecrRefCount(namePtr); -+*/ - - if (Itcl_AddEnsemblePart(interp, "::itcl::forward", - "add", "objectOrClass srcCommand targetCommand ? options ... ?", - Itcl_ForwardAddCmd, (ClientData)infoPtr, - Itcl_ReleaseData) != TCL_OK) { -@@ -426,16 +436,18 @@ - * Add the "mixin" (add/delete) commands. - */ - if (Itcl_CreateEnsemble(interp, "::itcl::mixin") != TCL_OK) { - return TCL_ERROR; - } -+/* - namePtr = Tcl_NewStringObj("::itcl::mixin", -1); - objPtr = Tcl_GetObjResult(interp); - Tcl_IncrRefCount(objPtr); - hPtr = Tcl_CreateHashEntry(&infoPtr->myEnsembles, (char *)namePtr, &isNew); - Tcl_SetHashValue(hPtr, objPtr); - Tcl_DecrRefCount(namePtr); -+*/ - - if (Itcl_AddEnsemblePart(interp, "::itcl::mixin", - "add", "objectOrClass class ? class ... ?", - Itcl_MixinAddCmd, (ClientData)infoPtr, - Itcl_ReleaseData) != TCL_OK) { -@@ -455,15 +467,17 @@ - * Add commands for handling import stubs at the Tcl level. - */ - if (Itcl_CreateEnsemble(interp, "::itcl::import::stub") != TCL_OK) { - return TCL_ERROR; - } -+/* - namePtr = Tcl_NewStringObj("::itcl::stubs", -1); - objPtr = Tcl_GetObjResult(interp); - hPtr = Tcl_CreateHashEntry(&infoPtr->myEnsembles, (char *)namePtr, &isNew); - Tcl_SetHashValue(hPtr, objPtr); - Tcl_DecrRefCount(namePtr); -+*/ - - if (Itcl_AddEnsemblePart(interp, "::itcl::import::stub", - "create", "name", Itcl_StubCreateCmd, - (ClientData)NULL, (Tcl_CmdDeleteProc*)NULL) != TCL_OK) { - return TCL_ERROR; -@@ -529,16 +543,18 @@ - * Add the "delegate" (method/option) commands. - */ - if (Itcl_CreateEnsemble(interp, "::itcl::parser::delegate") != TCL_OK) { - return TCL_ERROR; - } -+/* - namePtr = Tcl_NewStringObj("::itcl::delegate", -1); - objPtr = Tcl_GetObjResult(interp); - Tcl_IncrRefCount(objPtr); - hPtr = Tcl_CreateHashEntry(&infoPtr->myEnsembles, (char *)namePtr, &isNew); - Tcl_SetHashValue(hPtr, objPtr); - Tcl_DecrRefCount(namePtr); -+*/ - - if (Itcl_AddEnsemblePart(interp, "::itcl::parser::delegate", - "method", "name to targetName as scipt using script", - Itcl_ClassDelegateMethodCmd, (ClientData)infoPtr, - Itcl_ReleaseData) != TCL_OK) { -