2 ** This is the source code to a "tclsh" that has SQLite built-in.
4 ** The startup script is located as follows:
6 ** (1) Open the executable as an appended SQLite database and try to
7 ** read the startup script out of that database.
9 ** (2) If the first argument is a readable file, try to open that file
10 ** as an SQLite database and read the startup script out of that
13 ** (3) If the first argument is a readable file with a ".tcl" extension,
14 ** then try to run that script directly.
16 ** If none of the above steps work, then the program runs as an interactive
19 #define TCLSH_INIT_PROC sqlite3_tclapp_init_proc
20 #define SQLITE_ENABLE_DBSTAT_VTAB 1
21 #undef SQLITE_THREADSAFE
22 #define SQLITE_THREADSAFE 0
23 #undef SQLITE_ENABLE_COLUMN_METADATA
24 #define SQLITE_OMIT_DECLTYPE 1
25 #define SQLITE_OMIT_DEPRECATED 1
26 #define SQLITE_OMIT_PROGRESS_CALLBACK 1
27 #define SQLITE_OMIT_SHARED_CACHE 1
28 #define SQLITE_DEFAULT_MEMSTATUS 0
29 #define SQLITE_MAX_EXPR_DEPTH 0
31 INCLUDE $ROOT
/ext
/misc
/appendvfs
.c
32 #ifdef SQLITE_HAVE_ZLIB
33 INCLUDE $ROOT
/ext
/misc
/zipfile
.c
34 INCLUDE $ROOT
/ext
/misc
/sqlar
.c
36 INCLUDE $ROOT
/src
/tclsqlite
.c
38 const char *sqlite3_tclapp_init_proc(Tcl_Interp
*interp
){
40 sqlite3_appendvfs_init(0,0,0);
41 #ifdef SQLITE_HAVE_ZLIB
42 sqlite3_auto_extension((void(*)(void))sqlite3_sqlar_init
);
43 sqlite3_auto_extension((void(*)(void))sqlite3_zipfile_init
);
48 INCLUDE $ROOT
/tool
/sqltclsh
.tcl