Snapshot of upstream SQLite 3.45.3
[sqlcipher.git] / tool / sqltclsh.c.in
blobda354ee9357b801c7d0709b14364599b0558a9ff
1 /*
2 ** This is the source code to a "tclsh" that has SQLite built-in.
3 **
4 ** The startup script is located as follows:
5 **
6 ** (1) Open the executable as an appended SQLite database and try to
7 ** read the startup script out of that database.
8 **
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
11 ** database.
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
17 ** tclsh.
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
30 INCLUDE sqlite3.c
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
35 #endif
36 INCLUDE $ROOT/src/tclsqlite.c
38 const char *sqlite3_tclapp_init_proc(Tcl_Interp *interp){
39 (void)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);
44 #endif
46 return
47 BEGIN_STRING
48 INCLUDE $ROOT/tool/sqltclsh.tcl
49 END_STRING