diff options
Diffstat (limited to 'src/tclsqlite.c')
-rw-r--r-- | src/tclsqlite.c | 35 |
1 files changed, 19 insertions, 16 deletions
diff --git a/src/tclsqlite.c b/src/tclsqlite.c index b8e2a5ee3..93cf71846 100644 --- a/src/tclsqlite.c +++ b/src/tclsqlite.c @@ -11,7 +11,7 @@ ************************************************************************* ** A TCL Interface to SQLite ** -** $Id: tclsqlite.c,v 1.37 2002/07/10 21:26:01 drh Exp $ +** $Id: tclsqlite.c,v 1.38 2002/07/11 12:18:17 drh Exp $ */ #ifndef NO_TCL /* Omit this whole file if TCL is unavailable */ @@ -93,18 +93,20 @@ static int DbEvalCallback( return 1; } if( cbData->zArray[0] ){ - Tcl_DString dType; - Tcl_DStringInit(&dType); Tcl_SetVar2(cbData->interp, cbData->zArray, "*", Tcl_DStringValue(&dCol), TCL_LIST_ELEMENT|TCL_APPEND_VALUE); - Tcl_DStringAppend(&dType, "typeof:", -1); - Tcl_DStringAppend(&dType, Tcl_DStringValue(&dCol), -1); - Tcl_DStringFree(&dCol); - Tcl_ExternalToUtfDString(NULL, azN[i+argc+1], -1, &dCol); - Tcl_SetVar2(cbData->interp, cbData->zArray, - Tcl_DStringValue(&dType), Tcl_DStringValue(&dCol), - TCL_LIST_ELEMENT|TCL_APPEND_VALUE); - Tcl_DStringFree(&dType); + if( azN[nCol]!=0 } { + Tcl_DString dType; + Tcl_DStringInit(&dType); + Tcl_DStringAppend(&dType, "typeof:", -1); + Tcl_DStringAppend(&dType, Tcl_DStringValue(&dCol), -1); + Tcl_DStringFree(&dCol); + Tcl_ExternalToUtfDString(NULL, azN[i+nCol], -1, &dCol); + Tcl_SetVar2(cbData->interp, cbData->zArray, + Tcl_DStringValue(&dType), Tcl_DStringValue(&dCol), + TCL_LIST_ELEMENT|TCL_APPEND_VALUE); + Tcl_DStringFree(&dType); + } } Tcl_DStringFree(&dCol); @@ -163,13 +165,14 @@ static int DbEvalCallback( if( azCol==0 || (cbData->once && cbData->zArray[0]) ){ Tcl_SetVar2(cbData->interp, cbData->zArray, "*", "", 0); for(i=0; i<nCol; i++){ - char *z; Tcl_SetVar2(cbData->interp, cbData->zArray, "*", azN[i], TCL_LIST_ELEMENT|TCL_APPEND_VALUE); - z = sqlite_mprintf("typeof:%s", azN[i]); - Tcl_SetVar2(cbData->interp, cbData->zArray, z, azN[i+nCol+1], - TCL_LIST_ELEMENT|TCL_APPEND_VALUE); - sqlite_freemem(z); + if( azN[nCol] ){ + char *z = sqlite_mprintf("typeof:%s", azN[i]); + Tcl_SetVar2(cbData->interp, cbData->zArray, z, azN[i+nCol], + TCL_LIST_ELEMENT|TCL_APPEND_VALUE); + sqlite_freemem(z); + } } cbData->once = 0; } |