aboutsummaryrefslogtreecommitdiff
path: root/x11-toolkits
diff options
context:
space:
mode:
authorMikhail Teterin <mi@FreeBSD.org>2010-01-22 05:13:22 +0000
committerMikhail Teterin <mi@FreeBSD.org>2010-01-22 05:13:22 +0000
commit5820a6fb37ee5cd60a17e9e42c9388c93c359401 (patch)
treed3d9450f20b166782bf1ad13982fd2e2dd3e6985 /x11-toolkits
parentbfe781930ba6a8d4f532bc583d234c766f898146 (diff)
downloadports-5820a6fb37ee5cd60a17e9e42c9388c93c359401.tar.gz
ports-5820a6fb37ee5cd60a17e9e42c9388c93c359401.zip
Notes
Diffstat (limited to 'x11-toolkits')
-rw-r--r--x11-toolkits/blt/Makefile13
-rw-r--r--x11-toolkits/blt/files/patch-warnings1068
2 files changed, 1078 insertions, 3 deletions
diff --git a/x11-toolkits/blt/Makefile b/x11-toolkits/blt/Makefile
index fee985884844..6d6db0a9f46e 100644
--- a/x11-toolkits/blt/Makefile
+++ b/x11-toolkits/blt/Makefile
@@ -7,7 +7,7 @@
PORTNAME= blt
PORTVERSION= 2.4z
-PORTREVISION= 2
+PORTREVISION= 3
CATEGORIES= x11-toolkits tk
MASTER_SITES= SF/${PORTNAME}/BLT/BLT%20${PORTVERSION} \
ftp://ftp.csl.sony.co.jp/pub/kjc/ttt-libs/
@@ -23,19 +23,26 @@ PATCH_DIST_STRIP= -p1
MAINTAINER= ports@FreeBSD.org
COMMENT= A Tk extension (with shared libs)
+LIB_DEPENDS= jpeg:${PORTSDIR}/graphics/jpeg
+
USE_LDCONFIG= yes
USE_AUTOTOOLS= libtool:22
WRKSRC= ${WRKDIR}/blt2.4z
GNU_CONFIGURE= yes
+CFLAGS+= -Wall -Wno-uninitialized -DWERROR
+MAKE_JOBS_SAFE= yes
USE_TK= 82+
-INVALID_TK_VER= 85 86
USE_XORG= x11
.include <bsd.port.pre.mk>
-CONFIGURE_ARGS+= --exec_prefix=${PREFIX} \
+post-configure:
+ ${REINPLACE_CMD} 's,-DWERROR,-Werror,' ${WRKSRC}/src/Makefile
+
+CONFIGURE_ARGS+=--exec_prefix=${PREFIX} \
+ --enable-jpeg=${LOCALBASE} \
--with-tcl=${TCL_LIBDIR} \
--with-tk=${TK_LIBDIR} \
--with-tcllibs=${LOCALBASE}/lib/ \
diff --git a/x11-toolkits/blt/files/patch-warnings b/x11-toolkits/blt/files/patch-warnings
new file mode 100644
index 000000000000..6e4ae4a1a53c
--- /dev/null
+++ b/x11-toolkits/blt/files/patch-warnings
@@ -0,0 +1,1068 @@
+--- src/blt.h 2002-07-14 19:33:24.000000000 -0400
++++ src/blt.h 2010-01-16 22:52:09.000000000 -0500
+@@ -56,7 +56,7 @@
+ typedef char *Blt_Uid;
+
+-EXTERN Blt_Uid Blt_GetUid _ANSI_ARGS_((char *string));
++EXTERN Blt_Uid Blt_GetUid _ANSI_ARGS_((const char *string));
+ EXTERN void Blt_FreeUid _ANSI_ARGS_((Blt_Uid uid));
+-EXTERN Blt_Uid Blt_FindUid _ANSI_ARGS_((char *string));
++EXTERN Blt_Uid Blt_FindUid _ANSI_ARGS_((const char *string));
+
+ #if (TCL_MAJOR_VERSION >= 8)
+--- src/bltInt.h 2002-08-21 16:13:12.000000000 -0400
++++ src/bltInt.h 2010-01-17 00:04:42.000000000 -0500
+@@ -714,5 +714,5 @@
+
+ extern int Blt_GetXY _ANSI_ARGS_((Tcl_Interp *interp, Tk_Window tkwin,
+- char *string, int *x, int *y));
++ const char *string, int *x, int *y));
+
+ extern Point2D Blt_GetProjection _ANSI_ARGS_((int x, int y, Point2D *p,
+--- src/bltBgexec.c 2002-09-18 18:30:50.000000000 -0400
++++ src/bltBgexec.c 2010-01-16 13:02:33.000000000 -0500
+@@ -56,5 +56,5 @@
+ } Process;
+ #else
+-typedef int Process;
++typedef pid_t Process;
+ #endif
+
+@@ -125,5 +125,5 @@
+ typedef struct {
+ int number;
+- char *name;
++ const char *name;
+ } SignalId;
+
+@@ -646,5 +646,5 @@
+ sinkPtr->echo = FALSE;
+ sinkPtr->fd = -1;
+- sinkPtr->file = (Tcl_File)NULL;
++ sinkPtr->file = 0;
+ sinkPtr->byteArr = sinkPtr->staticSpace;
+ sinkPtr->size = DEF_BUFFER_SIZE;
+@@ -704,5 +704,5 @@
+ }
+ sinkPtr->fd = -1;
+- sinkPtr->file = (Tcl_File)NULL;
++ sinkPtr->file = 0;
+ #if (TCL_MAJOR_VERSION >= 8)
+ if (sinkPtr->objv != NULL) {
+@@ -856,5 +856,5 @@
+ Tcl_DeleteFileHandler(sinkPtr->fd);
+ #endif
+- sinkPtr->file = (Tcl_File)NULL;
++ sinkPtr->file = 0;
+ sinkPtr->fd = -1;
+
+@@ -1073,5 +1073,5 @@
+ timeout = (flags & WNOHANG) ? 0 : INFINITE;
+ status = WaitForSingleObject(child.hProcess, timeout);
+-
++
+ #if WINDEBUG
+ PurifyPrintf("WAITPID: wait status is %d\n", status);
+@@ -1310,5 +1310,5 @@
+ (sinkPtr->flags & SINK_NOTIFY)) {
+ unsigned char *data;
+- int length;
++ int length = 0;
+
+ if (sinkPtr->flags & SINK_BUFFERED) {
+@@ -1472,5 +1472,5 @@
+ Tcl_DetachPids(1, &bgPtr->procArr[i]);
+ #else
+- Tcl_DetachPids(1, (Tcl_Pid *)bgPtr->procArr[i]);
++ Tcl_DetachPids(1, (Tcl_Pid *)(intptr_t)bgPtr->procArr[i]);
+ #endif /* TCL_MAJOR_VERSION == 7 */
+ #endif /* WIN32 */
+--- src/bltHash.h.in 2002-07-13 20:08:13.000000000 -0400
++++ src/bltHash.h.in 2010-01-16 19:38:20.000000000 -0500
+@@ -89,5 +89,5 @@
+ */
+ #define BLT_STRING_KEYS 0
+-#define BLT_ONE_WORD_KEYS ((size_t)-1)
++#define BLT_ONE_WORD_KEYS ((unsigned int)-1)
+
+ /*
+--- src/bltTree.c 2002-09-29 01:44:12.000000000 -0400
++++ src/bltTree.c 2010-01-16 19:42:48.000000000 -0500
+@@ -404,5 +404,5 @@
+ UnlinkNode(nodePtr);
+ treeObjPtr->nNodes--;
+- hPtr = Blt_FindHashEntry(&treeObjPtr->nodeTable, (char *)nodePtr->inode);
++ hPtr = Blt_FindHashEntry(&treeObjPtr->nodeTable, (char *)(uintptr_t)nodePtr->inode);
+ assert(hPtr);
+ Blt_DeleteHashEntry(&treeObjPtr->nodeTable, hPtr);
+@@ -837,5 +837,5 @@
+ do {
+ inode = treeObjPtr->nextInode++;
+- hPtr = Blt_CreateHashEntry(&treeObjPtr->nodeTable,(char *)inode,
++ hPtr = Blt_CreateHashEntry(&treeObjPtr->nodeTable,(char *)(uintptr_t)inode,
+ &isNew);
+ } while (!isNew);
+@@ -892,5 +892,5 @@
+
+ treeObjPtr = parentPtr->treeObject;
+- hPtr = Blt_CreateHashEntry(&treeObjPtr->nodeTable,(char *)inode, &isNew);
++ hPtr = Blt_CreateHashEntry(&treeObjPtr->nodeTable,(char *)(uintptr_t)inode, &isNew);
+ if (!isNew) {
+ return NULL;
+@@ -998,5 +998,5 @@
+ Blt_HashEntry *hPtr;
+
+- hPtr = Blt_FindHashEntry(&treeObjPtr->nodeTable, (char *)inode);
++ hPtr = Blt_FindHashEntry(&treeObjPtr->nodeTable, (char *)(uintptr_t)inode);
+ if (hPtr != NULL) {
+ return (Blt_TreeNode)Blt_GetHashValue(hPtr);
+--- src/bltTreeCmd.c 2002-09-27 18:23:01.000000000 -0400
++++ src/bltTreeCmd.c 2010-01-16 22:43:52.000000000 -0500
+@@ -951,5 +951,5 @@
+ Blt_Tree tree = cmdPtr->tree;
+ char c;
+- Blt_TreeNode node;
++ Blt_TreeNode node = NULL;
+ char *string;
+ char *p;
+@@ -1284,6 +1284,6 @@
+ node = dataPtr->root;
+ /* Create a mapping between the old id and the new node */
+- hPtr = Blt_CreateHashEntry(&dataPtr->idTable, (char *)nodeId,
+- &isNew);
++ hPtr = Blt_CreateHashEntry(&dataPtr->idTable,
++ (char *)(uintptr_t)nodeId, &isNew);
+ Blt_SetHashValue(hPtr, node);
+ Blt_TreeRelabelNode(cmdPtr->tree, node, names[0]);
+@@ -1294,5 +1294,5 @@
+ * existing node.
+ */
+- hPtr = Blt_FindHashEntry(&dataPtr->idTable, (char *)parentId);
++ hPtr = Blt_FindHashEntry(&dataPtr->idTable, (char *)(uintptr_t)parentId);
+ if (hPtr != NULL) {
+ parent = Blt_GetHashValue(hPtr);
+@@ -1331,5 +1331,5 @@
+ node = Blt_TreeFindChild(parent, names[nNames - 1]);
+ /* Create a mapping between the old id and the new node */
+- hPtr = Blt_CreateHashEntry(&dataPtr->idTable, (char *)nodeId,
++ hPtr = Blt_CreateHashEntry(&dataPtr->idTable, (char *)(uintptr_t)nodeId,
+ &isNew);
+ Blt_SetHashValue(hPtr, node);
+@@ -1341,5 +1341,5 @@
+ names[nNames - 1], -1);
+ /* Create a mapping between the old id and the new node */
+- hPtr = Blt_CreateHashEntry(&dataPtr->idTable, (char *)nodeId,
++ hPtr = Blt_CreateHashEntry(&dataPtr->idTable, (char *)(uintptr_t)nodeId,
+ &isNew);
+ Blt_SetHashValue(hPtr, node);
+@@ -1668,5 +1668,5 @@
+ node = Blt_ListNextNode(node)) {
+
+- type = (int)Blt_ListGetValue(node);
++ type = (intptr_t)Blt_ListGetValue(node);
+ pattern = (char *)Blt_ListGetKey(node);
+ switch (type) {
+@@ -2603,5 +2603,5 @@
+ hPtr != NULL; hPtr = Blt_NextHashEntry(&cursor)) {
+ node = Blt_GetHashValue(hPtr);
+- Blt_ChainAppend(chainPtr, (ClientData)Blt_TreeNodeId(node));
++ Blt_ChainAppend(chainPtr, (ClientData)(uintptr_t)Blt_TreeNodeId(node));
+ }
+ /*
+@@ -2613,5 +2613,5 @@
+ linkPtr = nextPtr) {
+ nextPtr = Blt_ChainNextLink(linkPtr);
+- inode = (int)Blt_ChainGetValue(linkPtr);
++ inode = (intptr_t)Blt_ChainGetValue(linkPtr);
+ node = Blt_TreeGetNode(cmdPtr->tree, inode);
+ if (node != NULL) {
+--- src/bltUnixPipe.c 2002-06-22 15:21:05.000000000 -0400
++++ src/bltUnixPipe.c 2010-01-16 22:45:17.000000000 -0500
+@@ -478,5 +478,5 @@
+ * startup.
+ */
+- Tcl_WaitPid((Tcl_Pid)pid, &status, WNOHANG);
++ Tcl_WaitPid((Tcl_Pid)(intptr_t)pid, &status, WNOHANG);
+ }
+ if (errPipeIn >= 0) {
+--- src/bltUtil.c 2002-08-21 16:13:12.000000000 -0400
++++ src/bltUtil.c 2010-01-16 22:53:55.000000000 -0500
+@@ -780,9 +780,9 @@
+ Blt_Uid
+ Blt_GetUid(string)
+- char *string; /* String to convert. */
++ const char *string; /* String to convert. */
+ {
+ int isNew;
+ Blt_HashEntry *hPtr;
+- int refCount;
++ intptr_t refCount;
+
+ if (!uidInitialized) {
+@@ -794,5 +794,5 @@
+ refCount = 0;
+ } else {
+- refCount = (int)Blt_GetHashValue(hPtr);
++ refCount = (intptr_t)Blt_GetHashValue(hPtr);
+ }
+ refCount++;
+@@ -829,7 +829,7 @@
+ hPtr = Blt_FindHashEntry(&uidTable, uid);
+ if (hPtr) {
+- int refCount;
++ intptr_t refCount;
+
+- refCount = (int)Blt_GetHashValue(hPtr);
++ refCount = (intptr_t)Blt_GetHashValue(hPtr);
+ refCount--;
+ if (refCount == 0) {
+@@ -857,5 +857,5 @@
+ Blt_Uid
+ Blt_FindUid(string)
+- char *string; /* String to find. */
++ const char *string; /* String to find. */
+ {
+ Blt_HashEntry *hPtr;
+--- src/bltInit.c As of 2.4.2
++++ src/bltInit.c 2010-01-16 22:59:22.000000000 -0500
+@@ -404,7 +404,7 @@
+ Tcl_Interp *interp; /* Interpreter to add extra commands */
+ {
+- int flags;
++ intptr_t flags;
+
+- flags = (int)Tcl_GetAssocData(interp, BLT_THREAD_KEY, NULL);
++ flags = (intptr_t)Tcl_GetAssocData(interp, BLT_THREAD_KEY, NULL);
+ if ((flags & BLT_TCL_CMDS) == 0) {
+ register Tcl_AppInitProc **p;
+@@ -416,5 +416,5 @@
+ * the same ones that BLT was compiled against.
+ */
+- if (Tcl_PkgRequire(interp, "Tcl", TCL_VERSION, EXACT) == NULL) {
++ if (Tcl_PkgRequire(interp, "Tcl", TCL_PATCH_LEVEL, EXACT) == NULL) {
+ return TCL_ERROR;
+ }
+@@ -515,5 +515,5 @@
+ * the same ones that BLT was compiled against.
+ */
+- if (Tcl_PkgRequire(interp, "Tcl", TCL_VERSION, EXACT) == NULL) {
++ if (Tcl_PkgRequire(interp, "Tcl", TCL_PATCH_LEVEL, EXACT) == NULL) {
+ return TCL_ERROR;
+ }
+@@ -553,9 +553,9 @@
+
+ #if (TCL_VERSION_NUMBER >= _VERSION(8,1,0))
+- if (Tcl_PkgPresent(interp, "Tk", TK_VERSION, EXACT) == NULL) {
++ if (Tcl_PkgPresent(interp, "Tk", TK_PATCH_LEVEL, EXACT) == NULL) {
+ return TCL_OK;
+ }
+ #else
+- if (Tcl_PkgRequire(interp, "Tk", TK_VERSION, EXACT) == NULL) {
++ if (Tcl_PkgRequire(interp, "Tk", TK_PATCH_LEVEL, EXACT) == NULL) {
+ Tcl_ResetResult(interp);
+ return TCL_OK;
+--- src/bltGrAxis.c 2010-01-16 22:59:57.000000000 -0500
++++ src/bltGrAxis.c 2010-01-16 23:05:00.000000000 -0500
+@@ -670,5 +670,5 @@
+ int offset; /* Offset of field in structure. */
+ {
+- unsigned int mask = (unsigned int)clientData;
++ unsigned int mask = (uintptr_t)clientData;
+ Axis *axisPtr = (Axis *)widgRec;
+ Ticks **ticksPtrPtr = (Ticks **) (widgRec + offset);
+@@ -1421,5 +1421,5 @@
+ {
+ double range;
+- double tickMin, tickMax;
++ double tickMin = 0, tickMax = 0;
+ double majorStep, minorStep;
+ int nMajor, nMinor;
+@@ -1550,7 +1550,7 @@
+ double min, max;
+ {
+- double range, step;
++ double range, step = 0;
+ double tickMin, tickMax;
+- double axisMin, axisMax;
++ double axisMin = 0, axisMax = 0;
+ int nTicks;
+
+@@ -3648,5 +3648,5 @@
+ int margin;
+
+- margin = (int)argv[-1];
++ margin = (intptr_t)argv[-1];
+ chainPtr = graphPtr->margins[margin].axes;
+ if (argc == 0) {
+@@ -4191,5 +4191,5 @@
+ return TCL_ERROR;
+ }
+- argv[2] = (char *)margin; /* Hack. Slide a reference to the margin in
++ argv[2] = (char *)(intptr_t)margin; /* Hack. Slide a reference to the margin in
+ * the argument list. Needed only for UseOp.
+ */
+--- src/bltGrBar.c 2002-09-18 18:30:51.000000000 -0400
++++ src/bltGrBar.c 2010-01-16 23:06:36.000000000 -0500
+@@ -2148,5 +2148,6 @@
+ Blt_HashSearch cursor;
+ Bar *barPtr;
+- int isNew, count;
++ int isNew;
++ intptr_t count;
+ int nStacks, nSegs;
+ int nPoints;
+@@ -2198,5 +2199,5 @@
+ count = 1;
+ } else {
+- count = (int)Blt_GetHashValue(hPtr);
++ count = (intptr_t)Blt_GetHashValue(hPtr);
+ if (count == 1) {
+ nStacks++;
+@@ -2220,10 +2221,10 @@
+ for (hPtr = Blt_FirstHashEntry(&freqTable, &cursor); hPtr != NULL;
+ hPtr = Blt_NextHashEntry(&cursor)) {
+- count = (int)Blt_GetHashValue(hPtr);
++ count = (intptr_t)Blt_GetHashValue(hPtr);
+ keyPtr = (FreqKey *)Blt_GetHashKey(&freqTable, hPtr);
+ if (count > 1) {
+ h2Ptr = Blt_CreateHashEntry(&(graphPtr->freqTable),
+ (char *)keyPtr, &isNew);
+- count = (int)Blt_GetHashValue(hPtr);
++ count = (intptr_t)Blt_GetHashValue(hPtr);
+ infoPtr->freq = count;
+ infoPtr->axes = keyPtr->axes;
+--- src/bltColor.c 2002-08-09 21:29:33.000000000 -0400
++++ src/bltColor.c 2010-01-16 23:43:28.000000000 -0500
+@@ -78,57 +78,4 @@
+ #define NCOLORS 256
+
+-
+-static void
+-GetPaletteSizes(nColors, nRedsPtr, nGreensPtr, nBluesPtr)
+- int nColors; /* Number of colors requested. */
+- unsigned int *nRedsPtr; /* (out) Number of red components. */
+- unsigned int *nGreensPtr; /* (out) Number of green components. */
+- unsigned int *nBluesPtr; /* (out) Number of blue components. */
+-{
+- unsigned int nBlues, nReds, nGreens;
+-
+- assert(nColors > 1);
+- nBlues = nReds = nGreens = 0;
+- while ((nBlues * nBlues * nBlues) <= nColors) {
+- nBlues++;
+- }
+- nBlues--;
+- while ((nReds * nReds * nBlues) <= nColors) {
+- nReds++;
+- }
+- nReds--;
+- nGreens = nColors / (nBlues * nReds);
+-
+- *nRedsPtr = nReds;
+- *nGreensPtr = nGreens;
+- *nBluesPtr = nBlues;
+-}
+-
+-static void
+-BuildColorRamp(palettePtr, nColors)
+- Pix32 *palettePtr;
+- int nColors;
+-{
+- register unsigned int r, g, b;
+- unsigned int short red, green, blue;
+- unsigned int nReds, nGreens, nBlues;
+-
+- GetPaletteSizes(nColors, &nReds, &nGreens, &nBlues);
+- for (r = 0; r < nReds; r++) {
+- red = (r * USHRT_MAX) / (nReds - 1);
+- for (g = 0; g < nGreens; g++) {
+- green = (g * USHRT_MAX) / (nGreens - 1);
+- for (b = 0; b < nBlues; b++) {
+- blue = (b * USHRT_MAX) / (nBlues - 1);
+- palettePtr->Red = red;
+- palettePtr->Green = green;
+- palettePtr->Blue = blue;
+- palettePtr++;
+- }
+- }
+- }
+-
+-}
+-
+ /*
+ *----------------------------------------------------------------------
+@@ -201,147 +148,4 @@
+ }
+
+-static void
+-FindClosestColor(colorPtr, mapColors, numMapColors)
+- ColorInfo *colorPtr;
+- XColor mapColors[];
+- int numMapColors;
+-{
+- double r, g, b;
+- register int i;
+- double dist, min;
+- XColor *lastMatch;
+- register XColor *mapColorPtr;
+-
+- min = DBL_MAX; /* Any color is closer. */
+- lastMatch = NULL;
+-
+- /* Linear search of color */
+-
+- mapColorPtr = mapColors;
+- for (i = 0; i < numMapColors; i++, mapColorPtr++) {
+- r = (double)mapColorPtr->red - (double)colorPtr->exact.red;
+- g = (double)mapColorPtr->green - (double)colorPtr->exact.green;
+- b = (double)mapColorPtr->blue - (double)colorPtr->exact.blue;
+-
+- dist = (r * r) + (b * b) + (g * g);
+- if (dist < min) {
+- min = dist;
+- lastMatch = mapColorPtr;
+- }
+- }
+- colorPtr->best = *lastMatch;
+- colorPtr->best.flags = (DoRed | DoGreen | DoBlue);
+- colorPtr->error = (float)sqrt(min);
+-}
+-
+-static int
+-CompareColors(a, b)
+- void *a, *b;
+-{
+- ColorInfo *i1Ptr, *i2Ptr;
+-
+- i1Ptr = *(ColorInfo **) a;
+- i2Ptr = *(ColorInfo **) b;
+- if (i2Ptr->error > i1Ptr->error) {
+- return 1;
+- } else if (i2Ptr->error < i1Ptr->error) {
+- return -1;
+- }
+- return 0;
+-}
+-
+-static float
+-MatchColors(colorTabPtr, rgbPtr, numColors, numAvailColors, numMapColors,
+- mapColors)
+- struct ColorTableStruct *colorTabPtr;
+- Pix32 *rgbPtr;
+- int numColors;
+- int numAvailColors;
+- int numMapColors;
+- XColor mapColors[NCOLORS];
+-{
+- int numMatched;
+- float sum;
+- register int i;
+- register ColorInfo *colorPtr;
+-
+- /*
+- * For each quantized color, compute and store the error (i.e
+- * the distance from a color that's already been allocated).
+- * We'll use this information to sort the colors based upon how
+- * badly they match and their frequency to the color image.
+- */
+- colorPtr = colorTabPtr->colorInfo;
+- for (i = 0; i < numColors; i++, colorPtr++, rgbPtr++) {
+- colorPtr->index = i;
+- colorTabPtr->sortedColors[i] = colorPtr;
+- colorPtr->exact.red = rgbPtr->Red;
+- colorPtr->exact.green = rgbPtr->Green;
+- colorPtr->exact.blue = rgbPtr->Blue;
+- colorPtr->exact.flags = (DoRed | DoGreen | DoBlue);
+- FindClosestColor(colorPtr, mapColors, numMapColors);
+- }
+-
+- /* Sort the colors, first by frequency (most to least), then by
+- * matching error (worst to best).
+- */
+- qsort(colorTabPtr->sortedColors, numColors, sizeof(ColorInfo *),
+- (QSortCompareProc *)CompareColors);
+-
+- for (i = 0; i < numColors; i++) {
+- colorPtr = colorTabPtr->sortedColors[i];
+- fprintf(stderr, "%d. %04x%04x%04x / %04x%04x%04x = %f (%d)\n", i,
+- colorPtr->exact.red, colorPtr->exact.green, colorPtr->exact.blue,
+- colorPtr->best.red, colorPtr->best.green, colorPtr->best.blue,
+- colorPtr->error, colorPtr->freq);
+- }
+- sum = 0.0;
+- numMatched = 0;
+- for (i = numAvailColors; i < numColors; i++) {
+- colorPtr = colorTabPtr->sortedColors[i];
+- sum += colorPtr->error;
+- numMatched++;
+- }
+- if (numMatched > 0) {
+- sum /= numMatched;
+- }
+- return sum;
+-}
+-
+-
+-static int
+-AllocateColors(nImageColors, colorTabPtr, matchOnly)
+- int nImageColors;
+- struct ColorTableStruct *colorTabPtr;
+- int matchOnly;
+-{
+- register int i;
+- register ColorInfo *colorPtr;
+- unsigned long int pixelValue;
+-
+- for (i = 0; i < nImageColors; i++) {
+- colorPtr = colorTabPtr->sortedColors[i];
+- if (matchOnly) {
+- XAllocColor(colorTabPtr->display, colorTabPtr->colorMap,
+- &colorPtr->best);
+- pixelValue = colorPtr->best.pixel;
+- } else {
+- colorPtr->allocated = XAllocColor(colorTabPtr->display,
+- colorTabPtr->colorMap, &colorPtr->exact);
+-
+- if (colorPtr->allocated) {
+- pixelValue = colorPtr->exact.pixel;
+- } else {
+- XAllocColor(colorTabPtr->display, colorTabPtr->colorMap,
+- &colorPtr->best);
+- pixelValue = colorPtr->best.pixel;
+- }
+- }
+- colorTabPtr->pixelValues[colorPtr->index] = pixelValue;
+- }
+- colorTabPtr->nPixels = nImageColors;
+- return 1;
+-}
+-
+ ColorTable
+ Blt_CreateColorTable(tkwin)
+@@ -511,47 +315,7 @@
+ }
+
+-/*
+- * First attempt:
+- * Allocate colors all the colors in the image (up to NCOLORS). Bail out
+- * on the first failure or if we need more than NCOLORS.
+- */
+-static int
+-GetUniqueColors(image)
+- Blt_ColorImage image;
+-{
+- register int i, nColors;
+- register Pix32 *pixelPtr;
+- Pix32 color;
+- Blt_HashEntry *hPtr;
+- int isNew, nPixels;
+- int refCount;
+- Blt_HashTable colorTable;
+-
+- Blt_InitHashTable(&colorTable, BLT_ONE_WORD_KEYS);
+-
+- nPixels = Blt_ColorImageWidth(image) * Blt_ColorImageHeight(image);
+- nColors = 0;
+- pixelPtr = Blt_ColorImageBits(image);
+- for (i = 0; i < nPixels; i++, pixelPtr++) {
+- color.value = pixelPtr->value;
+- color.Alpha = 0xFF; /* Ignore alpha-channel values */
+- hPtr = Blt_CreateHashEntry(&colorTable, (char *)color.value, &isNew);
+- if (isNew) {
+- refCount = 1;
+- nColors++;
+- } else {
+- refCount = (int)Blt_GetHashValue(hPtr);
+- refCount++;
+- }
+- Blt_SetHashValue(hPtr, (ClientData)refCount);
+- }
+- Blt_DeleteHashTable(&colorTable);
+- return nColors;
+-}
+-
+ #define Blt_DefaultColormap(tkwin) \
+ DefaultColormap(Tk_Display(tkwin), Tk_ScreenNumber(tkwin))
+
+-
+ static void
+ PrivateColormap(interp, colorTabPtr, image, tkwin)
+--- src/bltConfig.c 2002-09-18 18:30:51.000000000 -0400
++++ src/bltConfig.c 2010-01-16 23:45:46.000000000 -0500
+@@ -276,5 +276,5 @@
+ int offset; /* Offset of style in record */
+ {
+- unsigned int mask = (unsigned int)clientData; /* Bit to be tested */
++ unsigned int mask = (uintptr_t)clientData; /* Bit to be tested */
+ int *flagPtr = (int *)(widgRec + offset);
+ int bool;
+@@ -312,5 +312,5 @@
+ Tcl_FreeProc **freeProcPtr; /* Not Used. */
+ {
+- unsigned int mask = (unsigned int)clientData; /* Bit to be tested */
++ unsigned int mask = (uintptr_t)clientData; /* Bit to be tested */
+ unsigned int bool = *(unsigned int *)(widgRec + offset);
+
+@@ -393,5 +393,5 @@
+ {
+ int *valuePtr = (int *)(widgRec + offset);
+- return Blt_GetPixels(interp, tkwin, string, (int)clientData, valuePtr);
++ return Blt_GetPixels(interp, tkwin, string, (intptr_t)clientData, valuePtr);
+ }
+
+@@ -482,5 +482,5 @@
+ {
+ int *valuePtr = (int *)(widgRec + offset);
+- return Blt_GetInt(interp, string, (int)clientData, valuePtr);
++ return Blt_GetInt(interp, string, (intptr_t)clientData, valuePtr);
+ }
+
+--- src/bltContainer.c 2002-07-14 19:33:24.000000000 -0400
++++ src/bltContainer.c 2010-01-16 23:47:10.000000000 -0500
+@@ -823,5 +823,5 @@
+ int offset; /* Offset to field in structure */
+ {
+- unsigned int flags = (int)clientData;
++ unsigned int flags = (uintptr_t)clientData;
+ Container *cntrPtr = (Container *)widgRec;
+ Window *winPtr = (Window *) (widgRec + offset);
+--- src/bltGrMisc.c 2002-07-17 05:56:00.000000000 -0400
++++ src/bltGrMisc.c 2010-01-17 00:03:38.000000000 -0500
+@@ -75,5 +75,5 @@
+ Tcl_Interp *interp;
+ Tk_Window tkwin;
+- char *string;
++ const char *string;
+ int *xPtr, *yPtr;
+ {
+@@ -261,5 +261,5 @@
+ ColorPair *pairPtr = (ColorPair *)(widgRec + offset);
+ ColorPair sample;
+- int allowDefault = (int)clientData;
++ int allowDefault = (intptr_t)clientData;
+
+ sample.fgColor = sample.bgColor = NULL;
+--- src/bltHierbox.c 2002-09-18 23:02:09.000000000 -0400
++++ src/bltHierbox.c 2010-01-17 00:02:41.000000000 -0500
+@@ -2078,5 +2078,5 @@
+ do {
+ serial = hboxPtr->nextSerial++;
+- hPtr = Blt_CreateHashEntry(&(hboxPtr->nodeTable), (char *)serial,
++ hPtr = Blt_CreateHashEntry(&(hboxPtr->nodeTable), (char *)(intptr_t)serial,
+ &isNew);
+ } while (!isNew);
+@@ -2365,5 +2365,5 @@
+ GetNodeByIndex(hboxPtr, string)
+ Hierbox *hboxPtr;
+- char *string;
++ const char *string;
+ {
+ if (isdigit(UCHAR(string[0]))) {
+@@ -2373,5 +2373,5 @@
+ Blt_HashEntry *hPtr;
+
+- hPtr = Blt_FindHashEntry(&(hboxPtr->nodeTable), (char *)serial);
++ hPtr = Blt_FindHashEntry(&(hboxPtr->nodeTable), (char *)(intptr_t)serial);
+ if (hPtr != NULL) {
+ return (Tree *) Blt_GetHashValue(hPtr);
+@@ -2403,9 +2403,9 @@
+ Tree *nodePtr;
+ {
+- static char string[200];
++ static char string[31];
+ int serial;
+
+ /* Node table keys are integers. Convert them to strings. */
+- serial = (int)Blt_GetHashKey(&(hboxPtr->nodeTable),
++ serial = (intptr_t)Blt_GetHashKey(&(hboxPtr->nodeTable),
+ nodePtr->entryPtr->hashPtr);
+ sprintf(string, "%d", serial);
+@@ -2458,5 +2458,5 @@
+ GetNode(hboxPtr, string, treePtrPtr)
+ Hierbox *hboxPtr;
+- char *string;
++ const char *string;
+ Tree **treePtrPtr;
+ {
+--- src/bltImage.c 2002-08-15 01:22:10.000000000 -0400
++++ src/bltImage.c 2010-01-17 00:13:49.000000000 -0500
+@@ -2419,11 +2419,11 @@
+ }
+
+-static unsigned int *
+-CreateColorLookupTable(s, cubes, nColors)
++static void
++CreateColorLookupTable(s, cubes, nColors, lut)
+ ColorImageStatistics *s;
+ Cube *cubes;
+ int nColors;
++ unsigned int lut[33][33][33];
+ {
+- unsigned int *lut;
+ Pix32 color;
+ unsigned int red, green, blue;
+@@ -2432,7 +2432,4 @@
+ register int i;
+
+- lut = Blt_Calloc(sizeof(unsigned int), 33 * 33 * 33);
+- assert(lut);
+-
+ color.Alpha = (unsigned char)-1;
+ for (cubePtr = cubes, i = 0; i < nColors; i++, cubePtr++) {
+@@ -2451,5 +2448,4 @@
+ Mark(cubePtr, color.value, lut);
+ }
+- return lut;
+ }
+
+@@ -2514,5 +2510,5 @@
+ ColorImageStatistics *statistics;
+ int nColors;
+- unsigned int *lut;
++ unsigned int lut[33][33][33];
+
+ /*
+@@ -2528,9 +2524,8 @@
+ assert(nColors <= reduceColors);
+
+- lut = CreateColorLookupTable(statistics, cubes, nColors);
++ CreateColorLookupTable(statistics, cubes, nColors, lut);
+ Blt_Free(statistics);
+ Blt_Free(cubes);
+ MapColors(src, dest, lut);
+- Blt_Free(lut);
+ return TCL_OK;
+ }
+--- src/bltUnixImage.c 2002-08-16 00:15:04.000000000 -0400
++++ src/bltUnixImage.c 2010-01-17 00:15:52.000000000 -0500
+@@ -575,5 +575,5 @@
+ endPtr = destPtr + nPixels;
+ for (/* empty */; destPtr < endPtr; destPtr++) {
+- hPtr = Blt_FindHashEntry(&pixelTable, (char *)destPtr->value);
++ hPtr = Blt_FindHashEntry(&pixelTable, (char *)(intptr_t)destPtr->value);
+ colorPtr = (XColor *)Blt_GetHashValue(hPtr);
+ destPtr->Red = lut[colorPtr->red >> 8];
+--- src/bltTable.c 2002-10-14 19:31:24.000000000 -0400
++++ src/bltTable.c 2010-01-21 23:11:06.000000000 -0500
+@@ -2035,5 +2035,5 @@
+ for (node = Blt_ListFirstNode(list); node != NULL;
+ node = Blt_ListNextNode(node)) {
+- key = (int)Blt_ListGetKey(node);
++ key = (intptr_t)Blt_ListGetKey(node);
+ if (entryPtr->row.span <= key) {
+ break;
+@@ -2047,5 +2047,5 @@
+ * span and and link it into the list of buckets.
+ */
+- newNode = Blt_ListCreateNode(list, (char *)entryPtr->row.span);
++ newNode = Blt_ListCreateNode(list, (char *)(intptr_t)entryPtr->row.span);
+ Blt_ListSetValue(newNode, (char *)Blt_ChainCreate());
+ Blt_ListLinkBefore(list, newNode, node);
+@@ -2064,5 +2064,5 @@
+ for (node = Blt_ListFirstNode(list); node != NULL;
+ node = Blt_ListNextNode(node)) {
+- key = (int)Blt_ListGetKey(node);
++ key = (intptr_t)Blt_ListGetKey(node);
+ if (entryPtr->column.span <= key) {
+ break;
+@@ -2076,5 +2076,5 @@
+ * span and and link it into the list of buckets.
+ */
+- newNode = Blt_ListCreateNode(list, (char *)entryPtr->column.span);
++ newNode = Blt_ListCreateNode(list, (char *)(intptr_t)entryPtr->column.span);
+ Blt_ListSetValue(newNode, (char *)Blt_ChainCreate());
+ Blt_ListLinkBefore(list, newNode, node);
+--- src/bltTreeView.c 2010-01-17 00:06:38.000000000 -0500
++++ src/bltTreeView.c 2010-01-21 23:12:51.000000000 -0500
+@@ -1050,5 +1050,5 @@
+ Blt_HashEntry *hPtr;
+ int isNew;
+- int refCount;
++ intptr_t refCount;
+
+ hPtr = Blt_CreateHashEntry(&tvPtr->uidTable, string, &isNew);
+@@ -1056,5 +1056,5 @@
+ refCount = 1;
+ } else {
+- refCount = (int)Blt_GetHashValue(hPtr);
++ refCount = (intptr_t)Blt_GetHashValue(hPtr);
+ refCount++;
+ }
+@@ -1081,9 +1081,9 @@
+ {
+ Blt_HashEntry *hPtr;
+- int refCount;
++ intptr_t refCount;
+
+ hPtr = Blt_FindHashEntry(&tvPtr->uidTable, uid);
+ assert(hPtr != NULL);
+- refCount = (int)Blt_GetHashValue(hPtr);
++ refCount = (intptr_t)Blt_GetHashValue(hPtr);
+ refCount--;
+ if (refCount > 0) {
+--- src/bltTreeView.h 2002-08-15 18:20:38.000000000 -0400
++++ src/bltTreeView.h 2010-01-21 23:17:42.000000000 -0500
+@@ -1005,4 +1005,6 @@
+ extern void Blt_TreeViewDrawRule _ANSI_ARGS_((TreeView *tvPtr,
+ TreeViewColumn *columnPtr, Drawable drawable));
++extern int Blt_TreeViewTextbox _ANSI_ARGS_((TreeView *tvPtr,
++ TreeViewEntry *entryPtr, TreeViewColumn *columnPtr));
+ extern int Blt_TreeViewTextOp _ANSI_ARGS_((TreeView *tvPtr, Tcl_Interp *interp,
+ int objc, Tcl_Obj *CONST *objv));
+--- src/bltTreeViewStyle.c 2002-07-22 18:18:40.000000000 -0400
++++ src/bltTreeViewStyle.c 2010-01-21 23:19:14.000000000 -0500
+@@ -416,5 +416,5 @@
+ static StyleFreeProc FreeTextBox, FreeCheckBox, FreeComboBox;
+ static StyleMeasureProc MeasureTextBox, MeasureCheckBox, MeasureComboBox;
+-static StylePickProc PickCheckBox, PickComboBox;
++static StylePickProc PickComboBox;
+
+ /*
+@@ -1264,58 +1264,4 @@
+ *----------------------------------------------------------------------
+ *
+- * PickCheckbox --
+- *
+- * Draws the "checkbox" given the screen coordinates and the
+- * value to be displayed.
+- *
+- * Results:
+- * None.
+- *
+- * Side Effects:
+- * The checkbox value is drawn.
+- *
+- *----------------------------------------------------------------------
+- */
+-static int
+-PickCheckBox(entryPtr, valuePtr, stylePtr, worldX, worldY)
+- TreeViewEntry *entryPtr;
+- TreeViewValue *valuePtr;
+- TreeViewStyle *stylePtr;
+- int worldX, worldY;
+-{
+- TreeViewColumn *columnPtr;
+- TreeViewCheckBox *cbPtr = (TreeViewCheckBox *)stylePtr;
+- int columnWidth;
+- int x, y, width, height;
+-
+- columnPtr = valuePtr->columnPtr;
+- columnWidth = columnPtr->width -
+- (2 * columnPtr->borderWidth + PADDING(columnPtr->pad));
+- if (columnWidth > valuePtr->width) {
+- switch(columnPtr->justify) {
+- case TK_JUSTIFY_RIGHT:
+- worldX += (columnWidth - valuePtr->width);
+- break;
+- case TK_JUSTIFY_CENTER:
+- worldX += (columnWidth - valuePtr->width) / 2;
+- break;
+- case TK_JUSTIFY_LEFT:
+- break;
+- }
+- }
+- width = height = ODD(cbPtr->size) + 2 * cbPtr->lineWidth;
+- x = columnPtr->worldX + columnPtr->pad.side1 + cbPtr->gap -
+- cbPtr->lineWidth;
+- y = entryPtr->worldY + (entryPtr->height - height) / 2;
+- if ((worldX >= x) && (worldX < (x + width)) &&
+- (worldY >= y) && (worldY < (y + height))) {
+- return TRUE;
+- }
+- return FALSE;
+-}
+-
+-/*
+- *----------------------------------------------------------------------
+- *
+ * EditCheckbox --
+ *
+--- src/bltObjConfig.c 2002-09-18 18:30:51.000000000 -0400
++++ src/bltObjConfig.c 2010-01-21 23:21:47.000000000 -0500
+@@ -1220,5 +1220,5 @@
+ {
+ int bool;
+- unsigned int flag;
++ uintptr_t flag;
+
+
+@@ -1226,5 +1226,5 @@
+ return TCL_ERROR;
+ }
+- flag = (unsigned int)specPtr->customPtr;
++ flag = (uintptr_t)specPtr->customPtr;
+ *(int *)ptr &= ~flag;
+ if (bool) {
+@@ -1499,7 +1499,7 @@
+ case BLT_CONFIG_BITFLAG:
+ {
+- unsigned int flag;
++ uintptr_t flag;
+
+- flag = (*(int *)ptr) & (unsigned int)specPtr->customPtr;
++ flag = (*(int *)ptr) & (uintptr_t)specPtr->customPtr;
+ return Tcl_NewBooleanObj((flag != 0));
+ }
+--- src/bltTed.c 2002-05-16 16:46:00.000000000 -0400
++++ src/bltTed.c 2010-01-21 23:24:01.000000000 -0500
+@@ -307,8 +307,6 @@
+ static void DestroyTed _ANSI_ARGS_((DestroyData destroyData));
+ static void DisplayEntry _ANSI_ARGS_((ClientData clientData));
+-static void DestroyEntry _ANSI_ARGS_((DestroyData destoryData));
+
+ static Tcl_CmdProc TedCmd;
+-static Tk_EventProc EntryEventProc;
+ static Tk_EventProc TedEventProc;
+
+@@ -343,72 +341,4 @@
+
+ /*
+- *----------------------------------------------------------------------
+- *
+- * EventuallyRedraw --
+- *
+- * Queues a request to redraw the text window at the next idle
+- * point.
+- *
+- * Results:
+- * None.
+- *
+- * Side effects:
+- * Information gets redisplayed. Right now we don't do selective
+- * redisplays: the whole window will be redrawn. This doesn't
+- * seem to hurt performance noticeably, but if it does then this
+- * could be changed.
+- *
+- *----------------------------------------------------------------------
+- */
+-static void
+-EventuallyRedrawEntry(repPtr)
+- EntryRep *repPtr; /* Information about editor. */
+-{
+- if ((repPtr->tkwin != NULL) && !(repPtr->flags & REDRAW_PENDING)) {
+- repPtr->flags |= REDRAW_PENDING;
+- Tcl_DoWhenIdle(DisplayEntry, repPtr);
+- }
+-}
+-
+-/*
+- * --------------------------------------------------------------
+- *
+- * EntryEventProc --
+- *
+- * This procedure is invoked by the Tk dispatcher for various
+- * events on the editing grid for the table.
+- *
+- * Results:
+- * None.
+- *
+- * Side effects:
+- * When the window gets deleted, internal structures get
+- * cleaned up. When it gets exposed, it is redisplayed.
+- *
+- * --------------------------------------------------------------
+- */
+-static void
+-EntryEventProc(clientData, eventPtr)
+- ClientData clientData; /* Information about window. */
+- XEvent *eventPtr; /* Information about event. */
+-{
+- EntryRep *repPtr = (EntryRep *) clientData;
+-
+- if (eventPtr->type == ConfigureNotify) {
+- EventuallyRedrawEntry(repPtr);
+- } else if (eventPtr->type == Expose) {
+- if (eventPtr->xexpose.count == 0) {
+- EventuallyRedrawEntry(repPtr);
+- }
+- } else if (eventPtr->type == DestroyNotify) {
+- repPtr->tkwin = NULL;
+- if (repPtr->flags & REDRAW_PENDING) {
+- Tcl_CancelIdleCall(DisplayEntry, repPtr);
+- }
+- Tcl_EventuallyFree(repPtr, DestroyEntry);
+- }
+-}
+-
+-/*
+ * --------------------------------------------------------------
+ *
+@@ -545,78 +475,4 @@
+ * ----------------------------------------------------------------------------
+ *
+- * CreateEntry --
+- *
+- * ----------------------------------------------------------------------------
+- */
+-static int
+-CreateEntry(tedPtr, entryPtr)
+- Ted *tedPtr;
+- Entry *entryPtr;
+-{
+- Tk_Window tkwin, master;
+- char string[200];
+- EntryRep *repPtr;
+- Blt_ChainLink *linkPtr;
+-
+- repPtr = Blt_Calloc(1, sizeof(EntryRep));
+- assert(repPtr);
+- repPtr->tablePtr = tedPtr->tablePtr;
+- repPtr->tedPtr = tedPtr;
+- repPtr->interp = tedPtr->interp;
+- repPtr->entryPtr = entryPtr;
+- repPtr->mapped = 0;
+-
+- /*
+- * Create a sibling window to cover the master window. It will
+- * be stacked just above the master window.
+- */
+-
+- master = tedPtr->tablePtr->tkwin;
+- sprintf(string, "bltTed%d", tedPtr->nextWindowId);
+- tedPtr->nextWindowId++;
+- tkwin = Tk_CreateWindow(tedPtr->interp, master, string, (char *)NULL);
+- if (tkwin == NULL) {
+- Blt_Free(repPtr);
+- return TCL_ERROR;
+- }
+- Tk_SetClass(tkwin, "BltTed");
+- Tk_CreateEventHandler(tkwin, ExposureMask | StructureNotifyMask,
+- EntryEventProc, repPtr);
+- repPtr->tkwin = tkwin;
+- linkPtr = Blt_ChainNewLink();
+- Blt_ChainSetValue(linkPtr, repPtr);
+- Blt_ChainLinkAfter(tedPtr->chainPtr, linkPtr, (Blt_ChainLink *)NULL);
+- return TCL_OK;
+-}
+-
+-/*
+- * ----------------------------------------------------------------------------
+- *
+- * DestroyEntry --
+- *
+- * ----------------------------------------------------------------------------
+- */
+-static void
+-DestroyEntry(data)
+- DestroyData data;
+-{
+- EntryRep *repPtr = (EntryRep *)data;
+- Blt_ChainLink *linkPtr;
+- Entry *entryPtr;
+-
+- for (linkPtr = Blt_ChainFirstLink(repPtr->tedPtr->chainPtr);
+- linkPtr != NULL; linkPtr = Blt_ChainNextLink(linkPtr)) {
+- entryPtr = Blt_ChainGetValue(linkPtr);
+- if (entryPtr == repPtr->entryPtr) {
+- Blt_ChainDeleteLink(repPtr->tedPtr->chainPtr, linkPtr);
+- Blt_Free(repPtr);
+- return;
+- }
+- }
+-}
+-
+-/*
+- * ----------------------------------------------------------------------------
+- *
+ * DisplayEntry --
+ *