diff --git a/.gitignore b/.gitignore index 5744829..df40f56 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1 @@ -/Tix8.4.3-src.tar.gz +Tix8.4.3-src.tar.gz diff --git a/tix-8.4.2-tcl8.5.patch b/tix-8.4.2-tcl8.5.patch new file mode 100644 index 0000000..a195dd3 --- /dev/null +++ b/tix-8.4.2-tcl8.5.patch @@ -0,0 +1,256 @@ +diff -up Tix8.4.2/generic/tixImgXpm.c_old Tix8.4.2/generic/tixImgXpm.c +--- Tix8.4.2/generic/tixImgXpm.c_old 2008-01-08 11:53:37.000000000 +0100 ++++ Tix8.4.2/generic/tixImgXpm.c 2008-01-08 12:04:49.000000000 +0100 +@@ -45,19 +45,19 @@ static int ImgXpmConfigureMaster _ANSI_ + int flags)); + static int ImgXpmGetData _ANSI_ARGS_((Tcl_Interp *interp, + PixmapMaster *masterPtr)); +-static char ** ImgXpmGetDataFromFile _ANSI_ARGS_((Tcl_Interp * interp, ++static CONST84 char ** ImgXpmGetDataFromFile _ANSI_ARGS_((Tcl_Interp * interp, + char * string, int * numLines_return)); +-static char ** ImgXpmGetDataFromId _ANSI_ARGS_((Tcl_Interp * interp, ++static CONST84 char ** ImgXpmGetDataFromId _ANSI_ARGS_((Tcl_Interp * interp, + CONST84 char * id)); +-static char ** ImgXpmGetDataFromString _ANSI_ARGS_((Tcl_Interp*interp, ++static CONST84 char ** ImgXpmGetDataFromString _ANSI_ARGS_((Tcl_Interp*interp, + char * string, int * numLines_return)); + static void ImgXpmGetPixmapFromData _ANSI_ARGS_(( + Tcl_Interp * interp, + PixmapMaster *masterPtr, + PixmapInstance *instancePtr)); +-static char * GetType _ANSI_ARGS_((char * colorDefn, ++static CONST84 char * GetType _ANSI_ARGS_((CONST84 char * colorDefn, + int * type_ret)); +-static char * GetColor _ANSI_ARGS_((char * colorDefn, ++static CONST84 char * GetColor _ANSI_ARGS_((CONST84 char * colorDefn, + char * colorName, int * type_ret)); + + /* +@@ -286,7 +286,7 @@ ImgXpmGetData(interp, masterPtr) + Tcl_Interp *interp; /* For reporting errors. */ + PixmapMaster *masterPtr; + { +- char ** data = NULL; ++ CONST84 char ** data = NULL; + int isAllocated = 0; /* do we need to free "data"? */ + int listArgc; + CONST84 char ** listArgv = NULL; +@@ -363,7 +363,7 @@ ImgXpmGetData(interp, masterPtr) + return code; + } + +-static char ** ImgXpmGetDataFromId(interp, id) ++static CONST84 char ** ImgXpmGetDataFromId(interp, id) + Tcl_Interp * interp; + CONST84 char * id; + { +@@ -378,13 +378,13 @@ static char ** ImgXpmGetDataFromId(inter + if (hashPtr == NULL) { + Tcl_AppendResult(interp, "unknown pixmap ID \"", id, + "\"", NULL); +- return (char**)NULL; ++ return NULL; + } else { +- return (char**)Tcl_GetHashValue(hashPtr); ++ return (CONST84 char**)Tcl_GetHashValue(hashPtr); + } + } + +-static char ** ImgXpmGetDataFromString(interp, string, numLines_return) ++static CONST84 char ** ImgXpmGetDataFromString(interp, string, numLines_return) + Tcl_Interp * interp; + char * string; + int * numLines_return; +@@ -392,7 +392,7 @@ static char ** ImgXpmGetDataFromString(i + int quoted; + char * p, * list; + int numLines; +- char ** data; ++ CONST84 char ** data; + + /* skip the leading blanks (leading blanks are not defined in the + * the XPM definition, but skipping them shouldn't hurt. Also, the ability +@@ -510,17 +510,17 @@ static char ** ImgXpmGetDataFromString(i + + error: + Tcl_AppendResult(interp, "File format error", NULL); +- return (char**) NULL; ++ return NULL; + } + +-static char ** ImgXpmGetDataFromFile(interp, fileName, numLines_return) ++static CONST84 char ** ImgXpmGetDataFromFile(interp, fileName, numLines_return) + Tcl_Interp * interp; + char * fileName; + int * numLines_return; + { + FILE * fd = NULL; + int size, n; +- char ** data; ++ CONST84 char ** data; + char *cmdBuffer = NULL; + Tcl_DString buffer; /* initialized by Tcl_TildeSubst */ + +@@ -588,16 +588,16 @@ static char ** ImgXpmGetDataFromFile(int + ckfree(cmdBuffer); + } + Tcl_DStringFree(&buffer); +- return (char**)NULL; ++ return NULL; + } + + +-static char * ++static CONST84 char * + GetType(colorDefn, type_ret) +- char * colorDefn; ++ CONST84 char * colorDefn; + int * type_ret; + { +- char * p = colorDefn; ++ CONST84 char * p = colorDefn; + + /* skip white spaces */ + while (*p && isspace(*p)) { +@@ -642,9 +642,9 @@ GetType(colorDefn, type_ret) + /* + * colorName is guaranteed to be big enough + */ +-static char * ++static CONST84 char * + GetColor(colorDefn, colorName, type_ret) +- char * colorDefn; ++ CONST84 char * colorDefn; + char * colorName; /* if found, name is copied to this array */ + int * type_ret; + { +@@ -751,7 +751,7 @@ ImgXpmGetPixmapFromData(interp, masterPt + } + + for (i=0; incolors; i++) { +- char * colorDefn; /* the color definition line */ ++ CONST84 char * colorDefn; /* the color definition line */ + char * colorName; /* temp place to hold the color name + * defined for one type of visual */ + char * useName; /* the color name used for this +@@ -842,7 +842,7 @@ ImgXpmGetPixmapFromData(interp, masterPt + * Parse the main body of the image + */ + for (i=0; isize[1]; i++) { +- char * p = masterPtr->data[i+lOffset]; ++ CONST84 char * p = masterPtr->data[i+lOffset]; + + for (j=0; jsize[0]; j++) { + if (masterPtr->cpp == 1) { +diff -up Tix8.4.2/generic/tixImgXpm.h_old Tix8.4.2/generic/tixImgXpm.h +--- Tix8.4.2/generic/tixImgXpm.h_old 2008-01-08 12:04:59.000000000 +0100 ++++ Tix8.4.2/generic/tixImgXpm.h 2008-01-08 12:05:26.000000000 +0100 +@@ -55,7 +55,7 @@ typedef struct PixmapMaster { + int size[2]; /* width and height */ + int ncolors; /* number of colors */ + int cpp; /* characters per pixel */ +- char ** data; /* The data that defines this pixmap ++ CONST84 char ** data; /* The data that defines this pixmap + * image (array of strings). It is + * converted into an X Pixmap when this + * image is instanciated +diff -up Tix8.4.2/generic/tixInt.h_old Tix8.4.2/generic/tixInt.h +--- Tix8.4.2/generic/tixInt.h_old 2008-01-08 12:05:53.000000000 +0100 ++++ Tix8.4.2/generic/tixInt.h 2008-01-08 12:09:35.000000000 +0100 +@@ -23,6 +23,10 @@ + #include + #endif + ++#include ++#include ++#include ++ + /*---------------------------------------------------------------------- + * + * Tix Display Item Types +diff -up Tix8.4.2/generic/tixWidget.c_old Tix8.4.2/generic/tixWidget.c +--- Tix8.4.2/generic/tixWidget.c_old 2008-01-08 11:46:43.000000000 +0100 ++++ Tix8.4.2/generic/tixWidget.c 2008-01-08 11:53:17.000000000 +0100 +@@ -162,24 +162,23 @@ TIX_DEFINE_CMD(Tix_CreateWidgetCmd) + done: + + if (code != TCL_OK) { +- /* %% TCL CORE USED !! %% */ +- Interp *iPtr = (Interp *) interp; +- CONST84 char * oldResult, * oldErrorInfo, * oldErrorCode; ++ Tcl_SavedResult oldResult; ++ Tcl_Obj * oldErrorInfo, * oldErrorCode; + Tk_Window topLevel, tkwin; + + /* We need to save the old error message because + * interp->result may be changed by some of the following function + * calls. + */ +- if (interp->result) { +- oldResult = tixStrDup(interp->result); +- } else { +- oldResult = NULL; ++ oldErrorInfo = Tcl_GetVar2Ex(interp, "errorInfo", NULL, TCL_GLOBAL_ONLY); ++ oldErrorCode = Tcl_GetVar2Ex(interp, "errorCode", NULL, TCL_GLOBAL_ONLY); ++ if (oldErrorInfo) { ++ Tcl_IncrRefCount(oldErrorInfo); + } +- oldErrorInfo = Tcl_GetVar2(interp, "errorInfo", NULL, TCL_GLOBAL_ONLY); +- oldErrorCode = Tcl_GetVar2(interp, "errorCode", NULL, TCL_GLOBAL_ONLY); +- +- Tcl_ResetResult(interp); ++ if (oldErrorCode) { ++ Tcl_IncrRefCount(oldErrorCode); ++ } ++ Tcl_SaveResult(interp, &oldResult); + + /* (1) window */ + topLevel = cPtr->mainWindow; +@@ -217,21 +216,17 @@ TIX_DEFINE_CMD(Tix_CreateWidgetCmd) + } + } + } +- if (oldResult) { +- Tcl_SetResult(interp, (char *) oldResult, TCL_DYNAMIC); +- } +- if (oldErrorInfo && *oldErrorInfo) { +- Tcl_SetVar2(interp, "errorInfo", NULL, oldErrorInfo, +- TCL_GLOBAL_ONLY); +- } else { +- Tcl_SetVar2(interp, "errorInfo", NULL, oldResult, ++ Tcl_RestoreResult(interp, &oldResult); ++ if (oldErrorInfo) { ++ Tcl_SetVar2Ex(interp, "errorInfo", NULL, oldErrorInfo, + TCL_GLOBAL_ONLY); ++ Tcl_DecrRefCount(oldErrorInfo); + } + if (oldErrorCode) { +- Tcl_SetVar2(interp, "errorCode", NULL, oldErrorCode, ++ Tcl_SetVar2Ex(interp, "errorCode", NULL, oldErrorCode, + TCL_GLOBAL_ONLY); ++ Tcl_DecrRefCount(oldErrorCode); + } +- iPtr->flags |= ERR_IN_PROGRESS; + } + if (widCmd) { + ckfree(widCmd); +diff -up Tix8.4.2/Makefile.in_old Tix8.4.2/Makefile.in +--- Tix8.4.2/Makefile.in_old 2008-01-08 11:43:41.000000000 +0100 ++++ Tix8.4.2/Makefile.in 2008-01-08 11:46:22.000000000 +0100 +@@ -128,6 +128,7 @@ SHLIB_LD = @SHLIB_LD@ $(CFLAGS) -Wl,-son + SHLIB_LD_FLAGS = @SHLIB_LD_FLAGS@ + SHLIB_LD_LIBS = @SHLIB_LD_LIBS@ + STLIB_LD = @STLIB_LD@ ++TCL_VERSION = @TCL_VERSION@ + TCL_DEFS = @TCL_DEFS@ + TCL_SRC_DIR = @TCL_SRC_DIR@ + TCL_BIN_DIR = @TCL_BIN_DIR@ +@@ -294,7 +295,7 @@ VPATH = $(srcdir):$(srcdir)/generic:$(sr + + pkgIndex.tcl: + (\ +- echo 'if {[catch {package require Tcl 8.4}]} return';\ ++ echo 'if {[catch {package require Tcl $(TCL_VERSION)}]} return';\ + echo 'package ifneeded $(PACKAGE_NAME) $(PACKAGE_VERSION) \ + [list load [file join $$dir $(PKG_LIB_FILE)] $(PACKAGE_NAME)]'\ + ) > pkgIndex.tcl