Hi,
I just noticed by code review small and easy to fix bug in -vfs option
handling code.
sqlite3 Tcl command line syntax is following:
sqlite3 HANDLE ?FILENAME ?-vfs VFSNAME? ?-readonly BOOLEAN? ?-create
BOOLEAN? ?-nomutex BOOLEAN? ?-fullmutex BOOLEAN?
But if -vfs option is in the middle, the following options will not be parsed
correctly. Here is proposed fix:
- tclsqlite.c / DbMain().
Wrong code:
// . . .
for(i=2; i+1<objc; i+=2){
zArg = Tcl_GetString(objv[i]);
if( strcmp(zArg,"-key")==0 ){
pKey = Tcl_GetByteArrayFromObj(objv[i+1], &nKey);
}else if( strcmp(zArg, "-vfs")==0 ){
i++;
zVfs = Tcl_GetString(objv[i]);
}else if( strcmp(zArg, "-readonly")==0 ){
// . . .
Fixed code:
// . . .
for(i=2; i+1<objc; i+=2){
zArg = Tcl_GetString(objv[i]);
if( strcmp(zArg,"-key")==0 ){
pKey = Tcl_GetByteArrayFromObj(objv[i+1], &nKey);
}else if( strcmp(zArg, "-vfs")==0 ){
zVfs = Tcl_GetString(objv[i+1]);
}else if( strcmp(zArg, "-readonly")==0 ){
// . . .
-----
The other very small bug is in the same place is that -version and -has-codec
options are not covered by 'usage' message:
- tclsqlite.c / DbMain().
if( objc<2 ){
Tcl_WrongNumArgs(interp, 1, objv,
"HANDLE ?FILENAME ?-vfs VFSNAME? ?-readonly BOOLEAN? ?-create BOOLEAN?"
" ?-nomutex BOOLEAN? ?-fullmutex BOOLEAN? ?-gdms-fti BOOLEAN?"
#ifdef SQLITE_HAS_CODEC
" ?-key CODECKEY?\n"
#else // ADDED BY ME
"\n" // ADDED BY ME
#endif
"or\n" // ADDED BY ME
"?-version ?-has-codec" // ADDED BY ME
);
return TCL_ERROR;
}
Thanks,
Grzegorz W.
_______________________________________________
sqlite-users mailing list
[email protected]
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users