summaryrefslogtreecommitdiff
path: root/lang/tclX
diff options
context:
space:
mode:
authorMikhail Teterin <mi@FreeBSD.org>2005-07-19 03:46:27 +0000
committerMikhail Teterin <mi@FreeBSD.org>2005-07-19 03:46:27 +0000
commit165f6db34868bf42643c5e43d0faed2b5680b647 (patch)
tree9ae813ad014ef0494979811d7faf259e7f39de4b /lang/tclX
parentNote removal of x11/eweather. (diff)
Try to make the vendor's tests run smoothly. Fail, but in the process
eliminate all warnings (on i386) and const-ify the KeyedList-API and others (patch-warnings grew up). Fix a typo in the previous commit (s/KeyList/KeyedList/g in MLINKS). Bump PORTREVISION again.
Notes
Notes: svn path=/head/; revision=139573
Diffstat (limited to 'lang/tclX')
-rw-r--r--lang/tclX/Makefile21
-rw-r--r--lang/tclX/files/patch-tclXdebug141
-rw-r--r--lang/tclX/files/patch-tclXutil45
-rw-r--r--lang/tclX/files/patch-tests7
-rw-r--r--lang/tclX/files/patch-tkxshell28
-rw-r--r--lang/tclX/files/patch-warnings380
6 files changed, 598 insertions, 24 deletions
diff --git a/lang/tclX/Makefile b/lang/tclX/Makefile
index d3d035afe99c..44bfd1c17bcf 100644
--- a/lang/tclX/Makefile
+++ b/lang/tclX/Makefile
@@ -7,7 +7,7 @@
PORTNAME= tclX
PORTVERSION= 8.3.5
-PORTREVISION= 1
+PORTREVISION= 2
CATEGORIES= lang tcl${TCL_DVER} tk${TCL_DVER}
MASTER_SITES= ${MASTER_SITE_SOURCEFORGE}
MASTER_SITE_SUBDIR=tclx
@@ -54,7 +54,7 @@ MANN= TclX.n
MLINKS= CmdWrite.3 TclCommandWriting.3 \
Keylist.3 TclX_NewKeyedListObj.3
.for l in Delete Get GetKeys Set TclX_Main TclX_NewKeyedListObj
-MLINKS+= Keylist.3 TclX_Keylist$l.3
+MLINKS+= Keylist.3 TclX_KeyedList$l.3
.endfor
.for l in Alloc Free TblInit TblRelease TblUseCount Walk Xlate
MLINKS+= Handles.3 TclX_Handle$l.3
@@ -67,11 +67,20 @@ post-patch:
# This man-page is now part of Tcl distribution:
${RM} ${WRKSRC:H}/doc/Memory.n
-.include <bsd.port.pre.mk>
-
pre-install:
- # Preventing the help files from being rebuilt over and over:
cd ${WRKSRC:H}/doc && ${INSTALL_MAN} ${MAN3} ${PREFIX}/man/man3
cd ${WRKSRC:H}/doc && ${INSTALL_MAN} ${MANN} ${PREFIX}/man/mann
-.include <bsd.port.post.mk>
+post-install:
+ ######
+ # If you have spare time, try running ``make test'' and
+ # debug any tests, that fail. Thank you.
+ ######
+
+test:
+ cd ${WRKSRC:H}/tcl/tests && ${SETENV} LANG=C ${WRKSRC}/runtcl all
+.ifndef WITHOUT_X11
+ cd ${WRKSRC:H}/tk/tests && ${WRKSRC}/runtcl signal.test
+.endif
+
+.include <bsd.port.mk>
diff --git a/lang/tclX/files/patch-tclXdebug b/lang/tclX/files/patch-tclXdebug
new file mode 100644
index 000000000000..6e9d918ff2ec
--- /dev/null
+++ b/lang/tclX/files/patch-tclXdebug
@@ -0,0 +1,141 @@
+--- ../tcl/generic/tclXdebug.c Wed Mar 31 01:37:43 1999
++++ ../tcl/generic/tclXdebug.c Mon Jul 18 23:18:20 2005
+@@ -48,11 +48,12 @@
+ static void
+ PrintStr _ANSI_ARGS_((Tcl_Channel channel,
+- char *string,
+- int numChars,
++ const char *string,
++ size_t strLen,
++ size_t numChars,
+ int quoted));
+
+ static void
+ PrintArg _ANSI_ARGS_((Tcl_Channel channel,
+- char *argStr,
++ const char *argStr,
+ int noTruncate));
+
+@@ -60,7 +61,7 @@
+ TraceCode _ANSI_ARGS_((traceInfo_pt infoPtr,
+ int level,
+- char *command,
++ const char *command,
+ int argc,
+- char **argv));
++ const char * const *argv));
+
+ static int
+@@ -73,7 +74,7 @@
+ traceInfo_pt infoPtr,
+ int level,
+- char *command,
++ const char *command,
+ int argc,
+- char **argv));
++ const char * const *argv));
+
+ static void
+@@ -81,9 +82,9 @@
+ Tcl_Interp *interp,
+ int level,
+- char *command,
++ const char *command,
+ Tcl_CmdProc *cmdProc,
+ ClientData cmdClientData,
+ int argc,
+- char **argv));
++ const char * const *argv));
+
+ static int
+@@ -132,8 +133,8 @@
+ */
+ static void
+-PrintStr (channel, string, numChars, quoted)
++PrintStr (channel, string, strLen, numChars, quoted)
+ Tcl_Channel channel;
+- char *string;
+- int numChars;
++ const char *string;
++ size_t strLen, numChars;
+ int quoted;
+ {
+@@ -149,5 +150,5 @@
+ }
+ }
+- if (numChars < (int) strlen (string))
++ if (numChars < strLen)
+ Tcl_Write (channel, "...", 3);
+ if (quoted)
+@@ -166,8 +167,9 @@
+ PrintArg (channel, argStr, noTruncate)
+ Tcl_Channel channel;
+- char *argStr;
++ const char *argStr;
+ int noTruncate;
+ {
+- int idx, argLen, printLen;
++ int idx;
++ size_t argLen, printLen;
+ int quoted;
+
+@@ -185,5 +187,5 @@
+ }
+
+- PrintStr (channel, argStr, printLen, quoted);
++ PrintStr (channel, argStr, argLen, printLen, quoted);
+ }
+
+@@ -199,9 +201,10 @@
+ traceInfo_pt infoPtr;
+ int level;
+- char *command;
++ const char *command;
+ int argc;
+- char **argv;
++ const char * const *argv;
+ {
+- int idx, cmdLen, printLen;
++ int idx;
++ size_t strLen, printLen;
+ char buf [32];
+
+@@ -215,9 +218,13 @@
+
+ if (infoPtr->noEval) {
+- cmdLen = printLen = strlen (command);
+- if ((!infoPtr->noTruncate) && (printLen > CMD_TRUNCATE_SIZE))
++ strLen = strlen (command);
++ if (command[strLen - 1] == '\n')
++ --strLen;
++ if ((!infoPtr->noTruncate) && (strLen > CMD_TRUNCATE_SIZE))
+ printLen = CMD_TRUNCATE_SIZE;
++ else
++ printLen = strLen;
+
+- PrintStr (infoPtr->channel, command, printLen, FALSE);
++ PrintStr(infoPtr->channel, command, strLen, printLen, FALSE);
+ } else {
+ for (idx = 0; idx < argc; idx++) {
+@@ -289,7 +296,7 @@
+ traceInfo_pt infoPtr;
+ int level;
+- char *command;
++ const char *command;
+ int argc;
+- char **argv;
++ const char * const *argv;
+ {
+ Interp *iPtr = (Interp *) interp;
+@@ -353,9 +360,9 @@
+ Tcl_Interp *interp;
+ int level;
+- char *command;
++ const char *command; /* (almost) same as argv[0] */
+ Tcl_CmdProc *cmdProc;
+ ClientData cmdClientData;
+ int argc;
+- char **argv;
++ const char * const *argv;
+ {
+ Interp *iPtr = (Interp *) interp;
diff --git a/lang/tclX/files/patch-tclXutil b/lang/tclX/files/patch-tclXutil
new file mode 100644
index 000000000000..46e29738c821
--- /dev/null
+++ b/lang/tclX/files/patch-tclXutil
@@ -0,0 +1,45 @@
+There is no need for TclX_WriteStr to exist any more -- Tcl_Write
+will do the same thing if the passed length is negative.
+
+This patch will still let the function into the library (for
+ABI compatibility), but the new compiles will use Tcl_Write
+directly.
+
+TclX_Eval does not do anything to its `string' argument, nor
+do Tcl_Eval or Tcl_EvalFile, that it calls. Constify `string'.
+
+ -mi
+
+--- ../tcl/generic/tclExtdInt.h Sat May 19 12:45:23 2001
++++ ../tcl/generic/tclExtdInt.h Mon Jul 18 21:05:47 2005
+@@ -224,5 +224,3 @@
+
+-extern int
+-TclX_WriteStr _ANSI_ARGS_((Tcl_Channel channel,
+- char *str));
++#define TclX_WriteStr(channel, string) Tcl_Write((channel), (string), -1)
+
+--- ../tcl/generic/tclXutil.c Sat May 19 12:45:23 2001
++++ ../tcl/generic/tclXutil.c Mon Jul 18 21:04:07 2005
+@@ -556,5 +556,5 @@
+ Tcl_Interp *interp;
+ unsigned options;
+- char *string;
++ const char *string;
+ {
+ Interp *iPtr = (Interp *) interp;
+@@ -624,4 +624,7 @@
+ }
+
++#ifdef TclX_WriteStr
++# undef TclX_WriteStr
++#endif
+ /*-----------------------------------------------------------------------------
+ * TclX_WriteStr --
+@@ -937,5 +940,5 @@
+ Tcl_DString *joinedPath;
+ {
+- char *joinArgv [2];
++ const char *joinArgv [2];
+
+ joinArgv [0] = path1;
diff --git a/lang/tclX/files/patch-tests b/lang/tclX/files/patch-tests
new file mode 100644
index 000000000000..f0df8fbbe1ed
--- /dev/null
+++ b/lang/tclX/files/patch-tests
@@ -0,0 +1,7 @@
+--- ../tk/tests/signal.test Wed Mar 31 01:37:56 1999
++++ ../tk/tests/signal.test Mon Jul 18 20:10:40 2005
+@@ -20,2 +20,4 @@
+
++package require Tk
++
+ foreach i [winfo children .] {
diff --git a/lang/tclX/files/patch-tkxshell b/lang/tclX/files/patch-tkxshell
index fcfdb3d4850d..6bc7e5a25b63 100644
--- a/lang/tclX/files/patch-tkxshell
+++ b/lang/tclX/files/patch-tkxshell
@@ -1,7 +1,25 @@
---- ../tk/generic/tkXshell.c Sun Feb 6 19:54:00 2000
-+++ ../tk/generic/tkXshell.c Fri Mar 16 14:02:59 2001
-@@ -87,2 +87,4 @@
+--- ../tk/generic/tkXshell.c Fri Jun 29 16:55:39 2001
++++ ../tk/generic/tkXshell.c Mon Jul 18 22:50:01 2005
+@@ -85,6 +85,8 @@
+ extern char * strrchr _ANSI_ARGS_((CONST char *string, int c));
+ #endif
+#if TK_MAJOR_VERSION == 8 && TK_MINOR_VERSION < 3
- extern void TkpDisplayWarning _ANSI_ARGS_((char *msg,
- char *title));
+
+ #ifndef TKX_SHELL
+#endif
+ /*
+ * Forward declarations for procedures defined later in this file.
+@@ -142,5 +144,5 @@
+ #endif
+ #ifdef TKX_SHELL
+- char *msg;
++ const char *msg;
+ Tcl_Channel errChannel;
+ int argi;
+@@ -248,5 +250,5 @@
+ */
+
+- args = Tcl_Merge(argc-1, argv+1);
++ args = Tcl_Merge(argc-1, (const char **)argv+1);
+ Tcl_ExternalToUtfDString(NULL, args, -1, &argString);
+ Tcl_SetVar(interp, "argv", Tcl_DStringValue(&argString), TCL_GLOBAL_ONLY);
diff --git a/lang/tclX/files/patch-warnings b/lang/tclX/files/patch-warnings
index 7b1e90829621..d67b907d4e50 100644
--- a/lang/tclX/files/patch-warnings
+++ b/lang/tclX/files/patch-warnings
@@ -1,5 +1,61 @@
+--- ../tcl/generic/tclExtend.h Wed Jun 14 03:48:24 2000
++++ ../tcl/generic/tclExtend.h Mon Jul 18 22:39:18 2005
+@@ -101,5 +101,5 @@
+ TclX_Eval _ANSI_ARGS_((Tcl_Interp *interp,
+ unsigned options,
+- char *cmd));
++ const char *cmd));
+
+ EXTERN int
+@@ -123,7 +123,7 @@
+ Tclx_SafeInit _ANSI_ARGS_((Tcl_Interp *interp));
+
+-EXTERN char*
++EXTERN const char*
+ TclX_InitTclStubs _ANSI_ARGS_((Tcl_Interp *interp,
+- char *version,
++ const char *version,
+ int exact));
+
+@@ -203,5 +203,5 @@
+ TclX_KeyedListGet _ANSI_ARGS_((Tcl_Interp *interp,
+ Tcl_Obj *keylPtr,
+- char *key,
++ const char *key,
+ Tcl_Obj **valuePtrPtr));
+
+@@ -209,5 +209,5 @@
+ TclX_KeyedListSet _ANSI_ARGS_((Tcl_Interp *interp,
+ Tcl_Obj *keylPtr,
+- char *key,
++ const char *key,
+ Tcl_Obj *valuePtr));
+
+@@ -215,10 +215,10 @@
+ TclX_KeyedListDelete _ANSI_ARGS_((Tcl_Interp *interp,
+ Tcl_Obj *keylPtr,
+- char *key));
++ const char *key));
+
+ EXTERN int
+ TclX_KeyedListGetKeys _ANSI_ARGS_((Tcl_Interp *interp,
+ Tcl_Obj *keylPtr,
+- char *key,
++ const char *key,
+ Tcl_Obj **listObjPtrPtr));
+
--- ../tcl/generic/tclXbsearch.c Wed Mar 31 01:37:43 1999
+++ ../tcl/generic/tclXbsearch.c Mon Apr 5 13:30:43 2004
+@@ -106,7 +106,8 @@
+ TclProcKeyCompare (searchCBPtr)
+ binSearchCB_t *searchCBPtr;
+ {
+- char *cmdArgv [3], *command, *oldResult;
++ const char * cmdArgv [3];
++ char *command;
+ int result;
+
+ cmdArgv [0] = searchCBPtr->tclProc;
@@ -123,15 +120,9 @@
if (Tcl_GetIntFromObj (searchCBPtr->interp,
Tcl_GetObjResult (searchCBPtr->interp),
@@ -25,7 +81,14 @@
+ off_t high, low;
--- ../tcl/generic/tclXdup.c Wed Mar 31 01:37:43 1999
-+++ ../tcl/generic/tclXdup.c Fri Jan 10 16:27:00 2003
++++ ../tcl/generic/tclXdup.c Mon Jul 18 21:24:59 2005
+@@ -58,5 +58,5 @@
+ {
+ Tcl_DString strValues;
+- char *option, *value, **optArgv = NULL;
++ const char *option, *value, **optArgv = NULL;
+ int optArgc, idx;
+
@@ -202,5 +202,5 @@
{
Tcl_Channel newChannel;
@@ -113,61 +176,171 @@
+ (ubyte_pt) ckalloc ((size_t)initEntries * tblHdrPtr->entrySize);
LinkInNewEntries (tblHdrPtr, 0, initEntries);
--- ../tcl/generic/tclXkeylist.c Wed Mar 31 01:37:45 1999
-+++ ../tcl/generic/tclXkeylist.c Fri Jan 10 17:50:40 2003
-@@ -376,3 +376,4 @@
++++ ../tcl/generic/tclXkeylist.c Mon Jul 18 22:39:43 2005
+@@ -106,5 +106,5 @@
+ static int
+ FindKeyedListEntry _ANSI_ARGS_((keylIntObj_t *keylIntPtr,
+- char *key,
++ const char *key,
+ int *keyLenPtr,
+ char **nextSubKeyPtr));
+@@ -370,10 +370,11 @@
+ FindKeyedListEntry (keylIntPtr, key, keyLenPtr, nextSubKeyPtr)
+ keylIntObj_t *keylIntPtr;
+- char *key;
++ const char *key;
+ int *keyLenPtr;
+ char **nextSubKeyPtr;
+ {
char *keySeparPtr;
- int keyLen, findIdx;
+ int findIdx;
+ size_t keyLen;
-@@ -605,4 +606,3 @@
+ keySeparPtr = strchr (key, '.');
+@@ -604,6 +605,5 @@
+ for (idx = 0; idx < keylIntPtr->numEntries; idx++) {
entryObjv [0] =
- Tcl_NewStringObj (keylIntPtr->entries [idx].key,
- strlen (keylIntPtr->entries [idx].key));
+ Tcl_NewStringObj (keylIntPtr->entries [idx].key, -1);
entryObjv [1] = keylIntPtr->entries [idx].valuePtr;
-@@ -613,3 +613,3 @@
+ listObjv [idx] = Tcl_NewListObj (2, entryObjv);
+@@ -612,5 +612,5 @@
+ tmpListObj = Tcl_NewListObj (keylIntPtr->numEntries, listObjv);
listStr = Tcl_GetStringFromObj (tmpListObj, &strLen);
- keylPtr->bytes = ckbinstrdup (listStr, strLen);
+ keylPtr->bytes = ckbinstrdup (listStr, (size_t)strLen);
keylPtr->length = strLen;
-@@ -745,4 +745,4 @@
+
+@@ -660,5 +660,5 @@
+ Tcl_Interp *interp;
+ Tcl_Obj *keylPtr;
+- char *key;
++ const char *key;
+ Tcl_Obj **valuePtrPtr;
+ {
+@@ -715,5 +715,5 @@
+ Tcl_Interp *interp;
+ Tcl_Obj *keylPtr;
+- char *key;
++ const char *key;
+ Tcl_Obj *valuePtr;
+ {
+@@ -744,6 +744,6 @@
+ }
keylIntPtr->entries [findIdx].key =
- (char *) ckalloc (keyLen + 1);
- strncpy (keylIntPtr->entries [findIdx].key, key, keyLen);
+ (char *) ckalloc ((size_t)(keyLen + 1));
+ strncpy (keylIntPtr->entries [findIdx].key, key, (size_t)keyLen);
keylIntPtr->entries [findIdx].key [keyLen] = '\0';
-@@ -784,4 +784,4 @@
+ keylIntPtr->entries [findIdx].valuePtr = valuePtr;
+@@ -783,6 +783,6 @@
+ findIdx = keylIntPtr->numEntries++;
keylIntPtr->entries [findIdx].key =
- (char *) ckalloc (keyLen + 1);
- strncpy (keylIntPtr->entries [findIdx].key, key, keyLen);
+ (char *) ckalloc ((size_t)(keyLen + 1));
+ strncpy (keylIntPtr->entries [findIdx].key, key, (size_t)keyLen);
keylIntPtr->entries [findIdx].key [keyLen] = '\0';
+ keylIntPtr->entries [findIdx].valuePtr = newKeylPtr;
+@@ -814,5 +814,5 @@
+ Tcl_Interp *interp;
+ Tcl_Obj *keylPtr;
+- char *key;
++ const char *key;
+ {
+ keylIntObj_t *keylIntPtr, *subKeylIntPtr;
+@@ -888,5 +888,5 @@
+ Tcl_Interp *interp;
+ Tcl_Obj *keylPtr;
+- char *key;
++ const char *key;
+ Tcl_Obj **listObjPtrPtr;
+ {
--- ../tcl/generic/tclXlib.c Wed Oct 24 18:57:02 2001
-+++ ../tcl/generic/tclXlib.c Fri Jan 10 18:01:02 2003
-@@ -89,3 +89,3 @@
++++ ../tcl/generic/tclXlib.c Mon Jul 18 22:12:59 2005
+@@ -68,3 +68,3 @@
+ EvalFilePart _ANSI_ARGS_((Tcl_Interp *interp,
+- char *fileName,
++ const char *fileName,
+ off_t offset,
+@@ -87,5 +87,5 @@
+ char *packageName,
+- char **fileNamePtr,
++ Tcl_Obj **fileNamePtr,
off_t *offsetPtr,
- unsigned *lengthPtr));
+ long *lengthPtr));
-@@ -386,3 +387,3 @@
- off_t *offsetPtr;
+@@ -159,3 +159,3 @@
+ Tcl_Interp *interp;
+- char *fileName;
++ const char *fileName;
+ off_t offset;
+@@ -167,3 +167,4 @@
+ Tcl_DString pathBuf, cmdBuf;
+- char *oldScriptFile, *buf;
++ Tcl_Obj *oldScriptFile;
++ char *buf;
+ Tcl_Channel channel = NULL;
+@@ -210,3 +211,3 @@
+ oldScriptFile = iPtr->scriptFile;
+- iPtr->scriptFile = fileName;
++ iPtr->scriptFile = Tcl_NewStringObj(fileName, -1);
+ result = Tcl_GlobalEval (interp, cmdBuf.string);
+@@ -384,5 +385,5 @@
+ char *packageName;
+- char **fileNamePtr;
+- off_t *offsetPtr;
- unsigned *lengthPtr;
++ Tcl_Obj **fileNamePtr;
++ off_t *offsetPtr;
+ long *lengthPtr;
{
-@@ -414,3 +415,4 @@
+@@ -414,7 +415,7 @@
goto invalidEntry;
- if (TclX_GetUnsignedFromObj (interp, pkgDataObjv [2], lengthPtr) != TCL_OK)
+ if (Tcl_GetLongFromObj (interp, pkgDataObjv [2], lengthPtr) != TCL_OK
+ || *lengthPtr < 0)
goto invalidEntry;
-@@ -886,3 +888,3 @@
+
+- *fileNamePtr = Tcl_GetStringFromObj (pkgDataObjv [0], NULL);
+- *fileNamePtr = ckstrdup (*fileNamePtr);
++ *fileNamePtr = pkgDataObjv[0];
+
+@@ -455,3 +456,3 @@
+ Tcl_DString command;
+- char *result;
++ const char *result;
+
+@@ -540,3 +541,3 @@
+ if ((Tcl_SplitList (interp, lineBuffer.string, &lineArgc,
+- &lineArgv) != TCL_OK) || (lineArgc < 4))
++ (const char ***)&lineArgv) != TCL_OK) || (lineArgc < 4))
+ goto formatError;
+@@ -884,5 +885,6 @@
+ {
+- char *fileName;
++ Tcl_Obj *fileNameObj;
++ const char *fileName;
off_t offset;
- unsigned length;
+ long length;
int result;
+@@ -894,7 +896,9 @@
+ if (GetPackageIndexEntry (interp, Tcl_GetStringFromObj (objv [1], NULL),
+- &fileName, &offset, &length) != TCL_OK)
++ &fileNameObj, &offset, &length) != TCL_OK)
+ return TCL_ERROR;
+
++ fileName = Tcl_GetStringFromObj(fileNameObj, NULL);
++ Tcl_IncrRefCount(fileNameObj);
+ result = EvalFilePart (interp, fileName, offset, length);
+- ckfree (fileName);
++ Tcl_DecrRefCount(fileNameObj);
+
--- ../tcl/generic/tclXlist.c Sat May 19 12:39:44 2001
+++ ../tcl/generic/tclXlist.c Fri Jan 10 18:04:21 2003
@@ -469,3 +469,3 @@
@@ -187,3 +360,184 @@
- int seed;
+ unsigned int seed;
+--- ../tcl/generic/tclXcmdloop.c Wed Mar 31 01:37:43 1999
++++ ../tcl/generic/tclXcmdloop.c Mon Jul 18 20:59:50 2005
+@@ -192,5 +192,5 @@
+ char *prompt2;
+ {
+- char *promptHook, *resultStr;
++ const char *promptHook, *resultStr;
+ int result, useResult, promptDone = FALSE;
+ Tcl_Channel stdoutChan, stderrChan;
+--- ../tcl/generic/tclXfilecmds.c Wed Mar 31 01:37:43 1999
++++ ../tcl/generic/tclXfilecmds.c Mon Jul 18 21:27:01 2005
+@@ -72,5 +72,5 @@
+ {
+ Tcl_Channel channels [2];
+- char *channelNames [2];
++ const char *channelNames[2];
+
+ if (!((objc == 1) || (objc == 3)))
+--- ../tcl/generic/tclXinit.c Sat Feb 5 12:22:46 2000
++++ ../tcl/generic/tclXinit.c Mon Jul 18 22:20:14 2005
+@@ -167,6 +167,6 @@
+ #define PROC_ARGC 5
+ Tcl_CmdInfo cmdInfo;
+- char *procArgv[PROC_ARGC+1];
+- char *quick;
++ const char *procArgv[PROC_ARGC+1];
++ const char *quick;
+
+ if (DefineFindInit(interp, &cmdInfo) != TCL_OK) {
+@@ -207,5 +207,5 @@
+ {
+ Tcl_DString buffer;
+- char *path;
++ const char *path;
+ Tcl_Channel chan;
+
+@@ -266,5 +266,5 @@
+ Tcl_Interp *interp;
+ int exitCode;
+- char *message, *errorStack, *noDump, *strResult;
++ const char *message, *errorStack, *noDump, *strResult;
+ Tcl_Channel stdoutChan, stderrChan;
+ Tcl_Obj *savedResult;
+@@ -453,11 +453,11 @@
+ *-----------------------------------------------------------------------------
+ */
+-char *
++const char *
+ TclX_InitTclStubs (interp, version, exact)
+ Tcl_Interp *interp;
+- char *version;
++ const char *version;
+ int exact;
+ {
+- char *actualVersion;
++ const char *actualVersion;
+
+ actualVersion = Tcl_InitStubs(interp, version, exact);
+--- ../tcl/generic/tclXprofile.c Wed Mar 31 01:37:46 1999
++++ ../tcl/generic/tclXprofile.c Mon Jul 18 22:32:38 2005
+@@ -124,5 +124,5 @@
+ Tcl_Interp *interp,
+ int argc,
+- char **argv));
++ const char **argv));
+
+ static int
+@@ -263,5 +263,6 @@
+ int idx, newEntry;
+ profEntry_t *scanPtr;
+- char **stackArgv, *stackListPtr;
++ const char **stackArgv;
++ char *stackListPtr;
+ Tcl_HashEntry *hashEntryPtr;
+ profDataEntry_t *dataEntryPtr;
+@@ -273,5 +274,5 @@
+ * are skipped.
+ */
+- stackArgv = (char **) ckalloc (sizeof (char *) * infoPtr->stackSize);
++ stackArgv = (const char **)ckalloc (sizeof (char *) * infoPtr->stackSize);
+ if (infoPtr->evalMode) {
+ for (idx= 0, scanPtr = entryPtr; scanPtr != NULL;
+@@ -525,5 +526,5 @@
+ Tcl_Interp *interp;
+ int argc;
+- char **argv;
++ const char **argv;
+ {
+ profInfo_t *infoPtr = (profInfo_t *) clientData;
+@@ -796,5 +797,6 @@
+ Tcl_HashSearch searchCookie;
+ profDataEntry_t *dataEntryPtr;
+- char *dataArgv [3], *dataListPtr;
++ const char *dataArgv[3];
++ char *dataListPtr;
+ char countBuf [32], realTimeBuf [32], cpuTimeBuf [32];
+
+--- ../tcl/generic/tclXsignal.c Wed Mar 31 01:37:46 1999
++++ ../tcl/generic/tclXsignal.c Mon Jul 18 22:38:35 2005
+@@ -53,5 +53,5 @@
+ * Pointer is used as a quick check of a valid signal number.
+ */
+-static char *unknownSignalIdMsg;
++static const char *unknownSignalIdMsg;
+
+ /*
+@@ -237,5 +237,5 @@
+ * Prototypes of internal functions.
+ */
+-static char *
++static const char *
+ GetSignalName _ANSI_ARGS_((int signalNum));
+
+@@ -346,5 +346,5 @@
+ *-----------------------------------------------------------------------------
+ */
+-static char *
++static const char *
+ GetSignalName (signalNum)
+ int signalNum;
+@@ -806,5 +806,5 @@
+ */
+ if (signalTrapCmds [signalNum] == NULL) {
+- char *signalName = GetSignalName (signalNum);
++ const char *signalName = GetSignalName (signalNum);
+
+ signalsReceived [signalNum] = 0;
+--- ../tcl/generic/tclXshell.c Wed Jun 14 03:48:24 2000
++++ ../tcl/generic/tclXshell.c Mon Jul 18 22:45:08 2005
+@@ -144,5 +144,5 @@
+ goto tclError;
+
+- tclArgv = Tcl_Merge (argc - optind, &argv [optind]);
++ tclArgv = Tcl_Merge (argc - optind, (const char **)&argv [optind]);
+ if (Tcl_SetVar (interp, "argv", tclArgv,
+ TCL_GLOBAL_ONLY | TCL_LEAVE_ERR_MSG) == NULL)
+@@ -227,5 +227,5 @@
+ Tcl_Interp *interp;
+ {
+- char *evalStr;
++ const char *evalStr;
+
+ /*
+--- ../tcl/generic/tclXstring.c Fri Apr 23 06:00:07 1999
++++ ../tcl/generic/tclXstring.c Mon Jul 18 22:46:30 2005
+@@ -212,5 +212,5 @@
+ int strLen, utfLen, first, subLen;
+ int isRange = (int) clientData;
+- char *str, *start, *end;
++ const char *str, *start, *end;
+
+ if (objc != 4) {
+--- ../doc/Keylist.3 Wed Mar 31 01:37:41 1999
++++ ../doc/Keylist.3 Mon Jul 18 23:35:57 2005
+@@ -32,5 +32,5 @@
+ TclX_KeyedListGet (Tcl_Interp *interp,
+ Tcl_Obj *keylPtr,
+- char *key,
++ const char *key,
+ Tcl_Obj **valuePtrPtr);
+
+@@ -38,5 +38,5 @@
+ TclX_KeyedListSet (Tcl_Interp *interp,
+ Tcl_Obj *keylPtr,
+- char *key,
++ const char *key,
+ Tcl_Obj *valuePtr);
+
+@@ -44,10 +44,10 @@
+ TclX_KeyedListDelete (Tcl_Interp *interp,
+ Tcl_Obj *keylPtr,
+- char *key);
++ const char *key);
+
+ int
+ TclX_KeyedListGetKeys (Tcl_Interp *interp,
+ Tcl_Obj *keylPtr,
+- char *key,
++ const char *key,
+ Tcl_Obj **listObjPtrPtr);
+