aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authordrh <>2024-07-30 15:49:02 +0000
committerdrh <>2024-07-30 15:49:02 +0000
commit064b681e9bb2a0230c312c5a48f0797f821b3074 (patch)
tree5fe74e4aa0dc4aed4b04965d567012f499423bf4 /src
parent07f215ad9e3606253d9bc52d59e46a9c7d9a1b63 (diff)
downloadsqlite-064b681e9bb2a0230c312c5a48f0797f821b3074.tar.gz
sqlite-064b681e9bb2a0230c312c5a48f0797f821b3074.zip
First attempt at getting the build to work with Tcl 9.0.
FossilOrigin-Name: 6e5bb48a74d63fb8c30528f0005d1763cd2dbb882abf86baf1565721e6bfcf84
Diffstat (limited to 'src')
-rw-r--r--src/tclsqlite.c69
-rw-r--r--src/tclsqlite.h37
-rw-r--r--src/test1.c33
-rw-r--r--src/test2.c6
-rw-r--r--src/test3.c14
-rw-r--r--src/test4.c6
-rw-r--r--src/test5.c12
-rw-r--r--src/test6.c15
-rw-r--r--src/test8.c6
-rw-r--r--src/test9.c6
-rw-r--r--src/test_async.c11
-rw-r--r--src/test_autoext.c9
-rw-r--r--src/test_backup.c9
-rw-r--r--src/test_bestindex.c14
-rw-r--r--src/test_blob.c20
-rw-r--r--src/test_btree.c6
-rw-r--r--src/test_config.c6
-rw-r--r--src/test_demovfs.c9
-rw-r--r--src/test_fs.c7
-rw-r--r--src/test_func.c6
-rw-r--r--src/test_hexio.c42
-rw-r--r--src/test_init.c6
-rw-r--r--src/test_intarray.c9
-rw-r--r--src/test_malloc.c13
-rw-r--r--src/test_md5.c9
-rw-r--r--src/test_multiplex.c9
-rw-r--r--src/test_mutex.c7
-rw-r--r--src/test_osinst.c9
-rw-r--r--src/test_quota.c11
-rw-r--r--src/test_rtree.c12
-rw-r--r--src/test_schema.c6
-rw-r--r--src/test_superlock.c9
-rw-r--r--src/test_syscall.c14
-rw-r--r--src/test_tclsh.c9
-rw-r--r--src/test_tclvar.c14
-rw-r--r--src/test_thread.c14
-rw-r--r--src/test_vdbecov.c6
-rw-r--r--src/test_vfs.c24
-rw-r--r--src/test_window.c2
39 files changed, 195 insertions, 331 deletions
diff --git a/src/tclsqlite.c b/src/tclsqlite.c
index d91b2fa3f..ae3b61c6c 100644
--- a/src/tclsqlite.c
+++ b/src/tclsqlite.c
@@ -35,14 +35,7 @@
# include "msvc.h"
#endif
-#if defined(INCLUDE_SQLITE_TCL_H)
-# include "sqlite_tcl.h"
-#else
-# include "tcl.h"
-# ifndef SQLITE_TCLAPI
-# define SQLITE_TCLAPI
-# endif
-#endif
+#include "tclsqlite.h"
#include <errno.h>
/*
@@ -388,7 +381,7 @@ static int SQLITE_TCLAPI incrblobHandle(
static Tcl_ChannelType IncrblobChannelType = {
"incrblob", /* typeName */
- TCL_CHANNEL_VERSION_2, /* version */
+ TCL_CHANNEL_VERSION_5, /* version */
incrblobClose, /* closeProc */
incrblobInput, /* inputProc */
incrblobOutput, /* outputProc */
@@ -474,7 +467,7 @@ static int safeToUseEvalObjv(Tcl_Interp *interp, Tcl_Obj *pCmd){
** characters appear in pCmd, we will report the string as unsafe.
*/
const char *z;
- int n;
+ Tcl_Size n;
z = Tcl_GetStringFromObj(pCmd, &n);
while( n-- > 0 ){
int c = *(z++);
@@ -981,7 +974,7 @@ static void tclSqlFunc(sqlite3_context *context, int argc, sqlite3_value**argv){
** be preserved and reused on the next invocation.
*/
Tcl_Obj **aArg;
- int nArg;
+ Tcl_Size nArg;
if( Tcl_ListObjGetElements(p->interp, p->pScript, &nArg, &aArg) ){
sqlite3_result_error(context, Tcl_GetStringResult(p->interp), -1);
return;
@@ -1044,7 +1037,7 @@ static void tclSqlFunc(sqlite3_context *context, int argc, sqlite3_value**argv){
sqlite3_result_error(context, Tcl_GetStringResult(p->interp), -1);
}else{
Tcl_Obj *pVar = Tcl_GetObjResult(p->interp);
- int n;
+ Tcl_Size n;
u8 *data;
const char *zType = (pVar->typePtr ? pVar->typePtr->name : "");
char c = zType[0];
@@ -1455,7 +1448,7 @@ static int dbPrepareAndBind(
}
}
if( pVar ){
- int n;
+ Tcl_Size n;
u8 *data;
const char *zType = (pVar->typePtr ? pVar->typePtr->name : "");
c = zType[0];
@@ -1469,8 +1462,9 @@ static int dbPrepareAndBind(
Tcl_IncrRefCount(pVar);
pPreStmt->apParm[iParm++] = pVar;
}else if( c=='b' && strcmp(zType,"boolean")==0 ){
- Tcl_GetIntFromObj(interp, pVar, &n);
- sqlite3_bind_int(pStmt, i, n);
+ int nn;
+ Tcl_GetIntFromObj(interp, pVar, &nn);
+ sqlite3_bind_int(pStmt, i, nn);
}else if( c=='d' && strcmp(zType,"double")==0 ){
double r;
Tcl_GetDoubleFromObj(interp, pVar, &r);
@@ -2034,7 +2028,7 @@ static int SQLITE_TCLAPI DbObjCmd(
}
}else{
char *zAuth;
- int len;
+ Tcl_Size len;
if( pDb->zAuth ){
Tcl_Free(pDb->zAuth);
}
@@ -2137,7 +2131,7 @@ static int SQLITE_TCLAPI DbObjCmd(
}
}else{
char *zCallback;
- int len;
+ Tcl_Size len;
if( pDb->zBindFallback ){
Tcl_Free(pDb->zBindFallback);
}
@@ -2167,7 +2161,7 @@ static int SQLITE_TCLAPI DbObjCmd(
}
}else{
char *zBusy;
- int len;
+ Tcl_Size len;
if( pDb->zBusy ){
Tcl_Free(pDb->zBusy);
}
@@ -2274,7 +2268,7 @@ static int SQLITE_TCLAPI DbObjCmd(
SqlCollate *pCollate;
char *zName;
char *zScript;
- int nScript;
+ Tcl_Size nScript;
if( objc!=4 ){
Tcl_WrongNumArgs(interp, 2, objv, "NAME SCRIPT");
return TCL_ERROR;
@@ -2333,7 +2327,7 @@ static int SQLITE_TCLAPI DbObjCmd(
}
}else{
const char *zCommit;
- int len;
+ Tcl_Size len;
if( pDb->zCommit ){
Tcl_Free(pDb->zCommit);
}
@@ -2653,7 +2647,8 @@ static int SQLITE_TCLAPI DbObjCmd(
Tcl_Obj *pValue = 0;
unsigned char *pBA;
unsigned char *pData;
- int len, xrc;
+ Tcl_Size len;
+ int xrc;
sqlite3_int64 mxSize = 0;
int i;
int isReadonly = 0;
@@ -3024,7 +3019,7 @@ deserialize_error:
return TCL_ERROR;
}
if( objc==3 ){
- int len;
+ Tcl_Size len;
char *zNull = Tcl_GetStringFromObj(objv[2], &len);
if( pDb->zNull ){
Tcl_Free(pDb->zNull);
@@ -3078,7 +3073,7 @@ deserialize_error:
#endif
}else if( objc==4 ){
char *zProgress;
- int len;
+ Tcl_Size len;
int N;
if( TCL_OK!=Tcl_GetIntFromObj(interp, objv[2], &N) ){
return TCL_ERROR;
@@ -3124,7 +3119,7 @@ deserialize_error:
}
}else{
char *zProfile;
- int len;
+ Tcl_Size len;
if( pDb->zProfile ){
Tcl_Free(pDb->zProfile);
}
@@ -3335,7 +3330,7 @@ deserialize_error:
}
}else{
char *zTrace;
- int len;
+ Tcl_Size len;
if( pDb->zTrace ){
Tcl_Free(pDb->zTrace);
}
@@ -3375,7 +3370,7 @@ deserialize_error:
}
}else{
char *zTraceV2;
- int len;
+ Tcl_Size len;
Tcl_WideInt wMask = 0;
if( objc==4 ){
static const char *TTYPE_strs[] = {
@@ -3961,14 +3956,20 @@ EXTERN int Tclsqlite3_Unload(Tcl_Interp *interp, int flags){ return TCL_OK; }
EXTERN int Sqlite3_SafeInit(Tcl_Interp *interp){ return TCL_ERROR; }
EXTERN int Sqlite3_SafeUnload(Tcl_Interp *interp, int flags){return TCL_ERROR;}
-
-
-#ifndef SQLITE_3_SUFFIX_ONLY
-int Sqlite_Init(Tcl_Interp *interp){ return Sqlite3_Init(interp); }
-int Tclsqlite_Init(Tcl_Interp *interp){ return Sqlite3_Init(interp); }
-int Sqlite_Unload(Tcl_Interp *interp, int flags){ return TCL_OK; }
-int Tclsqlite_Unload(Tcl_Interp *interp, int flags){ return TCL_OK; }
-#endif
+/*
+** Versions of all of the above entry points that omit the "3" at the end
+** of the name. Years ago (circa 2004) the "3" was necessary to distinguish
+** SQLite version 3 from Sqlite version 2. But two decades have elapsed.
+** SQLite2 is not longer a conflict. So it is ok to omit the "3".
+**
+** Omitting the "3" helps TCL find the entry point.
+*/
+EXTERN int Sqlite_Init(Tcl_Interp *interp){ return Sqlite3_Init(interp);}
+EXTERN int Tclsqlite_Init(Tcl_Interp *interp){ return Sqlite3_Init(interp); }
+EXTERN int Sqlite_Unload(Tcl_Interp *interp, int flags){ return TCL_OK; }
+EXTERN int Tclsqlite_Unload(Tcl_Interp *interp, int flags){ return TCL_OK; }
+EXTERN int Sqlite_SafeInit(Tcl_Interp *interp){ return TCL_ERROR; }
+EXTERN int Sqlite_SafeUnload(Tcl_Interp *interp, int flags){return TCL_ERROR;}
/*
** If the TCLSH macro is defined, add code to make a stand-alone program.
diff --git a/src/tclsqlite.h b/src/tclsqlite.h
new file mode 100644
index 000000000..217b9a05b
--- /dev/null
+++ b/src/tclsqlite.h
@@ -0,0 +1,37 @@
+/*
+** 2024-07-30
+**
+** The author disclaims copyright to this source code. In place of
+** a legal notice, here is a blessing:
+**
+** May you do good and not evil.
+** May you find forgiveness for yourself and forgive others.
+** May you share freely, never taking more than you give.
+**
+*************************************************************************
+** This header file defines the interface to TCL as used by SQLite.
+** SQLite subcomponents that use TCL (the libsqlite3.c interface library
+** and various test*.c pieces) should #include this file rather than
+** including tcl.h directly.
+*/
+
+/* When compiling for Windows using STDCALL instead of CDECL calling
+** conventions, the MSVC makefile has to build a customized version of
+** the "tcl.h" header that specifies the calling conventions for each
+** interface. That customized "tcl.h" is named "sqlite_tcl.h".
+*/
+#if defined(INCLUDE_SQLITE_TCL_H)
+# include "sqlite_tcl.h" /* Special case for Windows using STDCALL */
+#else
+# include "tcl.h" /* All normal cases */
+# ifndef SQLITE_TCLAPI
+# define SQLITE_TCLAPI
+# endif
+#endif
+
+/* Compatability between Tcl8.6 and Tcl9.0 */
+#if TCL_MAJOR_VERSION==9
+# define CONST const
+#else
+ typedef int Tcl_Size;
+#endif
diff --git a/src/test1.c b/src/test1.c
index 975758131..90035151e 100644
--- a/src/test1.c
+++ b/src/test1.c
@@ -26,11 +26,7 @@
#endif
#include "vdbeInt.h"
-#if defined(INCLUDE_SQLITE_TCL_H)
-# include "sqlite_tcl.h"
-#else
-# include "tcl.h"
-#endif
+#include "tclsqlite.h"
#include <stdlib.h>
#include <string.h>
@@ -1772,7 +1768,7 @@ static int SQLITE_TCLAPI blobHandleFromObj(
sqlite3_blob **ppBlob
){
char *z;
- int n;
+ Tcl_Size n;
z = Tcl_GetStringFromObj(pObj, &n);
if( n==0 ){
@@ -4102,7 +4098,7 @@ static int SQLITE_TCLAPI test_bind_text(
){
sqlite3_stmt *pStmt;
int idx;
- int trueLength = 0;
+ Tcl_Size trueLength = 0;
int bytes;
char *value;
int rc;
@@ -4160,7 +4156,7 @@ static int SQLITE_TCLAPI test_bind_text16(
char *value;
char *toFree = 0;
int rc;
- int trueLength = 0;
+ Tcl_Size trueLength = 0;
void (*xDel)(void*) = (objc==6?SQLITE_STATIC:SQLITE_TRANSIENT);
Tcl_Obj *oStmt = objv[objc-4];
@@ -4214,7 +4210,8 @@ static int SQLITE_TCLAPI test_bind_blob(
Tcl_Obj *CONST objv[]
){
sqlite3_stmt *pStmt;
- int len, idx;
+ Tcl_Size len;
+ int idx;
int bytes;
char *value;
int rc;
@@ -4240,7 +4237,7 @@ static int SQLITE_TCLAPI test_bind_blob(
if( bytes>len ){
char zBuf[200];
sqlite3_snprintf(sizeof(zBuf), zBuf,
- "cannot use %d blob bytes, have %d", bytes, len);
+ "cannot use %d blob bytes, have %d", bytes, (int)len);
Tcl_AppendResult(interp, zBuf, (char*)0);
return TCL_ERROR;
}
@@ -4538,9 +4535,9 @@ static int SQLITE_TCLAPI test_carray_bind(
struct iovec *a = sqlite3_malloc( sizeof(struct iovec)*nData );
if( a==0 ){ rc = SQLITE_NOMEM; goto carray_bind_done; }
for(j=0; j<nData; j++){
- int n = 0;
+ Tcl_Size n = 0;
unsigned char *v = Tcl_GetByteArrayFromObj(objv[i+i], &n);
- a[j].iov_len = n;
+ a[j].iov_len = (size_t)n;
a[j].iov_base = sqlite3_malloc64( n );
if( a[j].iov_base==0 ){
a[j].iov_len = 0;
@@ -5116,7 +5113,7 @@ static int SQLITE_TCLAPI test_prepare16(
char zBuf[50];
int rc;
int bytes; /* The integer specified as arg 3 */
- int objlen; /* The byte-array length of arg 2 */
+ Tcl_Size objlen; /* The byte-array length of arg 2 */
if( objc!=5 && objc!=4 ){
Tcl_AppendResult(interp, "wrong # args: should be \"",
@@ -5176,7 +5173,7 @@ static int SQLITE_TCLAPI test_prepare16_v2(
char zBuf[50];
int rc;
int bytes; /* The integer specified as arg 3 */
- int objlen; /* The byte-array length of arg 2 */
+ Tcl_Size objlen; /* The byte-array length of arg 2 */
if( objc!=5 && objc!=4 ){
Tcl_AppendResult(interp, "wrong # args: should be \"",
@@ -5256,9 +5253,9 @@ static int SQLITE_TCLAPI test_open_v2(
int rc;
char zBuf[100];
- int nFlag;
+ Tcl_Size nFlag;
Tcl_Obj **apFlag;
- int i;
+ Tcl_Size i;
if( objc!=4 ){
Tcl_WrongNumArgs(interp, 1, objv, "FILENAME FLAGS VFS");
@@ -8733,7 +8730,7 @@ static int SQLITE_TCLAPI test_write_db(
sqlite3 *db = 0;
Tcl_WideInt iOff = 0;
const unsigned char *aData = 0;
- int nData = 0;
+ Tcl_Size nData = 0;
sqlite3_file *pFile = 0;
int rc;
@@ -8746,7 +8743,7 @@ static int SQLITE_TCLAPI test_write_db(
aData = Tcl_GetByteArrayFromObj(objv[3], &nData);
sqlite3_file_control(db, "main", SQLITE_FCNTL_FILE_POINTER, (void*)&pFile);
- rc = pFile->pMethods->xWrite(pFile, aData, nData, iOff);
+ rc = pFile->pMethods->xWrite(pFile, aData, (int)(nData&0x7fffffff), iOff);
Tcl_SetResult(interp, (char *)sqlite3ErrName(rc), TCL_VOLATILE);
return TCL_OK;
diff --git a/src/test2.c b/src/test2.c
index c75fa2eba..a9549aa7f 100644
--- a/src/test2.c
+++ b/src/test2.c
@@ -14,11 +14,7 @@
** testing of the SQLite library.
*/
#include "sqliteInt.h"
-#if defined(INCLUDE_SQLITE_TCL_H)
-# include "sqlite_tcl.h"
-#else
-# include "tcl.h"
-#endif
+#include "tclsqlite.h"
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
diff --git a/src/test3.c b/src/test3.c
index 7fd766247..f1b2b0168 100644
--- a/src/test3.c
+++ b/src/test3.c
@@ -15,11 +15,7 @@
*/
#include "sqliteInt.h"
#include "btreeInt.h"
-#if defined(INCLUDE_SQLITE_TCL_H)
-# include "sqlite_tcl.h"
-#else
-# include "tcl.h"
-#endif
+#include "tclsqlite.h"
#include <stdlib.h>
#include <string.h>
@@ -623,6 +619,7 @@ static int SQLITE_TCLAPI btree_insert(
BtCursor *pCur;
int rc;
BtreePayload x;
+ Tcl_Size n;
if( objc!=4 && objc!=3 ){
Tcl_WrongNumArgs(interp, 1, objv, "?-intkey? CSR KEY VALUE");
@@ -633,10 +630,11 @@ static int SQLITE_TCLAPI btree_insert(
if( objc==4 ){
if( Tcl_GetIntFromObj(interp, objv[2], &rc) ) return TCL_ERROR;
x.nKey = rc;
- x.pData = (void*)Tcl_GetByteArrayFromObj(objv[3], &x.nData);
+ x.pData = (void*)Tcl_GetByteArrayFromObj(objv[3], &n);
+ x.nData = (int)n;
}else{
- x.pKey = (void*)Tcl_GetByteArrayFromObj(objv[2], &rc);
- x.nKey = rc;
+ x.pKey = (void*)Tcl_GetByteArrayFromObj(objv[2], &n);
+ x.nKey = (int)n;
}
pCur = (BtCursor*)sqlite3TestTextToPtr(Tcl_GetString(objv[1]));
diff --git a/src/test4.c b/src/test4.c
index 2043a3383..8a68f7d3e 100644
--- a/src/test4.c
+++ b/src/test4.c
@@ -12,11 +12,7 @@
** Code for testing the SQLite library in a multithreaded environment.
*/
#include "sqliteInt.h"
-#if defined(INCLUDE_SQLITE_TCL_H)
-# include "sqlite_tcl.h"
-#else
-# include "tcl.h"
-#endif
+#include "tclsqlite.h"
#if SQLITE_OS_UNIX && SQLITE_THREADSAFE
#include <stdlib.h>
#include <string.h>
diff --git a/src/test5.c b/src/test5.c
index 0d9242862..334b5d07f 100644
--- a/src/test5.c
+++ b/src/test5.c
@@ -17,11 +17,7 @@
*/
#include "sqliteInt.h"
#include "vdbeInt.h"
-#if defined(INCLUDE_SQLITE_TCL_H)
-# include "sqlite_tcl.h"
-#else
-# include "tcl.h"
-#endif
+#include "tclsqlite.h"
#include <stdlib.h>
#include <string.h>
@@ -36,7 +32,7 @@ static int SQLITE_TCLAPI binarize(
int objc,
Tcl_Obj *CONST objv[]
){
- int len;
+ Tcl_Size len;
char *bytes;
Tcl_Obj *pRet;
assert(objc==2);
@@ -133,7 +129,7 @@ static int SQLITE_TCLAPI test_translate(
sqlite3_value *pVal;
char *z;
- int len;
+ Tcl_Size len;
void (*xDel)(void *p) = SQLITE_STATIC;
if( objc!=4 && objc!=5 ){
@@ -164,7 +160,7 @@ static int SQLITE_TCLAPI test_translate(
z = (char*)Tcl_GetByteArrayFromObj(objv[1], &len);
if( objc==5 ){
char *zTmp = z;
- z = sqlite3_malloc(len);
+ z = sqlite3_malloc64(len);
memcpy(z, zTmp, len);
}
sqlite3ValueSetStr(pVal, -1, z, enc_from, xDel);
diff --git a/src/test6.c b/src/test6.c
index 5d8e6b9be..76db640c4 100644
--- a/src/test6.c
+++ b/src/test6.c
@@ -16,11 +16,7 @@
*/
#if SQLITE_TEST /* This file is used for testing only */
#include "sqliteInt.h"
-#if defined(INCLUDE_SQLITE_TCL_H)
-# include "sqlite_tcl.h"
-#else
-# include "tcl.h"
-#endif
+#include "tclsqlite.h"
#ifndef SQLITE_OMIT_DISKIO /* This file is a no-op if disk I/O is disabled */
@@ -751,7 +747,7 @@ static int processDevSymArgs(
int setDeviceChar = 0;
for(i=0; i<objc; i+=2){
- int nOpt;
+ Tcl_Size nOpt;
char *zOpt = Tcl_GetStringFromObj(objv[i], &nOpt);
if( (nOpt>11 || nOpt<2 || strncmp("-sectorsize", zOpt, nOpt))
@@ -776,11 +772,11 @@ static int processDevSymArgs(
}else{
int j;
Tcl_Obj **apObj;
- int nObj;
+ Tcl_Size nObj;
if( Tcl_ListObjGetElements(interp, objv[i+1], &nObj, &apObj) ){
return TCL_ERROR;
}
- for(j=0; j<nObj; j++){
+ for(j=0; j<(int)nObj; j++){
int rc;
int iChoice;
Tcl_Obj *pFlag = Tcl_DuplicateObj(apObj[j]);
@@ -925,7 +921,8 @@ static int SQLITE_TCLAPI crashParamsObjCmd(
){
int iDelay;
const char *zCrashFile;
- int nCrashFile, iDc, iSectorSize;
+ Tcl_Size nCrashFile;
+ int iDc, iSectorSize;
iDc = -1;
iSectorSize = -1;
diff --git a/src/test8.c b/src/test8.c
index 4aeb555c7..8a13f5d55 100644
--- a/src/test8.c
+++ b/src/test8.c
@@ -14,11 +14,7 @@
** testing of the SQLite library.
*/
#include "sqliteInt.h"
-#if defined(INCLUDE_SQLITE_TCL_H)
-# include "sqlite_tcl.h"
-#else
-# include "tcl.h"
-#endif
+#include "tclsqlite.h"
#include <stdlib.h>
#include <string.h>
diff --git a/src/test9.c b/src/test9.c
index 5b139e8a5..b5362adb7 100644
--- a/src/test9.c
+++ b/src/test9.c
@@ -15,11 +15,7 @@
** as there is not much point in binding to Tcl.
*/
#include "sqliteInt.h"
-#if defined(INCLUDE_SQLITE_TCL_H)
-# include "sqlite_tcl.h"
-#else
-# include "tcl.h"
-#endif
+#include "tclsqlite.h"
#include <stdlib.h>
#include <string.h>
diff --git a/src/test_async.c b/src/test_async.c
index c32c74c66..afe401ac6 100644
--- a/src/test_async.c
+++ b/src/test_async.c
@@ -14,15 +14,8 @@
** (defined in ext/async/sqlite3async.h) to Tcl.
*/
-#define TCL_THREADS
-#if defined(INCLUDE_SQLITE_TCL_H)
-# include "sqlite_tcl.h"
-#else
-# include "tcl.h"
-# ifndef SQLITE_TCLAPI
-# define SQLITE_TCLAPI
-# endif
-#endif
+#define TCL_THREADS
+#include "tclsqlite.h"
#ifdef SQLITE_ENABLE_ASYNCIO
diff --git a/src/test_autoext.c b/src/test_autoext.c
index e23e41a08..74ca55879 100644
--- a/src/test_autoext.c
+++ b/src/test_autoext.c
@@ -11,14 +11,7 @@
*************************************************************************
** Test extension for testing the sqlite3_auto_extension() function.
*/
-#if defined(INCLUDE_SQLITE_TCL_H)
-# include "sqlite_tcl.h"
-#else
-# include "tcl.h"
-# ifndef SQLITE_TCLAPI
-# define SQLITE_TCLAPI
-# endif
-#endif
+#include "tclsqlite.h"
#include "sqlite3ext.h"
#ifndef SQLITE_OMIT_LOAD_EXTENSION
diff --git a/src/test_backup.c b/src/test_backup.c
index 9b684a28f..8051888ee 100644
--- a/src/test_backup.c
+++ b/src/test_backup.c
@@ -13,14 +13,7 @@
**
*/
-#if defined(INCLUDE_SQLITE_TCL_H)
-# include "sqlite_tcl.h"
-#else
-# include "tcl.h"
-# ifndef SQLITE_TCLAPI
-# define SQLITE_TCLAPI
-# endif
-#endif
+#include "tclsqlite.h"
#include "sqlite3.h"
#include <assert.h>
diff --git a/src/test_bestindex.c b/src/test_bestindex.c
index c89cab2e3..2f9203d85 100644
--- a/src/test_bestindex.c
+++ b/src/test_bestindex.c
@@ -93,11 +93,7 @@
#include "sqliteInt.h"
-#if defined(INCLUDE_SQLITE_TCL_H)
-# include "sqlite_tcl.h"
-#else
-# include "tcl.h"
-#endif
+#include "tclsqlite.h"
#ifndef SQLITE_OMIT_VIRTUALTABLE
@@ -352,14 +348,14 @@ static int tclFilter(
*/
Tcl_Obj *pRes = Tcl_GetObjResult(interp);
Tcl_Obj **apElem = 0;
- int nElem;
+ Tcl_Size nElem;
rc = Tcl_ListObjGetElements(interp, pRes, &nElem, &apElem);
if( rc!=TCL_OK ){
const char *zErr = Tcl_GetStringResult(interp);
rc = SQLITE_ERROR;
pTab->base.zErrMsg = sqlite3_mprintf("%s", zErr);
}else{
- for(ii=0; rc==SQLITE_OK && ii<nElem; ii+=2){
+ for(ii=0; rc==SQLITE_OK && ii<(int)nElem; ii+=2){
const char *zCmd = Tcl_GetString(apElem[ii]);
Tcl_Obj *p = apElem[ii+1];
if( sqlite3_stricmp("sql", zCmd)==0 ){
@@ -664,7 +660,7 @@ static int tclBestIndex(sqlite3_vtab *tab, sqlite3_index_info *pIdxInfo){
*/
Tcl_Obj *pRes = Tcl_GetObjResult(interp);
Tcl_Obj **apElem = 0;
- int nElem;
+ Tcl_Size nElem;
rc = Tcl_ListObjGetElements(interp, pRes, &nElem, &apElem);
if( rc!=TCL_OK ){
const char *zErr = Tcl_GetStringResult(interp);
@@ -673,7 +669,7 @@ static int tclBestIndex(sqlite3_vtab *tab, sqlite3_index_info *pIdxInfo){
}else{
int ii;
int iArgv = 1;
- for(ii=0; rc==SQLITE_OK && ii<nElem; ii+=2){
+ for(ii=0; rc==SQLITE_OK && ii<(int)nElem; ii+=2){
const char *zCmd = Tcl_GetString(apElem[ii]);
Tcl_Obj *p = apElem[ii+1];
if( sqlite3_stricmp("cost", zCmd)==0 ){
diff --git a/src/test_blob.c b/src/test_blob.c
index cbdf9f069..bddad240c 100644
--- a/src/test_blob.c
+++ b/src/test_blob.c
@@ -12,11 +12,7 @@
**
*/
#include "sqliteInt.h"
-#if defined(INCLUDE_SQLITE_TCL_H)
-# include "sqlite_tcl.h"
-#else
-# include "tcl.h"
-#endif
+#include "tclsqlite.h"
#include <stdlib.h>
#include <string.h>
#include <assert.h>
@@ -58,7 +54,7 @@ static int blobHandleFromObj(
sqlite3_blob **ppBlob
){
char *z;
- int n;
+ Tcl_Size n;
z = Tcl_GetStringFromObj(pObj, &n);
if( n==0 ){
@@ -88,7 +84,7 @@ static int blobHandleFromObj(
** NULL Pointer is returned.
*/
static char *blobStringFromObj(Tcl_Obj *pObj){
- int n;
+ Tcl_Size n;
char *z;
z = Tcl_GetStringFromObj(pObj, &n);
return (n ? z : 0);
@@ -112,7 +108,7 @@ static int SQLITE_TCLAPI test_blob_open(
Tcl_WideInt iRowid;
int flags;
const char *zVarname;
- int nVarname;
+ Tcl_Size nVarname;
sqlite3_blob *pBlob = (sqlite3_blob*)&flags; /* Non-zero initialization */
int rc;
@@ -281,7 +277,8 @@ static int SQLITE_TCLAPI test_blob_write(
int rc;
unsigned char *zBuf;
- int nBuf;
+ Tcl_Size nBuf;
+ int n;
if( objc!=4 && objc!=5 ){
Tcl_WrongNumArgs(interp, 1, objv, "HANDLE OFFSET DATA ?NDATA?");
@@ -294,10 +291,11 @@ static int SQLITE_TCLAPI test_blob_write(
}
zBuf = Tcl_GetByteArrayFromObj(objv[3], &nBuf);
- if( objc==5 && Tcl_GetIntFromObj(interp, objv[4], &nBuf) ){
+ n = (int)(nBuf & 0x7fffffff);
+ if( objc==5 && Tcl_GetIntFromObj(interp, objv[4], &n) ){
return TCL_ERROR;
}
- rc = sqlite3_blob_write(pBlob, zBuf, nBuf, iOffset);
+ rc = sqlite3_blob_write(pBlob, zBuf, n, iOffset);
if( rc!=SQLITE_OK ){
Tcl_SetResult(interp, (char *)sqlite3ErrName(rc), TCL_VOLATILE);
}
diff --git a/src/test_btree.c b/src/test_btree.c
index 03b8b207c..168a10f1f 100644
--- a/src/test_btree.c
+++ b/src/test_btree.c
@@ -14,11 +14,7 @@
** testing of the SQLite library.
*/
#include "btreeInt.h"
-#if defined(INCLUDE_SQLITE_TCL_H)
-# include "sqlite_tcl.h"
-#else
-# include "tcl.h"
-#endif
+#include "tclsqlite.h"
/*
** Usage: sqlite3_shared_cache_report
diff --git a/src/test_config.c b/src/test_config.c
index 76904e5bf..58de5a462 100644
--- a/src/test_config.c
+++ b/src/test_config.c
@@ -24,11 +24,7 @@
# include "os_win.h"
#endif
-#if defined(INCLUDE_SQLITE_TCL_H)
-# include "sqlite_tcl.h"
-#else
-# include "tcl.h"
-#endif
+#include "tclsqlite.h"
#include <stdlib.h>
#include <string.h>
diff --git a/src/test_demovfs.c b/src/test_demovfs.c
index e990e98f2..e92fd5613 100644
--- a/src/test_demovfs.c
+++ b/src/test_demovfs.c
@@ -645,14 +645,7 @@ sqlite3_vfs *sqlite3_demovfs(void){
#ifdef SQLITE_TEST
-#if defined(INCLUDE_SQLITE_TCL_H)
-# include "sqlite_tcl.h"
-#else
-# include "tcl.h"
-# ifndef SQLITE_TCLAPI
-# define SQLITE_TCLAPI
-# endif
-#endif
+#include "tclsqlite.h"
#if SQLITE_OS_UNIX
static int SQLITE_TCLAPI register_demovfs(
diff --git a/src/test_fs.c b/src/test_fs.c
index f88f3a942..d821a83b9 100644
--- a/src/test_fs.c
+++ b/src/test_fs.c
@@ -62,12 +62,7 @@
** SELECT * FROM fstree WHERE path LIKE '/home/dan/sqlite/%'
*/
#include "sqliteInt.h"
-#if defined(INCLUDE_SQLITE_TCL_H)
-# include "sqlite_tcl.h"
-#else
-# include "tcl.h"
-#endif
-
+#include "tclsqlite.h"
#include <stdlib.h>
#include <string.h>
#include <sys/types.h>
diff --git a/src/test_func.c b/src/test_func.c
index 80df48828..8c06705ae 100644
--- a/src/test_func.c
+++ b/src/test_func.c
@@ -13,11 +13,7 @@
** implements new SQL functions used by the test scripts.
*/
#include "sqlite3.h"
-#if defined(INCLUDE_SQLITE_TCL_H)
-# include "sqlite_tcl.h"
-#else
-# include "tcl.h"
-#endif
+#include "tclsqlite.h"
#include <stdlib.h>
#include <string.h>
#include <assert.h>
diff --git a/src/test_hexio.c b/src/test_hexio.c
index 61a41d5b1..8999d84d2 100644
--- a/src/test_hexio.c
+++ b/src/test_hexio.c
@@ -18,11 +18,7 @@
** easier and safer to build our own mechanism.
*/
#include "sqliteInt.h"
-#if defined(INCLUDE_SQLITE_TCL_H)
-# include "sqlite_tcl.h"
-#else
-# include "tcl.h"
-#endif
+#include "tclsqlite.h"
#include <stdlib.h>
#include <string.h>
#include <assert.h>
@@ -155,7 +151,8 @@ static int SQLITE_TCLAPI hexio_write(
Tcl_Obj *CONST objv[]
){
int offset;
- int nIn, nOut, written;
+ Tcl_Size nIn;
+ int nOut, written;
const char *zFile;
const unsigned char *zIn;
unsigned char *aOut;
@@ -168,11 +165,11 @@ static int SQLITE_TCLAPI hexio_write(
if( Tcl_GetIntFromObj(interp, objv[2], &offset) ) return TCL_ERROR;
zFile = Tcl_GetString(objv[1]);
zIn = (const unsigned char *)Tcl_GetStringFromObj(objv[3], &nIn);
- aOut = sqlite3_malloc( 1 + nIn/2 );
+ aOut = sqlite3_malloc64( 1 + nIn/2 );
if( aOut==0 ){
return TCL_ERROR;
}
- nOut = sqlite3TestHexToBin(zIn, nIn, aOut);
+ nOut = sqlite3TestHexToBin(zIn, (int)nIn, aOut);
out = fopen(zFile, "r+b");
if( out==0 ){
out = fopen(zFile, "r+");
@@ -203,7 +200,8 @@ static int SQLITE_TCLAPI hexio_get_int(
Tcl_Obj *CONST objv[]
){
int val;
- int nIn, nOut;
+ Tcl_Size nIn;
+ int nOut;
const unsigned char *zIn;
unsigned char *aOut;
unsigned char aNum[4];
@@ -213,11 +211,11 @@ static int SQLITE_TCLAPI hexio_get_int(
return TCL_ERROR;
}
zIn = (const unsigned char *)Tcl_GetStringFromObj(objv[1], &nIn);
- aOut = sqlite3_malloc( 1 + nIn/2 );
+ aOut = sqlite3_malloc64( 1 + nIn/2 );
if( aOut==0 ){
return TCL_ERROR;
}
- nOut = sqlite3TestHexToBin(zIn, nIn, aOut);
+ nOut = sqlite3TestHexToBin(zIn, (int)nIn, aOut);
if( nOut>=4 ){
memcpy(aNum, aOut, 4);
}else{
@@ -300,7 +298,7 @@ static int SQLITE_TCLAPI utf8_to_utf8(
Tcl_Obj *CONST objv[]
){
#ifdef SQLITE_DEBUG
- int n;
+ Tcl_Size n;
int nOut;
const unsigned char *zOrig;
unsigned char *z;
@@ -309,8 +307,8 @@ static int SQLITE_TCLAPI utf8_to_utf8(
return TCL_ERROR;
}
zOrig = (unsigned char *)Tcl_GetStringFromObj(objv[1], &n);
- z = sqlite3_malloc( n+4 );
- n = sqlite3TestHexToBin(zOrig, n, z);
+ z = sqlite3_malloc64( n+4 );
+ n = sqlite3TestHexToBin(zOrig, (int)n, z);
z[n] = 0;
nOut = sqlite3Utf8To8(z);
sqlite3TestBinToHex(z,nOut);
@@ -361,7 +359,7 @@ static int SQLITE_TCLAPI read_fts3varint(
int objc,
Tcl_Obj *CONST objv[]
){
- int nBlob;
+ Tcl_Size nBlob;
unsigned char *zBlob;
sqlite3_int64 iVal;
int nVal;
@@ -388,10 +386,10 @@ static int SQLITE_TCLAPI make_fts3record(
Tcl_Obj *CONST objv[]
){
Tcl_Obj **aArg = 0;
- int nArg = 0;
+ Tcl_Size nArg = 0;
unsigned char *aOut = 0;
- int nOut = 0;
- int nAlloc = 0;
+ sqlite3_int64 nOut = 0;
+ sqlite3_int64 nAlloc = 0;
int i;
if( objc!=2 ){
@@ -402,7 +400,7 @@ static int SQLITE_TCLAPI make_fts3record(
return TCL_ERROR;
}
- for(i=0; i<nArg; i++){
+ for(i=0; i<(int)nArg; i++){
sqlite3_int64 iVal;
if( TCL_OK==Tcl_GetWideIntFromObj(0, aArg[i], &iVal) ){
if( nOut+10>nAlloc ){
@@ -417,11 +415,11 @@ static int SQLITE_TCLAPI make_fts3record(
}
nOut += putFts3Varint((char*)&aOut[nOut], iVal);
}else{
- int nVal = 0;
+ Tcl_Size nVal = 0;
char *zVal = Tcl_GetStringFromObj(aArg[i], &nVal);
while( (nOut + nVal)>nAlloc ){
- int nNew = nAlloc?nAlloc*2:128;
- unsigned char *aNew = sqlite3_realloc(aOut, nNew);
+ sqlite3_int64 nNew = nAlloc?nAlloc*2:128;
+ unsigned char *aNew = sqlite3_realloc64(aOut, nNew);
if( aNew==0 ){
sqlite3_free(aOut);
return TCL_ERROR;
diff --git a/src/test_init.c b/src/test_init.c
index 400ab9a2b..f7b85875b 100644
--- a/src/test_init.c
+++ b/src/test_init.c
@@ -27,11 +27,7 @@
#include "sqliteInt.h"
#include <string.h>
-#if defined(INCLUDE_SQLITE_TCL_H)
-# include "sqlite_tcl.h"
-#else
-# include "tcl.h"
-#endif
+#include "tclsqlite.h"
static struct Wrapped {
sqlite3_pcache_methods2 pcache;
diff --git a/src/test_intarray.c b/src/test_intarray.c
index a978ed585..16c1df2e9 100644
--- a/src/test_intarray.c
+++ b/src/test_intarray.c
@@ -279,14 +279,7 @@ SQLITE_API int sqlite3_intarray_bind(
** Everything below is interface for testing this module.
*/
#ifdef SQLITE_TEST
-#if defined(INCLUDE_SQLITE_TCL_H)
-# include "sqlite_tcl.h"
-#else
-# include "tcl.h"
-# ifndef SQLITE_TCLAPI
-# define SQLITE_TCLAPI
-# endif
-#endif
+#include "tclsqlite.h"
/*
** Routines to encode and decode pointers
diff --git a/src/test_malloc.c b/src/test_malloc.c
index 8146501c9..21faa0d29 100644
--- a/src/test_malloc.c
+++ b/src/test_malloc.c
@@ -14,11 +14,7 @@
** memory allocation subsystem.
*/
#include "sqliteInt.h"
-#if defined(INCLUDE_SQLITE_TCL_H)
-# include "sqlite_tcl.h"
-#else
-# include "tcl.h"
-#endif
+#include "tclsqlite.h"
#include <stdlib.h>
#include <string.h>
#include <assert.h>
@@ -387,7 +383,8 @@ static int SQLITE_TCLAPI test_memset(
Tcl_Obj *CONST objv[]
){
void *p;
- int size, n, i;
+ int size, i;
+ Tcl_Size n;
char *zHex;
char *zOut;
char zBin[100];
@@ -409,7 +406,7 @@ static int SQLITE_TCLAPI test_memset(
}
zHex = Tcl_GetStringFromObj(objv[3], &n);
if( n>sizeof(zBin)*2 ) n = sizeof(zBin)*2;
- n = sqlite3TestHexToBin(zHex, n, zBin);
+ n = sqlite3TestHexToBin(zHex, (int)n, zBin);
if( n==0 ){
Tcl_AppendResult(interp, "no data", (char*)0);
return TCL_ERROR;
@@ -624,7 +621,7 @@ static int SQLITE_TCLAPI test_memdebug_fail(
if( Tcl_GetIntFromObj(interp, objv[1], &iFail) ) return TCL_ERROR;
for(ii=2; ii<objc; ii+=2){
- int nOption;
+ Tcl_Size nOption;
char *zOption = Tcl_GetStringFromObj(objv[ii], &nOption);
char *zErr = 0;
diff --git a/src/test_md5.c b/src/test_md5.c
index 7903797db..a09f1ad6c 100644
--- a/src/test_md5.c
+++ b/src/test_md5.c
@@ -16,14 +16,7 @@
#include <stdlib.h>
#include <string.h>
#include "sqlite3.h"
-#if defined(INCLUDE_SQLITE_TCL_H)
-# include "sqlite_tcl.h"
-#else
-# include "tcl.h"
-# ifndef SQLITE_TCLAPI
-# define SQLITE_TCLAPI
-# endif
-#endif
+#include "tclsqlite.h"
/*
* This code implements the MD5 message-digest algorithm.
diff --git a/src/test_multiplex.c b/src/test_multiplex.c
index d06ed2f79..e5b43f4cc 100644
--- a/src/test_multiplex.c
+++ b/src/test_multiplex.c
@@ -1219,14 +1219,7 @@ int sqlite3_multiplex_shutdown(int eForce){
/***************************** Test Code ***********************************/
#ifdef SQLITE_TEST
-#if defined(INCLUDE_SQLITE_TCL_H)
-# include "sqlite_tcl.h"
-#else
-# include "tcl.h"
-# ifndef SQLITE_TCLAPI
-# define SQLITE_TCLAPI
-# endif
-#endif
+#include "tclsqlite.h"
extern const char *sqlite3ErrName(int);
diff --git a/src/test_mutex.c b/src/test_mutex.c
index a203208ab..e60a06df3 100644
--- a/src/test_mutex.c
+++ b/src/test_mutex.c
@@ -11,12 +11,7 @@
*************************************************************************
** This file contains test logic for the sqlite3_mutex interfaces.
*/
-
-#if defined(INCLUDE_SQLITE_TCL_H)
-# include "sqlite_tcl.h"
-#else
-# include "tcl.h"
-#endif
+#include "tclsqlite.h"
#include "sqlite3.h"
#include "sqliteInt.h"
#include <stdlib.h>
diff --git a/src/test_osinst.c b/src/test_osinst.c
index 062e83159..2d03d2bbc 100644
--- a/src/test_osinst.c
+++ b/src/test_osinst.c
@@ -1109,14 +1109,7 @@ int sqlite3_vfslog_register(sqlite3 *db){
#if defined(SQLITE_TEST) || defined(TCLSH)
-#if defined(INCLUDE_SQLITE_TCL_H)
-# include "sqlite_tcl.h"
-#else
-# include "tcl.h"
-# ifndef SQLITE_TCLAPI
-# define SQLITE_TCLAPI
-# endif
-#endif
+#include "tclsqlite.h"
static int SQLITE_TCLAPI test_vfslog(
void *clientData,
diff --git a/src/test_quota.c b/src/test_quota.c
index b436de466..1bfc5ce11 100644
--- a/src/test_quota.c
+++ b/src/test_quota.c
@@ -1278,14 +1278,7 @@ int sqlite3_quota_remove(const char *zFilename){
/***************************** Test Code ***********************************/
#ifdef SQLITE_TEST
-#if defined(INCLUDE_SQLITE_TCL_H)
-# include "sqlite_tcl.h"
-#else
-# include "tcl.h"
-# ifndef SQLITE_TCLAPI
-# define SQLITE_TCLAPI
-# endif
-#endif
+#include "tclsqlite.h"
/*
** Argument passed to a TCL quota-over-limit callback.
@@ -1420,7 +1413,7 @@ static int SQLITE_TCLAPI test_quota_set(
Tcl_Obj *pScript; /* Tcl script to invoke to increase quota */
int rc; /* Value returned by quota_set() */
TclQuotaCallback *p; /* Callback object */
- int nScript; /* Length of callback script */
+ Tcl_Size nScript; /* Length of callback script */
void (*xDestroy)(void*); /* Optional destructor for pArg */
void (*xCallback)(const char *, sqlite3_int64 *, sqlite3_int64, void *);
diff --git a/src/test_rtree.c b/src/test_rtree.c
index 0c6dbf3cd..53af6e5cf 100644
--- a/src/test_rtree.c
+++ b/src/test_rtree.c
@@ -14,11 +14,7 @@
*/
#include "sqlite3.h"
-#if defined(INCLUDE_SQLITE_TCL_H)
-# include "sqlite_tcl.h"
-#else
-# include "tcl.h"
-#endif
+#include "tclsqlite.h"
/* Solely for the UNUSED_PARAMETER() macro. */
#include "sqliteInt.h"
@@ -357,11 +353,7 @@ static int bfs_query_func(sqlite3_rtree_query_info *p){
*************************************************************************/
#include <assert.h>
-#if defined(INCLUDE_SQLITE_TCL_H)
-# include "sqlite_tcl.h"
-#else
-# include "tcl.h"
-#endif
+#include "tclsqlite.h"
typedef struct Cube Cube;
struct Cube {
diff --git a/src/test_schema.c b/src/test_schema.c
index 2cbc18e2b..660d21ea4 100644
--- a/src/test_schema.c
+++ b/src/test_schema.c
@@ -36,11 +36,7 @@
*/
#ifdef SQLITE_TEST
# include "sqliteInt.h"
-# if defined(INCLUDE_SQLITE_TCL_H)
-# include "sqlite_tcl.h"
-# else
-# include "tcl.h"
-# endif
+# include "tclsqlite.h"
#else
# include "sqlite3ext.h"
SQLITE_EXTENSION_INIT1
diff --git a/src/test_superlock.c b/src/test_superlock.c
index 45d0d623a..7f3bf163a 100644
--- a/src/test_superlock.c
+++ b/src/test_superlock.c
@@ -256,14 +256,7 @@ int sqlite3demo_superlock(
#ifdef SQLITE_TEST
-#if defined(INCLUDE_SQLITE_TCL_H)
-# include "sqlite_tcl.h"
-#else
-# include "tcl.h"
-# ifndef SQLITE_TCLAPI
-# define SQLITE_TCLAPI
-# endif
-#endif
+#include "tclsqlite.h"
struct InterpAndScript {
Tcl_Interp *interp;
diff --git a/src/test_syscall.c b/src/test_syscall.c
index 3cd1034d3..af2ae1001 100644
--- a/src/test_syscall.c
+++ b/src/test_syscall.c
@@ -76,11 +76,7 @@
#include "sqliteInt.h"
#include "sqlite3.h"
-#if defined(INCLUDE_SQLITE_TCL_H)
-# include "sqlite_tcl.h"
-#else
-# include "tcl.h"
-#endif
+#include "tclsqlite.h"
#include <stdlib.h>
#include <string.h>
#include <assert.h>
@@ -197,7 +193,7 @@ static int tsIsFail(void){
*/
static int tsErrno(const char *zFunc){
int i;
- int nFunc = strlen(zFunc);
+ size_t nFunc = strlen(zFunc);
for(i=0; aSyscall[i].zName; i++){
if( strlen(aSyscall[i].zName)!=nFunc ) continue;
if( memcmp(aSyscall[i].zName, zFunc, nFunc) ) continue;
@@ -429,7 +425,7 @@ static int SQLITE_TCLAPI test_syscall_install(
Tcl_Obj *CONST objv[]
){
sqlite3_vfs *pVfs;
- int nElem;
+ Tcl_Size nElem;
int i;
Tcl_Obj **apElem;
@@ -442,7 +438,7 @@ static int SQLITE_TCLAPI test_syscall_install(
}
pVfs = sqlite3_vfs_find(0);
- for(i=0; i<nElem; i++){
+ for(i=0; i<(int)nElem; i++){
int iCall;
int rc = Tcl_GetIndexFromObjStruct(interp,
apElem[i], aSyscall, sizeof(aSyscall[0]), "system-call", 0, &iCall
@@ -502,7 +498,7 @@ static int SQLITE_TCLAPI test_syscall_reset(
rc = pVfs->xSetSystemCall(pVfs, 0, 0);
for(i=0; aSyscall[i].zName; i++) aSyscall[i].xOrig = 0;
}else{
- int nFunc;
+ Tcl_Size nFunc;
char *zFunc = Tcl_GetStringFromObj(objv[2], &nFunc);
rc = pVfs->xSetSystemCall(pVfs, Tcl_GetString(objv[2]), 0);
for(i=0; rc==SQLITE_OK && aSyscall[i].zName; i++){
diff --git a/src/test_tclsh.c b/src/test_tclsh.c
index 4697c3b85..db362049e 100644
--- a/src/test_tclsh.c
+++ b/src/test_tclsh.c
@@ -20,14 +20,7 @@
** in an effort to keep the tclsqlite.c file pure.
*/
#include "sqlite3.h"
-#if defined(INCLUDE_SQLITE_TCL_H)
-# include "sqlite_tcl.h"
-#else
-# include "tcl.h"
-# ifndef SQLITE_TCLAPI
-# define SQLITE_TCLAPI
-# endif
-#endif
+#include "tclsqlite.h"
/* Needed for the setrlimit() system call on unix */
#if defined(unix)
diff --git a/src/test_tclvar.c b/src/test_tclvar.c
index 36165bc27..9be877449 100644
--- a/src/test_tclvar.c
+++ b/src/test_tclvar.c
@@ -36,11 +36,7 @@
** according to "fullname" and "value" only.
*/
#include "sqliteInt.h"
-#if defined(INCLUDE_SQLITE_TCL_H)
-# include "sqlite_tcl.h"
-#else
-# include "tcl.h"
-#endif
+#include "tclsqlite.h"
#include <stdlib.h>
#include <string.h>
@@ -150,10 +146,10 @@ static int next2(Tcl_Interp *interp, tclvar_cursor *pCur, Tcl_Obj *pObj){
Tcl_IncrRefCount(pCur->pList2);
assert( pCur->i2==0 );
}else{
- int n = 0;
+ Tcl_Size n = 0;
pCur->i2++;
Tcl_ListObjLength(0, pCur->pList2, &n);
- if( pCur->i2>=n ){
+ if( pCur->i2>=(int)n ){
Tcl_DecrRefCount(pCur->pList2);
pCur->pList2 = 0;
pCur->i2 = 0;
@@ -167,14 +163,14 @@ static int next2(Tcl_Interp *interp, tclvar_cursor *pCur, Tcl_Obj *pObj){
static int tclvarNext(sqlite3_vtab_cursor *cur){
Tcl_Obj *pObj;
- int n = 0;
+ Tcl_Size n = 0;
int ok = 0;
tclvar_cursor *pCur = (tclvar_cursor *)cur;
Tcl_Interp *interp = ((tclvar_vtab *)(cur->pVtab))->interp;
Tcl_ListObjLength(0, pCur->pList1, &n);
- while( !ok && pCur->i1<n ){
+ while( !ok && pCur->i1<(int)n ){
Tcl_ListObjIndex(0, pCur->pList1, pCur->i1, &pObj);
ok = next2(interp, pCur, pObj);
if( !ok ){
diff --git a/src/test_thread.c b/src/test_thread.c
index 126fd9836..7c06d110a 100644
--- a/src/test_thread.c
+++ b/src/test_thread.c
@@ -16,11 +16,7 @@
*/
#include "sqliteInt.h"
-#if defined(INCLUDE_SQLITE_TCL_H)
-# include "sqlite_tcl.h"
-#else
-# include "tcl.h"
-#endif
+#include "tclsqlite.h"
#if SQLITE_THREADSAFE
@@ -94,7 +90,7 @@ static int SQLITE_TCLAPI tclScriptEvent(Tcl_Event *evPtr, int flags){
static void postToParent(SqlThread *p, Tcl_Obj *pScript){
EvalEvent *pEvent;
char *zMsg;
- int nMsg;
+ Tcl_Size nMsg;
zMsg = Tcl_GetStringFromObj(pScript, &nMsg);
pEvent = (EvalEvent *)ckalloc(sizeof(EvalEvent)+nMsg+1);
@@ -181,8 +177,8 @@ static int SQLITE_TCLAPI sqlthread_spawn(
SqlThread *pNew;
int rc;
- int nVarname; char *zVarname;
- int nScript; char *zScript;
+ Tcl_Size nVarname; char *zVarname;
+ Tcl_Size nScript; char *zScript;
/* Parameters for thread creation */
const int nStack = TCL_THREAD_STACK_DEFAULT;
@@ -232,7 +228,7 @@ static int SQLITE_TCLAPI sqlthread_parent(
){
EvalEvent *pEvent;
char *zMsg;
- int nMsg;
+ Tcl_Size nMsg;
SqlThread *p = (SqlThread *)clientData;
assert(objc==3);
diff --git a/src/test_vdbecov.c b/src/test_vdbecov.c
index a001b1df0..283936aeb 100644
--- a/src/test_vdbecov.c
+++ b/src/test_vdbecov.c
@@ -15,11 +15,7 @@
#include "sqlite3.h"
#include "sqliteInt.h"
-#if defined(INCLUDE_SQLITE_TCL_H)
-# include "sqlite_tcl.h"
-#else
-# include "tcl.h"
-#endif
+#include "tclsqlite.h"
#ifdef SQLITE_VDBE_COVERAGE
diff --git a/src/test_vfs.c b/src/test_vfs.c
index 312e1a1be..9f84b4f80 100644
--- a/src/test_vfs.c
+++ b/src/test_vfs.c
@@ -28,11 +28,7 @@
#include "sqlite3.h"
#include "sqliteInt.h"
-#if defined(INCLUDE_SQLITE_TCL_H)
-# include "sqlite_tcl.h"
-#else
-# include "tcl.h"
-#endif
+#include "tclsqlite.h"
typedef struct Testvfs Testvfs;
typedef struct TestvfsShm TestvfsShm;
@@ -1150,15 +1146,15 @@ static int SQLITE_TCLAPI testvfs_obj_cmd(
return TCL_ERROR;
}
if( objc==4 ){
- int n;
+ Tcl_Size n;
u8 *a = Tcl_GetByteArrayFromObj(objv[3], &n);
int pgsz = pBuffer->pgsz;
if( pgsz==0 ) pgsz = 65536;
- for(i=0; i*pgsz<n; i++){
+ for(i=0; i*pgsz<(int)n; i++){
int nByte = pgsz;
tvfsAllocPage(pBuffer, i, pgsz);
if( n-i*pgsz<pgsz ){
- nByte = n;
+ nByte = (int)n;
}
memcpy(pBuffer->aPage[i], &a[i*pgsz], nByte);
}
@@ -1203,7 +1199,7 @@ static int SQLITE_TCLAPI testvfs_obj_cmd(
{ "xFileControl", TESTVFS_FCNTL_MASK },
};
Tcl_Obj **apElem = 0;
- int nElem = 0;
+ Tcl_Size nElem = 0;
int mask = 0;
if( objc!=3 ){
Tcl_WrongNumArgs(interp, 2, objv, "LIST");
@@ -1213,7 +1209,7 @@ static int SQLITE_TCLAPI testvfs_obj_cmd(
return TCL_ERROR;
}
Tcl_ResetResult(interp);
- for(i=0; i<nElem; i++){
+ for(i=0; i<(int)nElem; i++){
int iMethod;
char *zElem = Tcl_GetString(apElem[i]);
for(iMethod=0; iMethod<ArraySize(vfsmethod); iMethod++){
@@ -1239,7 +1235,7 @@ static int SQLITE_TCLAPI testvfs_obj_cmd(
*/
case CMD_SCRIPT: {
if( objc==3 ){
- int nByte;
+ Tcl_Size nByte;
if( p->pScript ){
Tcl_DecrRefCount(p->pScript);
p->pScript = 0;
@@ -1337,13 +1333,13 @@ static int SQLITE_TCLAPI testvfs_obj_cmd(
int j;
int iNew = 0;
Tcl_Obj **flags = 0;
- int nFlags = 0;
+ Tcl_Size nFlags = 0;
if( Tcl_ListObjGetElements(interp, objv[2], &nFlags, &flags) ){
return TCL_ERROR;
}
- for(j=0; j<nFlags; j++){
+ for(j=0; j<(int)nFlags; j++){
int idx = 0;
if( Tcl_GetIndexFromObjStruct(interp, flags[j], aFlag,
sizeof(aFlag[0]), "flag", 0, &idx)
@@ -1491,7 +1487,7 @@ static int SQLITE_TCLAPI testvfs_cmd(
if( objc<2 || 0!=(objc%2) ) goto bad_args;
for(i=2; i<objc; i += 2){
- int nSwitch;
+ Tcl_Size nSwitch;
char *zSwitch;
zSwitch = Tcl_GetStringFromObj(objv[i], &nSwitch);
diff --git a/src/test_window.c b/src/test_window.c
index 48ab02211..631b20162 100644
--- a/src/test_window.c
+++ b/src/test_window.c
@@ -16,7 +16,7 @@
#ifdef SQLITE_TEST
#include "sqliteInt.h"
-#include <tcl.h>
+#include "tclsqlite.h"
extern int getDbPointer(Tcl_Interp *interp, const char *zA, sqlite3 **ppDb);
extern const char *sqlite3ErrName(int);