mirror of
https://github.com/sqlite/sqlite.git
synced 2025-10-21 11:13:54 +03:00
Latest upstream c-pp.c for the ability to process multiple inputs and outputs in a single invocation.
FossilOrigin-Name: c7633373046ceb94f293b8fbd4f436a1eb281c2744d97334c6e7e3a803d8eac2
This commit is contained in:
288
ext/wasm/c-pp.c
288
ext/wasm/c-pp.c
@@ -500,12 +500,14 @@ struct CmppTokenizer {
|
|||||||
#define CT_skipLevel(t) CT_level(t).skipLevel
|
#define CT_skipLevel(t) CT_level(t).skipLevel
|
||||||
#define CLvl_skip(lvl) ((lvl)->skipLevel || ((lvl)->flags & CmppLevel_F_ELIDE))
|
#define CLvl_skip(lvl) ((lvl)->skipLevel || ((lvl)->flags & CmppLevel_F_ELIDE))
|
||||||
#define CT_skip(t) CLvl_skip(&CT_level(t))
|
#define CT_skip(t) CLvl_skip(&CT_level(t))
|
||||||
#define CmppTokenizer_empty_m { \
|
#define CmppTokenizer_empty_m { \
|
||||||
0,0,0,0,0,1U/*lineNo*/, \
|
.zName=0, .zBegin=0, .zEnd=0, .zAnchor=0, \
|
||||||
TS_Start, \
|
.zPos=0, \
|
||||||
CmppToken_empty_m, \
|
.lineNo=1U, \
|
||||||
{/*level*/0U,{CmppLevel_empty_m}}, \
|
.pstate = TS_Start, \
|
||||||
{/*args*/0,0,{0},{0}} \
|
.token = CmppToken_empty_m, \
|
||||||
|
.level = {0U,{CmppLevel_empty_m}}, \
|
||||||
|
.args = {0,0,{0},{0}} \
|
||||||
}
|
}
|
||||||
static const CmppTokenizer CmppTokenizer_empty = CmppTokenizer_empty_m;
|
static const CmppTokenizer CmppTokenizer_empty = CmppTokenizer_empty_m;
|
||||||
|
|
||||||
@@ -555,18 +557,31 @@ static struct Global {
|
|||||||
sqlite3_stmt * inclPathAdd;
|
sqlite3_stmt * inclPathAdd;
|
||||||
sqlite3_stmt * inclSearch;
|
sqlite3_stmt * inclSearch;
|
||||||
} stmt;
|
} stmt;
|
||||||
|
struct {
|
||||||
|
FILE * pFile;
|
||||||
|
int expandSql;
|
||||||
|
} sqlTrace;
|
||||||
} g = {
|
} g = {
|
||||||
"?",
|
.zArgv0 = "?",
|
||||||
CMPP_DEFAULT_DELIM/*zDelim*/,
|
.zDelim = CMPP_DEFAULT_DELIM,
|
||||||
(unsigned short) sizeof(CMPP_DEFAULT_DELIM)-1/*nDelim*/,
|
.nDelim = (unsigned short) sizeof(CMPP_DEFAULT_DELIM)-1,
|
||||||
0/*doDebug*/,
|
.doDebug = 0,
|
||||||
0/*db*/,
|
.db = 0,
|
||||||
FileWrapper_empty_m/*out*/,
|
.out = FileWrapper_empty_m,
|
||||||
{/*stmt*/
|
.stmt = {
|
||||||
0/*defIns*/, 0/*defDel*/, 0/*defHas*/,
|
.defIns = 0,
|
||||||
0/*inclIns*/, 0/*inclDel*/, 0/*inclHas*/,
|
.defDel = 0,
|
||||||
0/*inclPathAdd*/
|
.defHas = 0,
|
||||||
}
|
.inclIns = 0,
|
||||||
|
.inclDel = 0,
|
||||||
|
.inclHas = 0,
|
||||||
|
.inclPathAdd = 0,
|
||||||
|
.inclSearch = 0
|
||||||
|
},
|
||||||
|
.sqlTrace = {
|
||||||
|
.pFile = 0,
|
||||||
|
.expandSql = 0
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@@ -790,11 +805,19 @@ int db_define_has(const char * zName){
|
|||||||
void db_define_rm(const char * zKey){
|
void db_define_rm(const char * zKey){
|
||||||
int rc;
|
int rc;
|
||||||
int n = 0;
|
int n = 0;
|
||||||
const char *zPos = zKey;
|
//const char *zPos = zKey;
|
||||||
if(!g.stmt.defDel){
|
#if 0
|
||||||
db_prepare(&g.stmt.defDel, "DELETE FROM def WHERE k=?");
|
if( !zKey ){
|
||||||
|
if( g.db ){
|
||||||
|
sqlite3_exec(g.db, "DELETE FROM def", 0, 0, 0);
|
||||||
|
}
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
for( ; *zPos && '='!=*zPos; ++n, ++zPos) {}
|
#endif
|
||||||
|
if(!g.stmt.defDel){
|
||||||
|
db_prepare(&g.stmt.defDel, "DELETE FROM def WHERE k GLOB ?");
|
||||||
|
}
|
||||||
|
//for( ; *zPos && '='!=*zPos; ++n, ++zPos) {}
|
||||||
db_bind_text(g.stmt.defDel, 1, zKey);
|
db_bind_text(g.stmt.defDel, 1, zKey);
|
||||||
rc = db_step(g.stmt.defDel);
|
rc = db_step(g.stmt.defDel);
|
||||||
if(SQLITE_DONE != rc){
|
if(SQLITE_DONE != rc){
|
||||||
@@ -818,7 +841,7 @@ void db_including_add(const char * zKey, const char * zSrc, int srcLine){
|
|||||||
if(SQLITE_DONE != rc){
|
if(SQLITE_DONE != rc){
|
||||||
db_affirm_rc(rc, "Stepping INSERT on incl");
|
db_affirm_rc(rc, "Stepping INSERT on incl");
|
||||||
}
|
}
|
||||||
g_debug(2,("inclpath add [%s] from [%s]:%d\n", zKey, zSrc, srcLine));
|
g_debug(2,("is-including-file add [%s] from [%s]:%d\n", zKey, zSrc, srcLine));
|
||||||
sqlite3_clear_bindings(g.stmt.inclIns);
|
sqlite3_clear_bindings(g.stmt.inclIns);
|
||||||
sqlite3_reset(g.stmt.inclIns);
|
sqlite3_reset(g.stmt.inclIns);
|
||||||
}
|
}
|
||||||
@@ -934,6 +957,31 @@ static void udf_file_exists(
|
|||||||
sqlite3_result_int(context, 0==access(zName, 0));
|
sqlite3_result_int(context, 0==access(zName, 0));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
This sqlite3_trace_v2() callback outputs tracing info using
|
||||||
|
whut_output().
|
||||||
|
*/
|
||||||
|
static int cmpp__db_sq3TraceV2(unsigned t,void*c,void*p,void*x){
|
||||||
|
static unsigned int counter = 0;
|
||||||
|
switch(t){
|
||||||
|
case SQLITE_TRACE_STMT:{
|
||||||
|
FILE * const fp = g.sqlTrace.pFile;
|
||||||
|
char const * zSql = (char const *)x;
|
||||||
|
char * zExp = g.sqlTrace.expandSql
|
||||||
|
? sqlite3_expanded_sql((sqlite3_stmt*)p)
|
||||||
|
: 0;
|
||||||
|
//MARKER(("mask=%08x isExp=%d\n", db->impl.event.maskIds, isExp));
|
||||||
|
assert( fp );
|
||||||
|
fprintf(fp, "SQL TRACE #%u: %s\n",
|
||||||
|
++counter, zExp ? zExp : zSql);
|
||||||
|
sqlite3_free(zExp);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/* Initialize g.db, failing fatally on error. */
|
/* Initialize g.db, failing fatally on error. */
|
||||||
static void cmpp_initdb(void){
|
static void cmpp_initdb(void){
|
||||||
int rc;
|
int rc;
|
||||||
@@ -951,7 +999,7 @@ static void cmpp_initdb(void){
|
|||||||
") WITHOUT ROWID;"
|
") WITHOUT ROWID;"
|
||||||
/* ^^^ files currently being included */
|
/* ^^^ files currently being included */
|
||||||
"CREATE TABLE inclpath("
|
"CREATE TABLE inclpath("
|
||||||
"seq INTEGER UNIQUE, "
|
"seq INTEGER UNIQUE ON CONFLICT IGNORE, "
|
||||||
"dir TEXT PRIMARY KEY NOT NULL ON CONFLICT IGNORE"
|
"dir TEXT PRIMARY KEY NOT NULL ON CONFLICT IGNORE"
|
||||||
")"
|
")"
|
||||||
/* ^^^ include path */
|
/* ^^^ include path */
|
||||||
@@ -960,9 +1008,12 @@ static void cmpp_initdb(void){
|
|||||||
if(g.db) return;
|
if(g.db) return;
|
||||||
rc = sqlite3_open_v2(":memory:", &g.db, SQLITE_OPEN_READWRITE, 0);
|
rc = sqlite3_open_v2(":memory:", &g.db, SQLITE_OPEN_READWRITE, 0);
|
||||||
if(rc) fatal("Error opening :memory: db.");
|
if(rc) fatal("Error opening :memory: db.");
|
||||||
|
if( g.sqlTrace.pFile ){
|
||||||
|
sqlite3_trace_v2(g.db, SQLITE_TRACE_STMT, cmpp__db_sq3TraceV2, 0);
|
||||||
|
}
|
||||||
rc = sqlite3_exec(g.db, zSchema, 0, 0, &zErr);
|
rc = sqlite3_exec(g.db, zSchema, 0, 0, &zErr);
|
||||||
if(rc) fatal("Error initializing database: %s", zErr);
|
if(rc) fatal("Error initializing database: %s", zErr);
|
||||||
rc = sqlite3_create_function(g.db, "fileExists", 1,
|
rc = sqlite3_create_function(g.db, "fileExists", 1,
|
||||||
SQLITE_UTF8|SQLITE_DIRECTONLY, 0,
|
SQLITE_UTF8|SQLITE_DIRECTONLY, 0,
|
||||||
udf_file_exists, 0, 0);
|
udf_file_exists, 0, 0);
|
||||||
db_affirm_rc(rc, "UDF registration failed.");
|
db_affirm_rc(rc, "UDF registration failed.");
|
||||||
@@ -1439,32 +1490,41 @@ void cmpp_process_file(const char * zName){
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#undef CT_level
|
||||||
|
#undef CT_pstate
|
||||||
|
#undef CT_skipLevel
|
||||||
|
#undef CT_skip
|
||||||
|
#undef CLvl_skip
|
||||||
|
|
||||||
static void usage(int isErr){
|
static void usage(int isErr){
|
||||||
FILE * const fOut = isErr ? stderr : stdout;
|
FILE * const fOut = isErr ? stderr : stdout;
|
||||||
|
fprintf(fOut, "Usage: %s [flags] [infile...]\n", g.zArgv0);
|
||||||
fprintf(fOut,
|
fprintf(fOut,
|
||||||
"Usage: %s [flags] [infile...]\n"
|
"Flags and filenames may be in any order and "
|
||||||
"Flags:\n",
|
"they are processed in that order.\n"
|
||||||
g.zArgv0);
|
"\nFlags:\n\n");
|
||||||
|
|
||||||
#define arg(F,D) fprintf(fOut," %s\n %s\n",F, D)
|
#define arg(F,D) fprintf(fOut," %s\n %s\n",F, D)
|
||||||
|
arg("-o|--outfile FILE","Send output to FILE (default=- (stdout)). "
|
||||||
|
" Because arguments are processed in order, this should "
|
||||||
|
" normally be given before -f.");
|
||||||
arg("-f|--file FILE","Read input from FILE (default=- (stdin)).\n"
|
arg("-f|--file FILE","Read input from FILE (default=- (stdin)).\n"
|
||||||
" Alternately, non-flag arguments are assumed to "
|
" All non-flag arguments are assumed to be the input files.");
|
||||||
"be the input files.");
|
|
||||||
arg("-o|--outfile FILE","Send output to FILE (default=- (stdout))");
|
|
||||||
arg("-DXYZ","Define XYZ to true");
|
arg("-DXYZ","Define XYZ to true");
|
||||||
arg("-UXYZ","Undefine XYZ (equivalent to false)");
|
arg("-UXYZ","Undefine all matching glob XYZ");
|
||||||
arg("-IXYZ","Add dir XYZ to include path");
|
arg("-IXYZ","Add dir XYZ to include path");
|
||||||
arg("-d|--delimiter VALUE", "Set keyword delimiter to VALUE "
|
arg("-d|--delimiter VALUE", "Set keyword delimiter to VALUE "
|
||||||
"(default=" CMPP_DEFAULT_DELIM ")");
|
"(default=" CMPP_DEFAULT_DELIM ")");
|
||||||
|
arg("--sql-trace", "Send a trace of all SQL to stderr");
|
||||||
|
arg("--sql-trace-x", "Like --sql-trace but expand the SQL");
|
||||||
#undef arg
|
#undef arg
|
||||||
fputs("",fOut);
|
fputs("",fOut);
|
||||||
}
|
}
|
||||||
|
|
||||||
int main(int argc, char const * const * argv){
|
int main(int argc, char const * const * argv){
|
||||||
int rc = 0;
|
int rc = 0;
|
||||||
int i;
|
|
||||||
int inclCount = 0;
|
int inclCount = 0;
|
||||||
int nFile = 0;
|
int nFile = 0;
|
||||||
char const *zFileList[128] = {0};
|
|
||||||
#define M(X) (0==strcmp(X,zArg))
|
#define M(X) (0==strcmp(X,zArg))
|
||||||
#define ISFLAG(X) else if(M(X))
|
#define ISFLAG(X) else if(M(X))
|
||||||
#define ISFLAG2(X,Y) else if(M(X) || M(Y))
|
#define ISFLAG2(X,Y) else if(M(X) || M(Y))
|
||||||
@@ -1472,74 +1532,112 @@ int main(int argc, char const * const * argv){
|
|||||||
if(i+1>=argc) fatal("Missing value for flag '%s'", zArg); \
|
if(i+1>=argc) fatal("Missing value for flag '%s'", zArg); \
|
||||||
zArg = argv[++i]
|
zArg = argv[++i]
|
||||||
|
|
||||||
memset(zFileList, 0, sizeof(zFileList));
|
|
||||||
g.zArgv0 = argv[0];
|
g.zArgv0 = argv[0];
|
||||||
atexit(cmpp_atexit);
|
#define DOIT if(doIt)
|
||||||
cmpp_initdb();
|
for(int doIt = 0; doIt<2; ++doIt){
|
||||||
for(i = 1; i < argc; ++i){
|
/**
|
||||||
char const * zArg = argv[i];
|
Loop through the flags twice. The first time we just validate
|
||||||
while('-'==*zArg) ++zArg;
|
and look for --help/-?. The second time we process the flags.
|
||||||
if(M("?") || M("help")) {
|
This approach allows us to easily chain multiple files and
|
||||||
usage(0);
|
flags:
|
||||||
goto end;
|
|
||||||
}else if('D'==*zArg){
|
./c-pp -Dfoo -o foo x.y -Ufoo -Dbar -o bar x.y
|
||||||
++zArg;
|
*/
|
||||||
if(!*zArg) fatal("Missing key for -D");
|
DOIT{
|
||||||
db_define_add(zArg);
|
atexit(cmpp_atexit);
|
||||||
}else if('U'==*zArg){
|
cmpp_initdb();
|
||||||
++zArg;
|
|
||||||
if(!*zArg) fatal("Missing key for -U");
|
|
||||||
db_define_rm(zArg);
|
|
||||||
}else if('I'==*zArg){
|
|
||||||
++zArg;
|
|
||||||
if(!*zArg) fatal("Missing directory for -I");
|
|
||||||
db_include_dir_add(zArg);
|
|
||||||
++inclCount;
|
|
||||||
}
|
}
|
||||||
ISFLAG2("o","outfile"){
|
for(int i = 1; i < argc; ++i){
|
||||||
ARGVAL;
|
char const * zArg = argv[i];
|
||||||
if(g.out.zName) fatal("Cannot use -o more than once.");
|
while('-'==*zArg) ++zArg;
|
||||||
g.out.zName = zArg;
|
if(zArg==argv[i]/*not a flag*/){
|
||||||
}
|
goto do_infile;
|
||||||
ISFLAG2("f","file"){
|
}ISFLAG2("?","help"){
|
||||||
ARGVAL;
|
usage(0);
|
||||||
do_infile:
|
goto end;
|
||||||
if( nFile>=sizeof(zFileList)/sizeof(zFileList[0]) ){
|
}else if('D'==*zArg){
|
||||||
fatal("Too many file arguments. Max is %d.",
|
++zArg;
|
||||||
(int)(sizeof(zFileList)/sizeof(zFileList[0])));
|
if(!*zArg) fatal("Missing key for -D");
|
||||||
|
DOIT {
|
||||||
|
db_define_add(zArg);
|
||||||
|
}
|
||||||
|
}else if('U'==*zArg){
|
||||||
|
++zArg;
|
||||||
|
if(!*zArg) fatal("Missing key for -U");
|
||||||
|
DOIT {
|
||||||
|
db_define_rm(zArg);
|
||||||
|
}
|
||||||
|
}else if('I'==*zArg){
|
||||||
|
++zArg;
|
||||||
|
if(!*zArg) fatal("Missing directory for -I");
|
||||||
|
DOIT {
|
||||||
|
db_include_dir_add(zArg);
|
||||||
|
++inclCount;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
ISFLAG2("o","outfile"){
|
||||||
|
ARGVAL;
|
||||||
|
DOIT {
|
||||||
|
FileWrapper_open(&g.out, zArg, "w");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
ISFLAG2("f","file"){
|
||||||
|
ARGVAL;
|
||||||
|
do_infile:
|
||||||
|
DOIT {
|
||||||
|
++nFile;
|
||||||
|
if(!g.out.pFile) FileWrapper_open(&g.out, "-", "w");
|
||||||
|
if(!inclCount){
|
||||||
|
db_include_dir_add(".");
|
||||||
|
++inclCount;
|
||||||
|
}
|
||||||
|
cmpp_process_file(zArg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
ISFLAG2("d","delimiter"){
|
||||||
|
ARGVAL;
|
||||||
|
if( !doIt ){
|
||||||
|
g.zDelim = zArg;
|
||||||
|
g.nDelim = (unsigned short)strlen(zArg);
|
||||||
|
if(!g.nDelim) fatal("Keyword delimiter may not be empty.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
ISFLAG("debug"){
|
||||||
|
DOIT {
|
||||||
|
++g.doDebug;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
ISFLAG("sql-trace"){
|
||||||
|
if( !doIt ){
|
||||||
|
/* Needs to be set before the start of the second pass, when
|
||||||
|
the db is inited. */
|
||||||
|
g.sqlTrace.pFile = stderr;
|
||||||
|
g.sqlTrace.expandSql = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
ISFLAG("sql-trace-x"){
|
||||||
|
if( !doIt ){
|
||||||
|
g.sqlTrace.pFile = stderr;
|
||||||
|
g.sqlTrace.expandSql = 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
fatal("Unhandled flag: %s", argv[i]);
|
||||||
}
|
}
|
||||||
zFileList[nFile++] = zArg;
|
|
||||||
}
|
}
|
||||||
ISFLAG2("d","delimiter"){
|
DOIT {
|
||||||
ARGVAL;
|
if(!nFile){
|
||||||
g.zDelim = zArg;
|
if(!g.out.zName) g.out.zName = "-";
|
||||||
g.nDelim = (unsigned short)strlen(zArg);
|
if(!inclCount){
|
||||||
if(!g.nDelim) fatal("Keyword delimiter may not be empty.");
|
db_include_dir_add(".");
|
||||||
}
|
++inclCount;
|
||||||
ISFLAG("debug"){
|
}
|
||||||
++g.doDebug;
|
FileWrapper_open(&g.out, g.out.zName, "w");
|
||||||
}else if(zArg==argv[i]/*not a flag*/){
|
cmpp_process_file("-");
|
||||||
goto do_infile;
|
}
|
||||||
}else{
|
|
||||||
fatal("Unhandled flag: %s", argv[i]);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(!nFile){
|
|
||||||
zFileList[nFile++] = "-";
|
|
||||||
}
|
|
||||||
if(!g.out.zName) g.out.zName = "-";
|
|
||||||
if(!inclCount) db_include_dir_add(".");
|
|
||||||
FileWrapper_open(&g.out, g.out.zName, "w");
|
|
||||||
for(i = 0; i < nFile; ++i){
|
|
||||||
cmpp_process_file(zFileList[i]);
|
|
||||||
}
|
|
||||||
FileWrapper_close(&g.out);
|
|
||||||
end:
|
end:
|
||||||
|
FileWrapper_close(&g.out);
|
||||||
return rc ? EXIT_FAILURE : EXIT_SUCCESS;
|
return rc ? EXIT_FAILURE : EXIT_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
#undef CT_level
|
|
||||||
#undef CT_pstate
|
|
||||||
#undef CT_skipLevel
|
|
||||||
#undef CT_skip
|
|
||||||
#undef CLvl_skip
|
|
||||||
|
12
manifest
12
manifest
@@ -1,5 +1,5 @@
|
|||||||
C Delay\sreplacing\sthe\swasm\sfile\sname\sstrings\suntil\sthey're\sneeded.\sAdd\starget\sb-all\sto\srun\sall\sknown\swasm\sbuilds.
|
C Latest\supstream\sc-pp.c\sfor\sthe\sability\sto\sprocess\smultiple\sinputs\sand\soutputs\sin\sa\ssingle\sinvocation.
|
||||||
D 2025-09-26T19:41:07.340
|
D 2025-09-27T00:04:28.087
|
||||||
F .fossil-settings/binary-glob 61195414528fb3ea9693577e1980230d78a1f8b0a54c78cf1b9b24d0a409ed6a x
|
F .fossil-settings/binary-glob 61195414528fb3ea9693577e1980230d78a1f8b0a54c78cf1b9b24d0a409ed6a x
|
||||||
F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
|
F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
|
||||||
F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
|
F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
|
||||||
@@ -610,7 +610,7 @@ F ext/wasm/api/sqlite3-vtab-helper.c-pp.js 9097074724172e31e56ce20ccd7482259cf72
|
|||||||
F ext/wasm/api/sqlite3-wasm.c ff2dc011e17b06186b8b35e408626d7ace69a362b92c197a34d78bef25c7105a
|
F ext/wasm/api/sqlite3-wasm.c ff2dc011e17b06186b8b35e408626d7ace69a362b92c197a34d78bef25c7105a
|
||||||
F ext/wasm/api/sqlite3-worker1-promiser.c-pp.js 8fb6adfbae6270344f43f2652e63780df3f86521755bde8f92cf6b809ba7891d
|
F ext/wasm/api/sqlite3-worker1-promiser.c-pp.js 8fb6adfbae6270344f43f2652e63780df3f86521755bde8f92cf6b809ba7891d
|
||||||
F ext/wasm/api/sqlite3-worker1.c-pp.js 69483df1df2d0988e708390f7b1feda769c16e9e9efd4683557f8e7197099cc0
|
F ext/wasm/api/sqlite3-worker1.c-pp.js 69483df1df2d0988e708390f7b1feda769c16e9e9efd4683557f8e7197099cc0
|
||||||
F ext/wasm/c-pp.c 5f7e5bfe46105251bd7f892dd38ad57080dc65589760dac57c19b06d060c6828
|
F ext/wasm/c-pp.c f936676f82e5fef6550b52dfded40c46a603c4ba63ae544b989da83467c7d7a0
|
||||||
F ext/wasm/common/SqliteTestUtil.js 7adaeffef757d8708418dc9190f72df22367b531831775804b31598b44f6aa51
|
F ext/wasm/common/SqliteTestUtil.js 7adaeffef757d8708418dc9190f72df22367b531831775804b31598b44f6aa51
|
||||||
F ext/wasm/common/emscripten.css 11bd104b6c0d597c67d40cc8ecc0a60dae2b965151e3b6a37fa5708bac3acd15
|
F ext/wasm/common/emscripten.css 11bd104b6c0d597c67d40cc8ecc0a60dae2b965151e3b6a37fa5708bac3acd15
|
||||||
F ext/wasm/common/testing.css e97549bab24126c24e0daabfe2de9bb478fb0a69fdb2ddd0a73a992c091aad6f
|
F ext/wasm/common/testing.css e97549bab24126c24e0daabfe2de9bb478fb0a69fdb2ddd0a73a992c091aad6f
|
||||||
@@ -2169,8 +2169,8 @@ F tool/version-info.c 3b36468a90faf1bbd59c65fd0eb66522d9f941eedd364fabccd7227350
|
|||||||
F tool/warnings-clang.sh bbf6a1e685e534c92ec2bfba5b1745f34fb6f0bc2a362850723a9ee87c1b31a7
|
F tool/warnings-clang.sh bbf6a1e685e534c92ec2bfba5b1745f34fb6f0bc2a362850723a9ee87c1b31a7
|
||||||
F tool/warnings.sh 1ad0169b022b280bcaaf94a7fa231591be96b514230ab5c98fbf15cd7df842dd
|
F tool/warnings.sh 1ad0169b022b280bcaaf94a7fa231591be96b514230ab5c98fbf15cd7df842dd
|
||||||
F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
|
F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
|
||||||
P 1078aa4f1e5685d45e31eea622865ddd077f367f1cec90fc267e8ba50cbe2ee9
|
P a4edaecc9b0b649df53a99e05d9abfbc5bdb40d45c7c6940a50b24fa30dca158
|
||||||
R b65f3059fdd3f1d5877924b91516a2b0
|
R bef2f9129a58747558af60f4197c21ac
|
||||||
U stephan
|
U stephan
|
||||||
Z 4ba1230dbb68926ec3e296b074eb91b5
|
Z 316e05b3238d4a7d73024ef26d080321
|
||||||
# Remove this line to create a well-formed Fossil manifest.
|
# Remove this line to create a well-formed Fossil manifest.
|
||||||
|
@@ -1 +1 @@
|
|||||||
a4edaecc9b0b649df53a99e05d9abfbc5bdb40d45c7c6940a50b24fa30dca158
|
c7633373046ceb94f293b8fbd4f436a1eb281c2744d97334c6e7e3a803d8eac2
|
||||||
|
Reference in New Issue
Block a user