mirror of
https://github.com/sqlite/sqlite.git
synced 2025-08-05 15:55:57 +03:00
First attempt at getting the build to work with Tcl 9.0.
FossilOrigin-Name: 6e5bb48a74d63fb8c30528f0005d1763cd2dbb882abf86baf1565721e6bfcf84
This commit is contained in:
@@ -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.
|
||||
|
Reference in New Issue
Block a user