--- ../tcl/generic/tclXbsearch.c	Wed Mar 31 01:37:43 1999
+++ ../tcl/generic/tclXbsearch.c	Mon Apr  5 13:30:43 2004
@@ -123,15 +120,9 @@
     if (Tcl_GetIntFromObj (searchCBPtr->interp,
                            Tcl_GetObjResult (searchCBPtr->interp),
                            &searchCBPtr->cmpResult) != TCL_OK) {
-        oldResult = Tcl_GetStringFromObj (
-            Tcl_GetObjResult (searchCBPtr->interp), NULL);
-        oldResult = ckstrdup (oldResult);
-
-        Tcl_ResetResult (searchCBPtr->interp);
-        TclX_AppendObjResult (searchCBPtr->interp, "invalid integer \"",
-                              oldResult, "\" returned from compare proc \"",
+        TclX_AppendObjResult (searchCBPtr->interp,
+                              "\" returned from compare proc \"",
                               searchCBPtr->tclProc, "\"", (char *) NULL);
-        ckfree (oldResult);
         return TCL_ERROR;
     }
     Tcl_ResetResult (searchCBPtr->interp);
@@ -254,3 +254,4 @@ BinSearch (searchCBPtr)
 {
-    off_t middle, high, low;
+    int   middle;
+    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
@@ -202,5 +202,5 @@
 {
     Tcl_Channel newChannel;
-    int bindFnum, fnum;
+    int fnum;
     char *srcChannelId, *targetChannelId;
 
@@ -214,24 +214,14 @@
      * a dup.
      */
-    if (objv [1]->typePtr == Tcl_GetObjType ("int")) {
-        bindFnum = TRUE;
-    } else {
-        srcChannelId = Tcl_GetStringFromObj (objv [1], NULL);
-        if (ISDIGIT (srcChannelId [0])) {
-            if (Tcl_ConvertToType (interp, objv [1],
-                                   Tcl_GetObjType ("int")) != TCL_OK)
-                goto badFnum;
-            bindFnum = TRUE;
-        } else {
-            bindFnum = FALSE;
-        }
-    }
-    if (bindFnum) {
-        if (objc != 2)
-            goto bind2ndArg;
-        if (Tcl_GetIntFromObj (interp, objv [1], &fnum) != TCL_OK)
-            return TCL_ERROR;
+    if (Tcl_GetIntFromObj(interp, objv [1], &fnum) == TCL_OK) {
+	if (objc != 2) {
+	    TclX_AppendObjResult (interp, "the second argument, "
+		"targetChannelId, is not allowed when binding a "
+		"file number to a Tcl channel", NULL);
+	    return TCL_ERROR;
+	}
         newChannel = TclXOSBindOpenFile (interp,  fnum);
     } else {
+        srcChannelId = Tcl_GetStringFromObj (objv [1], NULL);
         if (objc > 2) {
             targetChannelId = Tcl_GetStringFromObj (objv [2], NULL);
@@ -250,18 +240,4 @@
                       Tcl_GetChannelName (newChannel), -1);
     return TCL_OK;
-
-  badFnum:
-    Tcl_ResetResult (interp);
-    TclX_AppendObjResult (interp, "invalid integer file number \"",
-                          Tcl_GetStringFromObj (objv [1], NULL),
-                          "\", expected unsigned integer or Tcl file id",
-                          (char *) NULL);
-    return TCL_ERROR;
-
-  bind2ndArg:
-    TclX_AppendObjResult (interp, "the second argument, targetChannelId, ",
-                          "is not allow when binding a file number to ",
-                          "a Tcl channel", (char *) NULL);
-    return TCL_ERROR;
 }
 
--- ../tcl/generic/tclXhandles.c	Wed Mar 31 01:37:44 1999
+++ ../tcl/generic/tclXhandles.c	Fri Jan 10 17:09:53 2003
@@ -160,3 +160,3 @@
     int      numNewEntries;
-    int      newSize;
+    size_t   newSize;
     
@@ -170,3 +170,3 @@
     memcpy (tblHdrPtr->bodyPtr, oldbodyPtr, 
-            (tblHdrPtr->tableSize * tblHdrPtr->entrySize));
+            (size_t)(tblHdrPtr->tableSize * tblHdrPtr->entrySize));
     LinkInNewEntries (tblHdrPtr, tblHdrPtr->tableSize, numNewEntries);
@@ -234,3 +234,3 @@
     if ((strncmp (tblHdrPtr->handleBase, (char *) handle, 
-             tblHdrPtr->baseLength) != 0) ||
+             (size_t)tblHdrPtr->baseLength) != 0) ||
              !TclX_StrToUnsigned (&handle [tblHdrPtr->baseLength], 10, 
@@ -269,3 +269,3 @@
     if ((strncmp (tblHdrPtr->handleBase, (char *) handle, 
-                  tblHdrPtr->baseLength) != 0) ||
+                  (size_t)tblHdrPtr->baseLength) != 0) ||
         !TclX_StrToUnsigned (&handle [tblHdrPtr->baseLength], 10, 
@@ -332,3 +332,3 @@
     tblHdrPtr->bodyPtr =
-        (ubyte_pt) ckalloc (initEntries * tblHdrPtr->entrySize);
+        (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 @@
     char *keySeparPtr;
-    int keyLen, findIdx;
+    int   findIdx;
+    size_t keyLen;
 
@@ -605,4 +606,3 @@
         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 @@
     listStr = Tcl_GetStringFromObj (tmpListObj, &strLen);
-    keylPtr->bytes = ckbinstrdup (listStr, strLen);
+    keylPtr->bytes = ckbinstrdup (listStr, (size_t)strLen);
     keylPtr->length = strLen;
@@ -745,4 +745,4 @@
         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].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';
--- ../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 @@
                                   off_t      *offsetPtr,
-                                  unsigned   *lengthPtr));
+                                  long       *lengthPtr));
 
@@ -386,3 +387,3 @@
     off_t       *offsetPtr;
-    unsigned   *lengthPtr;
+    long       *lengthPtr;
 {
@@ -414,3 +415,4 @@
         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 @@
     off_t     offset;
-    unsigned  length;
+    long      length;
     int       result;
--- ../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 @@
             match = (valueLen == patternLen) &&
-                (memcmp (valueStr, patternStr, valueLen) == 0);
+                (memcmp (valueStr, patternStr, (size_t) patternLen) == 0);
             break;
@@ -544,3 +544,3 @@
         if ((elementLen == checkLen) &&
-            (memcmp (elementStr, checkStr, elementLen) == 0))
+            (memcmp (elementStr, checkStr, (size_t)elementLen) == 0))
             break;
--- ../tcl/generic/tclXmath.c	Wed Mar 31 01:37:45 1999
+++ ../tcl/generic/tclXmath.c	Fri Jan 10 18:05:54 2003
@@ -308,3 +308,3 @@ TclX_RandomObjCmd (dummy, interp, objc, 
     } else {
-        int seed;
+        unsigned int seed;
 
