diff options
Diffstat (limited to 'ext/misc/csv.c')
-rw-r--r-- | ext/misc/csv.c | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/ext/misc/csv.c b/ext/misc/csv.c index 3a7e32d31..2a9463bd6 100644 --- a/ext/misc/csv.c +++ b/ext/misc/csv.c @@ -48,6 +48,8 @@ SQLITE_EXTENSION_INIT1 #include <ctype.h> #include <stdio.h> +#ifndef SQLITE_OMIT_VIRTUALTABLE + /* ** A macro to hint to the compiler that a function should not be ** inlined. @@ -230,7 +232,7 @@ static char *csv_read_one_field(CsvReader *p){ || (c==EOF && pc=='"') ){ do{ p->n--; }while( p->z[p->n]!='"' ); - p->cTerm = c; + p->cTerm = (char)c; break; } if( pc=='"' && c!='\r' ){ @@ -240,7 +242,7 @@ static char *csv_read_one_field(CsvReader *p){ if( c==EOF ){ csv_errmsg(p, "line %d: unterminated %c-quoted field\n", startLine, '"'); - p->cTerm = c; + p->cTerm = (char)c; break; } } @@ -257,7 +259,7 @@ static char *csv_read_one_field(CsvReader *p){ p->nLine++; if( p->n>0 && p->z[p->n-1]=='\r' ) p->n--; } - p->cTerm = c; + p->cTerm = (char)c; } if( p->z ) p->z[p->n] = 0; return p->z; @@ -336,9 +338,9 @@ static void csv_trim_whitespace(char *z){ /* Dequote the string */ static void csv_dequote(char *z){ - int i, j; + int j; char cQuote = z[0]; - size_t n; + size_t i, n; if( cQuote!='\'' && cQuote!='"' ) return; n = strlen(z); @@ -723,7 +725,8 @@ static int csvtabFilter( pCur->iRowid = 0; if( pCur->rdr.in==0 ){ assert( pCur->rdr.zIn==pTab->zData ); - assert( pTab->iStart<=pCur->rdr.nIn ); + assert( pTab->iStart>=0 ); + assert( (size_t)pTab->iStart<=pCur->rdr.nIn ); pCur->rdr.iIn = pTab->iStart; }else{ fseek(pCur->rdr.in, pTab->iStart, SEEK_SET); @@ -834,6 +837,7 @@ static sqlite3_module CsvModuleFauxWrite = { }; #endif /* SQLITE_TEST */ +#endif /* !defined(SQLITE_OMIT_VIRTUALTABLE) */ #ifdef _WIN32 @@ -849,6 +853,7 @@ int sqlite3_csv_init( char **pzErrMsg, const sqlite3_api_routines *pApi ){ +#ifndef SQLITE_OMIT_VIRTUALTABLE int rc; SQLITE_EXTENSION_INIT2(pApi); rc = sqlite3_create_module(db, "csv", &CsvModule, 0); @@ -858,4 +863,7 @@ int sqlite3_csv_init( } #endif return rc; +#else + return SQLITE_OK; +#endif } |