aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authormistachkin <mistachkin@noemail.net>2013-07-31 22:27:16 +0000
committermistachkin <mistachkin@noemail.net>2013-07-31 22:27:16 +0000
commit16a2e7a0536b9a6535ad732ab5a089cdef30087b (patch)
treef12994108f40d762bc9cca721786c2d456d9c895 /src
parent68f7a9e942132d72d87650449b32d7ec179affda (diff)
downloadsqlite-16a2e7a0536b9a6535ad732ab5a089cdef30087b.tar.gz
sqlite-16a2e7a0536b9a6535ad732ab5a089cdef30087b.zip
Use a new error code to represent a failure to get the configured temporary directory on Windows.
FossilOrigin-Name: c93d891b03c626b9ed01ed5ef2f246b2d4a40a64
Diffstat (limited to 'src')
-rw-r--r--src/main.c1
-rw-r--r--src/os_win.c10
-rw-r--r--src/sqlite.h.in1
3 files changed, 10 insertions, 2 deletions
diff --git a/src/main.c b/src/main.c
index 9b25ae26b..d848dc7f5 100644
--- a/src/main.c
+++ b/src/main.c
@@ -1100,6 +1100,7 @@ const char *sqlite3ErrName(int rc){
case SQLITE_IOERR_SEEK: zName = "SQLITE_IOERR_SEEK"; break;
case SQLITE_IOERR_DELETE_NOENT: zName = "SQLITE_IOERR_DELETE_NOENT";break;
case SQLITE_IOERR_MMAP: zName = "SQLITE_IOERR_MMAP"; break;
+ case SQLITE_IOERR_GETTEMPPATH: zName = "SQLITE_IOERR_GETTEMPPATH"; break;
case SQLITE_CORRUPT: zName = "SQLITE_CORRUPT"; break;
case SQLITE_CORRUPT_VTAB: zName = "SQLITE_CORRUPT_VTAB"; break;
case SQLITE_NOTFOUND: zName = "SQLITE_NOTFOUND"; break;
diff --git a/src/os_win.c b/src/os_win.c
index b8136f0e9..1f178e1ff 100644
--- a/src/os_win.c
+++ b/src/os_win.c
@@ -3905,7 +3905,10 @@ static int getTempname(int nBuf, char *zBuf){
else if( isNT() ){
char *zMulti;
WCHAR zWidePath[MAX_PATH];
- osGetTempPathW(MAX_PATH-30, zWidePath);
+ if( osGetTempPathW(MAX_PATH-30, zWidePath)==0 ){
+ OSTRACE(("TEMP-FILENAME rc=SQLITE_IOERR_GETTEMPPATH\n"));
+ return SQLITE_IOERR_GETTEMPPATH;
+ }
zMulti = unicodeToUtf8(zWidePath);
if( zMulti ){
sqlite3_snprintf(SQLITE_WIN32_MAX_PATH-30, zTempPath, "%s", zMulti);
@@ -3919,7 +3922,10 @@ static int getTempname(int nBuf, char *zBuf){
else{
char *zUtf8;
char zMbcsPath[SQLITE_WIN32_MAX_PATH];
- osGetTempPathA(SQLITE_WIN32_MAX_PATH-30, zMbcsPath);
+ if( osGetTempPathA(SQLITE_WIN32_MAX_PATH-30, zMbcsPath)==0 ){
+ OSTRACE(("TEMP-FILENAME rc=SQLITE_IOERR_GETTEMPPATH\n"));
+ return SQLITE_IOERR_GETTEMPPATH;
+ }
zUtf8 = sqlite3_win32_mbcs_to_utf8(zMbcsPath);
if( zUtf8 ){
sqlite3_snprintf(SQLITE_WIN32_MAX_PATH-30, zTempPath, "%s", zUtf8);
diff --git a/src/sqlite.h.in b/src/sqlite.h.in
index 2fc3e80a4..fa33a0a40 100644
--- a/src/sqlite.h.in
+++ b/src/sqlite.h.in
@@ -473,6 +473,7 @@ int sqlite3_exec(
#define SQLITE_IOERR_SEEK (SQLITE_IOERR | (22<<8))
#define SQLITE_IOERR_DELETE_NOENT (SQLITE_IOERR | (23<<8))
#define SQLITE_IOERR_MMAP (SQLITE_IOERR | (24<<8))
+#define SQLITE_IOERR_GETTEMPPATH (SQLITE_IOERR | (25<<8))
#define SQLITE_LOCKED_SHAREDCACHE (SQLITE_LOCKED | (1<<8))
#define SQLITE_BUSY_RECOVERY (SQLITE_BUSY | (1<<8))
#define SQLITE_BUSY_SNAPSHOT (SQLITE_BUSY | (2<<8))