--- neo.h	2010-01-17 19:33:14.000000000 -0500
+++ neo.h	2010-01-17 20:20:51.000000000 -0500
@@ -18,5 +18,4 @@
 
 #include <tcl.h>
-#include <tclExtend.h>
 #include "neoCbuf.h"
 
@@ -42,8 +42,9 @@
     Tcl_Interp *interp, int objc1, Tcl_Obj *CONST objv[]));
 
-extern int
-Tcl_LassignArrayCmd _ANSI_ARGS_((ClientData, Tcl_Interp*, int, char**));
+Tcl_CmdProc Tcl_LassignArrayCmd, Tcl_LassignFieldsCmd;
 
-extern int
-Tcl_LassignFieldsCmd _ANSI_ARGS_((ClientData, Tcl_Interp*, int, char**));
+extern void
+NeoSoft_DecryptFile(Tcl_Interp *, const char *fname, char *buffer, off_t fileOffset);
 
+Tcl_PackageInitProc NeoSoft_InitEncrypt, Neo_XwwwInit, Neo_dbInit, Cute_InitComm,
+    Neo_initGeneral, TclX_InitKDebug, Neo_initList, Neo_Init;
--- neoCbuf.h	2000-04-20 09:16:00.000000000 -0400
+++ neoCbuf.h	2010-01-17 23:42:38.000000000 -0500
@@ -23,5 +23,5 @@
  */
 int Neo_SetCursor(Tcl_Interp *interp, Neo_CursorPool *pool,
-	void *res, char *handle);
+	void *res, const char *handle);
 
 /* Neo_GetCursor:
--- neoXcrypt.c	2000-04-20 09:16:00.000000000 -0400
+++ neoXcrypt.c	2010-01-17 20:12:47.000000000 -0500
@@ -17,5 +17,11 @@
 #endif
 
-char *fileEncryptionKey = "NeoSoft Tcl";
+#include <string.h>
+
+const char *fileEncryptionKey = "NeoSoft Tcl";
+
+static void neo_encrypt(char *string, const char *key, size_t offset, int mode);
+static Tcl_CmdProc NeoSoft_CryptCmd;
+static Tcl_CmdProc NeoSoft_EncryptCmd;
 
 /* encrypt/decrypt string in place using key, mode = 1 to encrypt and
@@ -26,5 +32,5 @@
 char *string;
 const char *key;
-long offset;
+size_t offset;
 int mode;
 {
@@ -56,10 +62,10 @@
 NeoSoft_DecryptFile(interp, fileName, dataBuffer, fileOffset)
 Tcl_Interp *interp;
-char *fileName;
+const char *fileName;
 char *dataBuffer;
-long fileOffset;
+off_t fileOffset;
 {
-    char *baseFileName, *workFileName;
-    char *encryptedFileVarValue;
+    const char *baseFileName, *workFileName;
+    const char *encryptedFileVarValue;
 
     baseFileName = workFileName = fileName;
@@ -85,5 +91,5 @@
     Tcl_Interp *interp;
     int         argc;
-    char      **argv;
+    const char *argv[];
 {
     char *resultBuffer;
@@ -100,5 +106,5 @@
     strcpy (resultBuffer, argv[1]);
 
-    mode = (STREQU (argv[0], "neo_encrypt"));
+    mode = clientData == (ClientData)1 ? 1 : 0;
 
     for (keyIndex = 2; keyIndex < argc; keyIndex++) {
@@ -115,5 +121,5 @@
     Tcl_Interp *interp;
     int         argc;
-    char      **argv;
+    const char *argv[];
 {
     char *resultBuffer;
@@ -144,5 +150,5 @@
 
     Tcl_CreateCommand (interp, "neo_decrypt", NeoSoft_EncryptCmd,
-                      (ClientData)NULL, (void (*)())NULL);
+                      (ClientData)1, (void (*)())NULL);
 
     Tcl_CreateCommand (interp, "neo_crypt", NeoSoft_CryptCmd,
--- neoXcomma.c	2000-04-20 09:16:00.000000000 -0400
+++ neoXcomma.c	2010-01-17 22:32:06.000000000 -0500
@@ -21,10 +21,7 @@
 
 
-void
-Neo_ListObjAppendString (interp, targetList, string, length)
-    Tcl_Interp *interp;
-    Tcl_Obj    *targetList;
-    char       *string;
-    int         length;
+static void
+Neo_ListObjAppendString (Tcl_Interp *interp, Tcl_Obj *targetList,
+    const char *string, int length)
 {
     Tcl_Obj    *elementObj;
@@ -71,6 +68,8 @@
     int          Neo_quotePairsWithinStrings = 1;
 
-    if (objc != 2)
-        return TclX_WrongArgs (interp, objv[0], "string");
+    if (objc != 2) {
+        Tcl_WrongNumArgs (interp, 1, objv, "string");
+	return TCL_ERROR;
+    }
 
     /* get access to a textual representation of the object */
@@ -230,6 +229,8 @@
     int         stringLength;
 
-    if (objc != 2)
-        return TclX_WrongArgs (interp, objv[0], "list");
+    if (objc != 2) {
+        Tcl_WrongNumArgs (interp, 1, objv, "list");
+	return TCL_ERROR;
+    }
 
     resultPtr = Tcl_GetObjResult (interp);
@@ -299,9 +300,9 @@
     Tcl_Interp *interp;
     int         argc;
-    char      **argv;
+    const char *argv[];
 {
     int        listArgc, listIdx, idx, remaining;
-    char     **listArgv;
-    char      *varValue;
+    const char     **listArgv;
+    const char      *varValue;
 
     if (argc < 4) {
@@ -353,10 +354,10 @@
     Tcl_Interp *interp;
     int         argc;
-    char      **argv;
+    const char *argv[];
 {
-    int        listArgc, listIdx, idx;
-    char     **listArgv;
-    char      *varValue;
-    char      *fieldPositionText;
+    int         listArgc, listIdx, idx;
+    const char **listArgv;
+    const char  *varValue;
+    const char  *fieldPositionText;
 
     if (argc < 5) {
--- neoXwww.c	2000-04-20 09:16:01.000000000 -0400
+++ neoXwww.c	2010-01-17 21:00:14.000000000 -0500
@@ -27,4 +27,10 @@
 #define NEO_MAXDEPTH 4
 
+static int Neo_wwwIncr (Tcl_Interp *, const char *array,
+    const char *element, int value);
+static Tcl_CmdProc Neo_LoadWebStatsCmd, Neo_LoadNeoWebStatsCmd,
+    Neo_UnescapeStringCmd, Neo_EscapeStringCmd,
+    Neo_EscapeSgmlCharsCmd, Neo_EscapeShellCommandCmd,
+    Neo_LoadWebAgentLogCmd;
 
 /*
@@ -40,13 +46,13 @@
  *-----------------------------------------------------------------------------
  */
-int
+static int
 Neo_wwwIncr (interp, arrayName, elementName, incrValue)
     Tcl_Interp *interp;
-    char       *arrayName;
-    char       *elementName;
+    const char *arrayName;
+    const char *elementName;
     int        incrValue;
 {
     int currentValue;
-    char *currentValueString;
+    const char *currentValueString;
     char newValueText[16];
 
@@ -88,16 +94,16 @@
  *-----------------------------------------------------------------------------
  */
-int
+static int
 Neo_LoadNeoWebStatsCmd (clientData, interp, argc, argv)
     ClientData  clientData;
     Tcl_Interp *interp;
     int         argc;
-    char      **argv;
+    const char *argv[];
 {
     int largc;
-    char **largv;
+    const char **largv;
     char hourNumberString[32];
     long dateSeconds, firstDate;
-    char *virtualHost;
+    const char *virtualHost;
     char *endptr;
     long startSeekOffset = 0, endSeekOffset = 0;
@@ -105,5 +111,5 @@
     char *urlPtr;
     char *urlPiece;
-char *remoteName, *remoteLogname, *command, *status, *bytesSent, *user;
+    const char *remoteName, *remoteLogname, *command, *status, *bytesSent, *user;
     int depth;
     long accessCount = 0, errorCount = 0;
@@ -116,7 +122,7 @@
     Tcl_DString *dsElement = &dsElementData;
     Tcl_DString *dsInput = &dsInputData;
-    char *date;
-    char *commandVerb, *url, *httpType;
-    char *hourlyArrayName;
+    const char *date;
+    const char *commandVerb, *url, *httpType;
+    const char *hourlyArrayName;
     Tcl_Channel chanHandle;
 
@@ -227,12 +233,12 @@
 	 */
 
-	for (urlPtr = virtualHost; *urlPtr != '\0'; urlPtr++) {
-	    if (isupper((int)(*urlPtr))) {
-	        *urlPtr = (char)tolower((int)(*urlPtr));
+	for (urlPtr = (char *)virtualHost; *urlPtr != '\0'; urlPtr++) {
+	    if (*urlPtr > 'A' && *urlPtr < 'Z') {
+	        *urlPtr += 'a' - 'A';
 	    }
 	}
 
         /* parse out the command in detail */
-	commandVerb = strtok (command, " ");
+	commandVerb = strtok ((char *)command, " ");
 	if (commandVerb == (char *)NULL) continue;
 #ifdef BIG_DEBUG
@@ -252,14 +258,10 @@
 #endif
 
-	/* Convert URL to lowercase.
-	 *
-	 * Also if we see a '?', the remainder of the URL is parameters
+	/* If we see a '?', the remainder of the URL is parameters
 	 * to a CGI, so we terminate the string at the '?' (deleting the
 	 * question mark) and stop scanning.
 	 */
-        for (urlPtr = url; *urlPtr != '\0'; urlPtr++) {
-	    if ((*urlPtr >= 'A') && (*urlPtr <= 'Z')) {
-		*urlPtr = *urlPtr - 'A' + 'a';
-	    } else if (*urlPtr == '?') {
+        for (urlPtr = (char *)url; *urlPtr != '\0'; urlPtr++) {
+	    if (*urlPtr == '?') {
 		*urlPtr = '\0';
 		break;
@@ -267,5 +269,5 @@
 	}
 
-	urlPiece = strtok (url, "/");
+	urlPiece = strtok ((char *)url, "/");
 	/* strip all "../" leading entries */
 	while (urlPiece != (char *)NULL && (STREQU (urlPiece, "..") || (STREQU (urlPiece, ".")))) {
@@ -392,10 +394,10 @@
  *-----------------------------------------------------------------------------
  */
-int
+static int
 Neo_LoadWebStatsCmd (clientData, interp, argc, argv)
     ClientData  clientData;
     Tcl_Interp *interp;
     int         argc;
-    char      **argv;
+    const char *argv[];
 {
     FILE *fp;
@@ -415,6 +417,6 @@
     char *date, *firstDate;
     char *commandVerb, *url, *httpType;
-    char *hourlyArrayName;
-    char *fileName;
+    const char *hourlyArrayName;
+    const char *fileName;
     char savechar;
 
@@ -433,5 +435,6 @@
 
     if ((fp = fopen (fileName, "r")) == NULL) {
-	interp->result = Tcl_PosixError (interp);
+	Tcl_AppendResult(interp, fileName, ": ",
+	    Tcl_PosixError(interp), NULL);
 	return TCL_ERROR;
     }
@@ -635,5 +638,6 @@
 
     if (ferror (fp)) {
-	interp->result = Tcl_PosixError (interp);
+	Tcl_AppendResult(interp, fileName, ": ",
+	    Tcl_PosixError(interp), NULL);
 	return TCL_ERROR;
     }
@@ -660,5 +664,5 @@
  *-----------------------------------------------------------------------------
  */
-int 
+static int 
 Neo_XhexToDigit(char c) {
 
@@ -690,12 +694,13 @@
  *-----------------------------------------------------------------------------
  */
-int
+static int
 Neo_UnescapeStringCmd (clientData, interp, argc, argv)
     ClientData  clientData;
     Tcl_Interp *interp;
     int         argc;
-    char      **argv;
+    const char *argv[];
 {
-    char *origString, *newString, *origStringP, *newStringP;
+    const char *origString, *origStringP;
+    char *newString, *newStringP;
     int digit1, digit2;
 
@@ -765,5 +770,5 @@
  *-----------------------------------------------------------------------------
  */
-int
+static int
 Neo_DigitToHex(int c) {
 
@@ -787,12 +792,13 @@
  *-----------------------------------------------------------------------------
  */
-int
+static int
 Neo_EscapeStringCmd (clientData, interp, argc, argv)
     ClientData  clientData;
     Tcl_Interp *interp;
     int         argc;
-    char      **argv;
+    const char *argv[];
 {
-    char *origString, *newString, *origStringP, *newStringP;
+    const char *origString, *origStringP;
+    char *newString, *newStringP;
     int origLength;
 
@@ -821,5 +827,6 @@
 	char c = *origStringP;
 
-        if (isalnum (c)) {
+        if ((c >= '0' && c <= '9') || (c >= 'A' && c <= 'Z') ||
+	    (c >= 'a' && c <= 'z') || c == '_') {
 	    *newStringP++ = c;
 	} else {
@@ -848,12 +855,13 @@
  *-----------------------------------------------------------------------------
  */
-int
+static int
 Neo_EscapeSgmlCharsCmd (clientData, interp, argc, argv)
     ClientData  clientData;
     Tcl_Interp *interp;
     int         argc;
-    char      **argv;
+    const char *argv[];
 {
-    char *origString, *newString, *origStringP, *newStringP;
+    const char *origString, *origStringP;
+    char *newString, *newStringP;
     int origLength;
 
@@ -941,12 +949,13 @@
  *-----------------------------------------------------------------------------
  */
-int
+static int
 Neo_EscapeShellCommandCmd (clientData, interp, argc, argv)
     ClientData  clientData;
     Tcl_Interp *interp;
     int         argc;
-    char      **argv;
+    const char *argv[];
 {
-    char *origString, *newString, *origStringP, *newStringP, *checkP;
+    const char *origString, *origStringP, *checkP;
+    char *newString, *newStringP;
 
     if (argc != 2) {
@@ -997,16 +1006,16 @@
  *-----------------------------------------------------------------------------
  */
-int
+static int
 Neo_LoadWebAgentLogCmd (clientData, interp, argc, argv)
     ClientData  clientData;
     Tcl_Interp *interp;
     int         argc;
-    char      **argv;
+    const char *argv[];
 {
     FILE *fp;
     char buf[BUFSIZE];
     long accessCount = 0;
-    char *refererArrayName;
-    char *fileName;
+    const char *refererArrayName;
+    const char *fileName;
 
     if (argc != 3) {
@@ -1024,5 +1033,6 @@
 
     if ((fp = fopen (fileName, "r")) == NULL) {
-	interp->result = Tcl_PosixError (interp);
+	Tcl_AppendResult(interp, fileName, ": ",
+	    Tcl_PosixError(interp), NULL);
 	return TCL_ERROR;
     }
@@ -1036,5 +1046,6 @@
 
     if (ferror (fp)) {
-	interp->result = Tcl_PosixError (interp);
+	Tcl_AppendResult(interp, fileName, ": ",
+	    Tcl_PosixError(interp), NULL);
 	return TCL_ERROR;
     }
--- neoXkdebug.c	2000-04-20 09:16:01.000000000 -0400
+++ neoXkdebug.c	2010-01-17 22:43:45.000000000 -0500
@@ -46,4 +46,6 @@
  */
 
+#include <string.h>
+
 #include "neo.h"
 #define MAXINT (int)((~0u) >> 1)
@@ -63,13 +65,6 @@
 typedef struct traceInfo_t *traceInfo_pt;
 
-static void
-TraceRoutine _ANSI_ARGS_((ClientData    clientData,
-                          Tcl_Interp   *interp,
-                          int           level,
-                          char         *command,
-                          int           (*cmdProc)(),
-                          ClientData    cmdClientData,
-                          int           argc,
-                          char         *argv[]));
+static Tcl_CmdTraceProc TraceRoutine;
+static Tcl_CmdProc TclX_TraceConCmd, TclX_TraceProcCmd;
 
 static void
@@ -92,15 +87,14 @@
     int           level;
     char         *command;
-    int           (*cmdProc)();
+    Tcl_CmdProc  *cmdProc;
     ClientData    cmdClientData;
     int           argc;
-    char         *argv[];
+    const char   *argv[];
 {
     traceInfo_pt traceInfoPtr = (traceInfo_pt) clientData;
-    int          idx, cmdLen, printLen;
     int          result;
     char         depthText[12];
-    char        *stepCommand;
-    char        *stepArgs[4];
+    char        *stepCommand, *stepArg3;
+    const char  *stepArgs[4];
 
     static int   inTraceRoutine = 0;
@@ -129,9 +123,9 @@
     stepArgs[1] = depthText;
     stepArgs[2] = command;
-    stepArgs[3] = Tcl_Merge (argc, argv);
+    stepArgs[3] = stepArg3 = Tcl_Merge (argc, argv);
 
     stepCommand = Tcl_Merge (4, stepArgs);
 
-    ckfree (stepArgs[3]);
+    ckfree (stepArg3);
 
     result = Tcl_Eval (interp, stepCommand);
@@ -164,8 +158,7 @@
     Tcl_Interp   *interp;
     int           argc;
-    char        **argv;
+    const char   *argv[];
 {
     traceInfo_pt infoPtr = (traceInfo_pt) clientData;
-    int          idx;
 
     if (argc < 2)
@@ -221,8 +214,7 @@
     Tcl_Interp   *interp;
     int           argc;
-    char        **argv;
+    const char   *argv[];
 {
     traceInfo_pt infoPtr = (traceInfo_pt) clientData;
-    int          idx;
     char        *commandToBeTraced;
     int          result;
--- neoCbuf.c	2000-04-20 09:16:00.000000000 -0400
+++ neoCbuf.c	2010-01-17 23:41:39.000000000 -0500
@@ -54,5 +54,6 @@
  */
 int
-Neo_SetCursor(Tcl_Interp *interp, Neo_CursorPool *pool, void *res, char *handle)
+Neo_SetCursor(Tcl_Interp *interp, Neo_CursorPool *pool, void *res,
+    const char *handle)
 {
     int			resid, i;
--- neoXgeneral.c	2000-04-20 09:16:01.000000000 -0400
+++ neoXgeneral.c	2010-01-17 21:38:37.000000000 -0500
@@ -11,2 +11,8 @@
+#include <string.h>
+
+static Tcl_ObjCmdProc Neo_MD5ObjCmd, Neo_Incr0ObjCmd,
+    Neo_SetdefaultObjCmd, Neo_Intersect3ObjCmd,
+    Neo_ObjectObjCmd, Neo_QuoteSqlObjCmd;
+static Tcl_Obj *Neo_nextUniqueElement (Tcl_Obj **listObjPtrPtr, int *indexPtr, int nElements);
 
 /*
@@ -40,6 +46,8 @@
     int           increment;
 
-    if ((objc != 2) && (objc != 3))
-	return TclX_WrongArgs (interp, objv [0], " varName ?increment?\"");
+    if ((objc != 2) && (objc != 3)) {
+	Tcl_WrongNumArgs (interp, 1, objv, "varName ?increment?\"");
+	return TCL_ERROR;
+    }
 
     /* Get the increment amount.  If it wasn't explicitly specified, set it
@@ -91,5 +99,5 @@
     Tcl_Interp *interp;
     int         objc;
-    Tcl_Obj   **objv;
+    Tcl_Obj   *CONST objv[];
 {
     char *digest;
@@ -132,7 +142,8 @@
     Tcl_Obj *objectPtr;
 
-    if (objc != 3)
-	return TclX_WrongArgs (interp, objv [0], 
-		" varName value");
+    if (objc != 3) {
+	Tcl_WrongNumArgs (interp, 1, objv, "varName value");
+	return TCL_ERROR;
+    }
 
     /* If the variable already exists, we are done. */
@@ -244,7 +255,8 @@
     Tcl_Obj        *lastListElement;
 
-    if (objc != 3)
-	return TclX_WrongArgs (interp, objv [0], 
-		" list1 list2");
+    if (objc != 3) {
+	Tcl_WrongNumArgs (interp, 1, objv, "list1 list2");
+	return TCL_ERROR;
+    }
 
     /* 
@@ -369,40 +381,47 @@
     Tcl_Obj   *CONST objv[];
 {
-    Tcl_Obj *objectPtr;
-    char    *subString;
     Tcl_Obj *resultPtr = Tcl_GetObjResult (interp);
+    const char *subcommands[] = {
+	"type", "types", "convert", NULL
+    };
+    enum { OCMD_TYPE, OCMD_TYPES, OCMD_CONVERT } subcommand;
 
     if (objc < 2 || objc > 4) {
-      err:
-	return TclX_WrongArgs (interp, objv [0], "subcommand [arg]");
+	Tcl_WrongNumArgs(interp, 1, objv, "subcommand ?arg(s)?");
+	return TCL_ERROR;
     }
 
-    subString = Tcl_GetStringFromObj (objv [1], NULL);
-
-    if (STREQU (subString, "types")) {
-	if (objc != 2) goto err;
+    if (Tcl_GetIndexFromObj(interp, objv[1], subcommands,
+	"subcommand", 0, (int *)&subcommand) != TCL_OK)
+	return TCL_ERROR;
 
+    switch (subcommand) {
+    case OCMD_TYPES:
+	if (objc != 2) {
+	    Tcl_WrongNumArgs(interp, 2, objv, NULL);
+	    return TCL_ERROR;
+	}
 	return (Tcl_AppendAllObjTypes (interp, resultPtr));
-    }
-
-    if (STREQU (subString, "type")) {
-	Tcl_Obj *objp = objv[2];
-
-	if (objc != 3) goto err;
+    case OCMD_TYPE:
+	if (objc != 3) {
+	    Tcl_WrongNumArgs(interp, 2, objv, NULL);
+	    return TCL_ERROR;
+	}
 
-	if (objp->typePtr == NULL) {
+	if (objv[2]->typePtr == NULL) {
 	    return TCL_OK;
 	}
 
-	Tcl_SetStringObj (resultPtr, objp->typePtr->name, -1);
+	Tcl_SetStringObj (resultPtr, objv[2]->typePtr->name, -1);
 	return TCL_OK;
-    }
-
-    if (STREQU (subString, "convert")) {
+    case OCMD_CONVERT:
+    {
 	char          *typeName;
-        Tcl_Obj       *objp = objv[2];
 	Tcl_ObjType   *typeObjType;
 
-       if (objc != 4) goto err;
+	if (objc != 4) {
+	    Tcl_WrongNumArgs(interp, 2, objv, "object type");
+	    return TCL_ERROR;
+	}
 
        typeName = Tcl_GetStringFromObj (objv [3], NULL);
@@ -415,5 +434,5 @@
        }
 
-       if (Tcl_ConvertToType (interp, objp, typeObjType) == TCL_ERROR) {
+       if (Tcl_ConvertToType (interp, objv[2], typeObjType) == TCL_ERROR) {
 	   Tcl_AddObjErrorInfo (interp, "while converting type", 1);
 	   return TCL_ERROR;
@@ -421,5 +440,7 @@
        return TCL_OK;
     }
+    }
 
+    /* Unreachable, really: */
     Tcl_SetStringObj (resultPtr, "bad # arg", -1);
     return TCL_ERROR;
@@ -459,9 +480,10 @@
     int        thisStringLength;
     int        newStringLength;
-    int        needsQuoting = 0;
     Tcl_Obj   *newStringObj;
 
-    if (objc != 2)
-	return TclX_WrongArgs (interp, objv [0], "value");
+    if (objc != 2) {
+	Tcl_WrongNumArgs (interp, 1, objv, "value");
+	return TCL_ERROR;
+    }
 
     thisString = Tcl_GetStringFromObj (objv[1], &thisStringLength);
--- neoXdb.c	2000-04-20 09:16:00.000000000 -0400
+++ neoXdb.c	2010-01-17 23:39:30.000000000 -0500
@@ -17,4 +17,5 @@
 
 #include "neo.h"
+#include <tclExtend.h>
 #include <sys/stat.h>
 
@@ -77,4 +77,6 @@
 } t_desc;
 
+static Tcl_CmdProc DbProc;
+
 /*
  * DbProc(cd, interp, argc, argv)
@@ -86,36 +88,30 @@
 
 static int
-DbProc (cd, interp, argc, argv)
-    t_cldat	*cd;
+DbProc (_cd, interp, argc, argv)
+    ClientData	_cd;
     Tcl_Interp	*interp;
     int		argc;
-    char	**argv;
+    const char *argv[];
 {
-    int             i, j, k, id, length, length2, errno;
+    int             i, id, length, length2, errno;
     int             mode = 0644, result = 0;
-    u_int32_t       flags = NULL, locker;
+    u_int32_t       flags = 0;
     u_int           dbflags;
-    ino_t	   *ino;
-    int		    cur_pid;
-    struct stat	    lock_stat;
     t_desc         *td = NULL;
-    char           *p, *mark;
-    char            buf[64], buf2[64], lockdir[LOCK_DIR_SIZE];
+    const char     *p;
+    char            buf[64], *mark;
     Tcl_DString     dbPathBuf;
     Tcl_HashEntry  *hash;
     DB             *d;
-    DBT             key, content, lock_dbt;
+    DBT             key, content;
     DBC		   *cursorp;
     DBTYPE          dbtype;
     DB_INFO         dbi;
-    DB_LOCKTAB	   *lockr;
-    DB_LOCK	    lock;
     db_lockmode_t   lock_type;
     Tcl_Obj *objScript;
+    t_cldat	*cd = _cd;
 
     static char *badDbSeqArgs = "db seq <sess> <flag> [<key>] [<var>]";
     static char *badDbCmdArgs = "db {open|close|del|cursor|get|put|seq|forall|searchall|sync}";
-    int varNameIndex;
-    int keyIndex;
 
     /* DB 2.0 requires DBT structs to be zeroed out */
@@ -142,5 +138,5 @@
 		cd->dbenv = (DB_ENV *)ckalloc(sizeof(DB_ENV));
 		memset(cd->dbenv, 0, sizeof(DB_ENV));
-		if (errno = db_appinit(argv[1], NULL, cd->dbenv, DB_CREATE | DB_INIT_LOCK | DB_INIT_LOG | DB_INIT_MPOOL | DB_INIT_TXN)) {
+		if ((errno = db_appinit(argv[1], NULL, cd->dbenv, DB_CREATE | DB_INIT_LOCK | DB_INIT_LOG | DB_INIT_MPOOL | DB_INIT_TXN))) {
 			Tcl_AppendResult(interp,
 				"Unable to initialize environment: ",
@@ -163,5 +159,5 @@
 
 	if (cd->dbenv) {
-		if (errno = db_appexit(cd->dbenv)) {
+		if ((errno = db_appexit(cd->dbenv))) {
 			Tcl_AppendResult(interp,
 				"Unable to close the environment: ",
@@ -351,5 +347,5 @@
 			
 	} else if (STREQU (argv[1], "commit")) {
-		if (errno = txn_commit(cd->tid)) {
+		if ((errno = txn_commit(cd->tid))) {
 			Tcl_AppendResult(interp,
 				"Unable to commit transaction: ",
@@ -360,5 +356,5 @@
 
 	} else if (STREQU (argv[1], "abort")) {
-		if (errno = txn_abort(cd->tid)) {
+		if ((errno = txn_abort(cd->tid))) {
 			Tcl_AppendResult(interp,
 				"Unable to abort transaction: ",
@@ -377,5 +373,5 @@
 
 		/* Begin the transaction */
-		if (errno = txn_begin(cd->dbenv->tx_info, NULL, &(cd->tid))) {
+		if ((errno = txn_begin(cd->dbenv->tx_info, NULL, &(cd->tid)))) {
 			Tcl_AppendResult(interp,
 				"Unable to begin transaction: ",
@@ -386,5 +382,5 @@
 
 		if (Tcl_Eval(interp, argv[2]) != TCL_OK) {
-			if (errno = txn_abort(cd->tid)) {
+			if ((errno = txn_abort(cd->tid))) {
 				Tcl_AppendResult(interp,
 					"Unable to abort transaction: ",
@@ -394,5 +390,5 @@
 			}
 		} else {
-			if (errno = txn_commit(cd->tid)) {
+			if ((errno = txn_commit(cd->tid))) {
 				Tcl_AppendResult(interp,
 					"Unable to commit transaction: ",
@@ -472,5 +468,5 @@
 
 	length = strlen(argv[2]);
-	*mark = NULL;
+	*mark = '\0';
 
 	if (!(td = TclX_HandleXlate (interp, cd->handles, argv[2])))
@@ -606,5 +602,5 @@
 		}
 
-		key.data = argv[3];
+		key.data = (char *)argv[3];
 		key.size = strlen (key.data) + 1;
 
@@ -653,5 +649,5 @@
     if (STREQU (*argv, "close")) {
 	CHKNARG (2, 2, "db close <sess>");
-	td->db->close (td->db, NULL);
+	td->db->close (td->db, 0);
 
 /*
@@ -705,5 +701,5 @@
 	}
 
-	key.data = argv[2];
+	key.data = (char *)argv[2];
 	key.size = strlen (key.data) + 1;
 
@@ -769,8 +765,8 @@
 	}
 
-	key.data = argv[2];
+	key.data = (char *)argv[2];
 	key.size = strlen (key.data) + 1;
 
-	content.data = argv[3];
+	content.data = (char *)argv[3];
 	content.size = strlen (content.data) + 1;
 
@@ -822,5 +818,5 @@
 	}
 
-	key.data = argv[2];
+	key.data = (char *)argv[2];
 	key.size = strlen (key.data) + 1;
 
@@ -1092,5 +1088,5 @@
  */
 
-void
+int
 Neo_dbInit (interp)
 Tcl_Interp	*interp;
@@ -1103,4 +1099,5 @@
 
     Tcl_CreateCommand (interp, "db", DbProc, (ClientData)cd, 0);
+    return TCL_OK;
 }
 
@@ -1108,8 +1105,9 @@
 #else
 
-void
+int
 Neo_dbInit (interp)
 Tcl_Interp	*interp;
 {
+    return TCL_OK;
 }
 
--- neoXlist.c	2000-04-20 09:16:01.000000000 -0400
+++ neoXlist.c	2010-01-17 23:21:51.000000000 -0500
@@ -6,4 +6,5 @@
 
 static Tcl_ObjType *listType;
+static Tcl_ObjCmdProc NeoX_LremoveObjCmd;
 
 
@@ -30,5 +31,6 @@
 
     if( objc < 3 ) {
-        return TclX_WrongArgs(interp, objv[0], "?mode? ?-all? list pattern");
+        Tcl_WrongNumArgs(interp, 1, objv, "?mode? ?-all? list pattern");
+	return TCL_ERROR;
     }
 
@@ -61,14 +63,16 @@
 	    break;
 	} else {
-	    TclX_AppendObjResult( interp, "bad switch \"", modeStr,
+	    Tcl_AppendResult(interp, "bad switch \"", modeStr,
 				"\": must be -exact, -glob, -regexp or -all",
 				(char *)NULL);
 	    return TCL_ERROR;
 	}
-	    
+
     }
 
-    if( list >= objc - 1 ) 
-        return TclX_WrongArgs(interp, objv[0], "?mode? ?-all? list pattern");
+    if( list >= objc - 1 ) {
+        Tcl_WrongNumArgs(interp, 1, objv, "?mode? ?-all? list pattern");
+	return TCL_ERROR;
+    }
 
     if( Tcl_ListObjGetElements(interp, objv[list],
@@ -90,5 +94,5 @@
 					 listObjv[i]) != TCL_OK)
 		goto errorExit;
-	    
+	
 	    continue;
 	}
@@ -160,13 +164,14 @@
     }
     return TCL_OK;
-    
+
   errorExit:
-    if(matchedListPtr != NULL)
+    if(matchedListPtr != NULL) {
         Tcl_DecrRefCount(matchedListPtr);
+    }
     return TCL_ERROR;
 
   binData:
-    TclX_AppendObjResult(interp, "Binary data is not supported in this mode.",
-				(char *) NULL);
+    Tcl_SetResult(interp, "Binary data is not supported in this mode.",
+				TCL_STATIC);
     return TCL_ERROR;
 }
@@ -181,5 +186,5 @@
  *-----------------------------------------------------------------------------
  */
-void
+int
 Neo_initList(interp)
     Tcl_Interp *interp;
@@ -189,6 +194,8 @@
     Tcl_CreateObjCommand(interp,
 			 "lremove",
-			 NeoX_LremoveObjCmd, 
+			 NeoX_LremoveObjCmd,
                          (ClientData) NULL,
 			 (Tcl_CmdDeleteProc*) NULL);
+
+    return TCL_OK;
 }
