aboutsummaryrefslogtreecommitdiff
path: root/src/tclsqlite.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/tclsqlite.c')
-rw-r--r--src/tclsqlite.c13
1 files changed, 11 insertions, 2 deletions
diff --git a/src/tclsqlite.c b/src/tclsqlite.c
index 69da2ccd9..d80c25251 100644
--- a/src/tclsqlite.c
+++ b/src/tclsqlite.c
@@ -3699,6 +3699,7 @@ static int SQLITE_TCLAPI DbMain(
const char *zFile = 0;
const char *zVfs = 0;
int flags;
+ int bTranslateFileName = 1;
Tcl_DString translatedFilename;
int rc;
@@ -3796,6 +3797,10 @@ static int SQLITE_TCLAPI DbMain(
}else{
flags &= ~SQLITE_OPEN_URI;
}
+ }else if( strcmp(zArg, "-translatefilename")==0 ){
+ if( Tcl_GetBooleanFromObj(interp, objv[i], &bTranslateFileName) ){
+ return TCL_ERROR;
+ }
}else{
Tcl_AppendResult(interp, "unknown option: ", zArg, (char*)0);
return TCL_ERROR;
@@ -3805,9 +3810,13 @@ static int SQLITE_TCLAPI DbMain(
p = (SqliteDb*)Tcl_Alloc( sizeof(*p) );
memset(p, 0, sizeof(*p));
if( zFile==0 ) zFile = "";
- zFile = Tcl_TranslateFileName(interp, zFile, &translatedFilename);
+ if( bTranslateFileName ){
+ zFile = Tcl_TranslateFileName(interp, zFile, &translatedFilename);
+ }
rc = sqlite3_open_v2(zFile, &p->db, flags, zVfs);
- Tcl_DStringFree(&translatedFilename);
+ if( bTranslateFileName ){
+ Tcl_DStringFree(&translatedFilename);
+ }
if( p->db ){
if( SQLITE_OK!=sqlite3_errcode(p->db) ){
zErrMsg = sqlite3_mprintf("%s", sqlite3_errmsg(p->db));