aboutsummaryrefslogtreecommitdiff
path: root/ext/misc/csv.c
diff options
context:
space:
mode:
Diffstat (limited to 'ext/misc/csv.c')
-rw-r--r--ext/misc/csv.c20
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
}