aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/os_win.c462
-rw-r--r--src/os_win.h2
-rw-r--r--src/tclsqlite.c4
-rw-r--r--src/test1.c206
-rw-r--r--src/test2.c70
-rw-r--r--src/test3.c69
-rw-r--r--src/test4.c80
-rw-r--r--src/test5.c6
-rw-r--r--src/test6.c10
-rw-r--r--src/test9.c6
-rw-r--r--src/test_backup.c2
-rw-r--r--src/test_blob.c2
-rw-r--r--src/test_fs.c13
-rw-r--r--src/test_hexio.c10
-rw-r--r--src/test_init.c2
-rw-r--r--src/test_malloc.c2
-rw-r--r--src/test_multiplex.c4
-rw-r--r--src/test_mutex.c4
-rw-r--r--src/test_osinst.c27
-rw-r--r--src/test_quota.c54
-rw-r--r--src/test_sqllog.c2
-rw-r--r--src/test_superlock.c2
-rw-r--r--src/test_syscall.c4
-rw-r--r--src/test_thread.c10
-rw-r--r--src/test_vfs.c10
25 files changed, 676 insertions, 387 deletions
diff --git a/src/os_win.c b/src/os_win.c
index dab8af34c..e0fbe968c 100644
--- a/src/os_win.c
+++ b/src/os_win.c
@@ -617,7 +617,7 @@ static struct win_syscall {
{ "FileTimeToLocalFileTime", (SYSCALL)0, 0 },
#endif
-#define osFileTimeToLocalFileTime ((BOOL(WINAPI*)(CONST FILETIME*, \
+#define osFileTimeToLocalFileTime ((BOOL(WINAPI*)(const FILETIME*, \
LPFILETIME))aSyscall[11].pCurrent)
#if SQLITE_OS_WINCE
@@ -626,7 +626,7 @@ static struct win_syscall {
{ "FileTimeToSystemTime", (SYSCALL)0, 0 },
#endif
-#define osFileTimeToSystemTime ((BOOL(WINAPI*)(CONST FILETIME*, \
+#define osFileTimeToSystemTime ((BOOL(WINAPI*)(const FILETIME*, \
LPSYSTEMTIME))aSyscall[12].pCurrent)
{ "FlushFileBuffers", (SYSCALL)FlushFileBuffers, 0 },
@@ -906,7 +906,7 @@ static struct win_syscall {
{ "LockFile", (SYSCALL)0, 0 },
#endif
-#ifndef osLockFile
+#if !defined(osLockFile) && defined(SQLITE_WIN32_HAS_ANSI)
#define osLockFile ((BOOL(WINAPI*)(HANDLE,DWORD,DWORD,DWORD, \
DWORD))aSyscall[47].pCurrent)
#endif
@@ -970,7 +970,7 @@ static struct win_syscall {
{ "SystemTimeToFileTime", (SYSCALL)SystemTimeToFileTime, 0 },
-#define osSystemTimeToFileTime ((BOOL(WINAPI*)(CONST SYSTEMTIME*, \
+#define osSystemTimeToFileTime ((BOOL(WINAPI*)(const SYSTEMTIME*, \
LPFILETIME))aSyscall[56].pCurrent)
#if !SQLITE_OS_WINCE && !SQLITE_OS_WINRT
@@ -979,7 +979,7 @@ static struct win_syscall {
{ "UnlockFile", (SYSCALL)0, 0 },
#endif
-#ifndef osUnlockFile
+#if !defined(osUnlockFile) && defined(SQLITE_WIN32_HAS_ANSI)
#define osUnlockFile ((BOOL(WINAPI*)(HANDLE,DWORD,DWORD,DWORD, \
DWORD))aSyscall[57].pCurrent)
#endif
@@ -1207,6 +1207,63 @@ static struct win_syscall {
#define osCancelIo ((BOOL(WINAPI*)(HANDLE))aSyscall[81].pCurrent)
+#if defined(SQLITE_WIN32_HAS_WIDE) && defined(_WIN32)
+ { "GetModuleHandleW", (SYSCALL)GetModuleHandleW, 0 },
+#else
+ { "GetModuleHandleW", (SYSCALL)0, 0 },
+#endif
+
+#define osGetModuleHandleW ((HMODULE(WINAPI*)(LPCWSTR))aSyscall[82].pCurrent)
+
+#ifndef _WIN32
+ { "getenv", (SYSCALL)getenv, 0 },
+#else
+ { "getenv", (SYSCALL)0, 0 },
+#endif
+
+#define osGetenv ((const char *(*)(const char *))aSyscall[83].pCurrent)
+
+#ifndef _WIN32
+ { "getcwd", (SYSCALL)getcwd, 0 },
+#else
+ { "getcwd", (SYSCALL)0, 0 },
+#endif
+
+#define osGetcwd ((char*(*)(char*,size_t))aSyscall[84].pCurrent)
+
+#ifndef _WIN32
+ { "readlink", (SYSCALL)readlink, 0 },
+#else
+ { "readlink", (SYSCALL)0, 0 },
+#endif
+
+#define osReadlink ((ssize_t(*)(const char*,char*,size_t))aSyscall[85].pCurrent)
+
+#ifndef _WIN32
+ { "lstat", (SYSCALL)lstat, 0 },
+#else
+ { "lstat", (SYSCALL)0, 0 },
+#endif
+
+#define osLstat ((int(*)(const char*,struct stat*))aSyscall[86].pCurrent)
+
+#ifndef _WIN32
+ { "__errno", (SYSCALL)__errno, 0 },
+#else
+ { "__errno", (SYSCALL)0, 0 },
+#endif
+
+#define osErrno (*((int*(*)(void))aSyscall[87].pCurrent)())
+
+#ifndef _WIN32
+ { "cygwin_conv_path", (SYSCALL)cygwin_conv_path, 0 },
+#else
+ { "cygwin_conv_path", (SYSCALL)0, 0 },
+#endif
+
+#define osCygwin_conv_path ((size_t(*)(unsigned int, \
+ const void *, void *, size_t))aSyscall[88].pCurrent)
+
}; /* End of the overrideable system calls */
/*
@@ -1380,6 +1437,7 @@ int sqlite3_win32_reset_heap(){
}
#endif /* SQLITE_WIN32_MALLOC */
+#ifdef _WIN32
/*
** This function outputs the specified (ANSI) string to the Win32 debugger
** (if available).
@@ -1422,6 +1480,7 @@ void sqlite3_win32_write_debug(const char *zBuf, int nBuf){
}
#endif
}
+#endif /* _WIN32 */
/*
** The following routine suspends the current thread for at least ms
@@ -1722,6 +1781,7 @@ void sqlite3MemSetDefault(void){
}
#endif /* SQLITE_WIN32_MALLOC */
+#ifdef _WIN32
/*
** Convert a UTF-8 string to Microsoft Unicode.
**
@@ -1747,6 +1807,7 @@ static LPWSTR winUtf8ToUnicode(const char *zText){
}
return zWideText;
}
+#endif /* _WIN32 */
/*
** Convert a Microsoft Unicode string to UTF-8.
@@ -1781,28 +1842,29 @@ static char *winUnicodeToUtf8(LPCWSTR zWideText){
** Space to hold the returned string is obtained from sqlite3_malloc().
*/
static LPWSTR winMbcsToUnicode(const char *zText, int useAnsi){
- int nByte;
+ int nWideChar;
LPWSTR zMbcsText;
int codepage = useAnsi ? CP_ACP : CP_OEMCP;
- nByte = osMultiByteToWideChar(codepage, 0, zText, -1, NULL,
- 0)*sizeof(WCHAR);
- if( nByte==0 ){
+ nWideChar = osMultiByteToWideChar(codepage, 0, zText, -1, NULL,
+ 0);
+ if( nWideChar==0 ){
return 0;
}
- zMbcsText = sqlite3MallocZero( nByte*sizeof(WCHAR) );
+ zMbcsText = sqlite3MallocZero( nWideChar*sizeof(WCHAR) );
if( zMbcsText==0 ){
return 0;
}
- nByte = osMultiByteToWideChar(codepage, 0, zText, -1, zMbcsText,
- nByte);
- if( nByte==0 ){
+ nWideChar = osMultiByteToWideChar(codepage, 0, zText, -1, zMbcsText,
+ nWideChar);
+ if( nWideChar==0 ){
sqlite3_free(zMbcsText);
zMbcsText = 0;
}
return zMbcsText;
}
+#ifdef _WIN32
/*
** Convert a Microsoft Unicode string to a multi-byte character string,
** using the ANSI or OEM code page.
@@ -1830,6 +1892,7 @@ static char *winUnicodeToMbcs(LPCWSTR zWideText, int useAnsi){
}
return zText;
}
+#endif /* _WIN32 */
/*
** Convert a multi-byte character string to UTF-8.
@@ -1849,6 +1912,7 @@ static char *winMbcsToUtf8(const char *zText, int useAnsi){
return zTextUtf8;
}
+#ifdef _WIN32
/*
** Convert a UTF-8 string to a multi-byte character string.
**
@@ -1898,6 +1962,7 @@ char *sqlite3_win32_unicode_to_utf8(LPCWSTR zWideText){
#endif
return winUnicodeToUtf8(zWideText);
}
+#endif /* _WIN32 */
/*
** This is a public wrapper for the winMbcsToUtf8() function.
@@ -1915,6 +1980,7 @@ char *sqlite3_win32_mbcs_to_utf8(const char *zText){
return winMbcsToUtf8(zText, osAreFileApisANSI());
}
+#ifdef _WIN32
/*
** This is a public wrapper for the winMbcsToUtf8() function.
*/
@@ -2039,6 +2105,7 @@ int sqlite3_win32_set_directory(
){
return sqlite3_win32_set_directory16(type, zValue);
}
+#endif /* _WIN32 */
/*
** The return value of winGetLastErrorMsg
@@ -2587,9 +2654,11 @@ static BOOL winLockFile(
ovlp.Offset = offsetLow;
ovlp.OffsetHigh = offsetHigh;
return osLockFileEx(*phFile, flags, 0, numBytesLow, numBytesHigh, &ovlp);
+#ifdef SQLITE_WIN32_HAS_ANSI
}else{
return osLockFile(*phFile, offsetLow, offsetHigh, numBytesLow,
numBytesHigh);
+#endif
}
#endif
}
@@ -2697,9 +2766,11 @@ static BOOL winUnlockFile(
ovlp.Offset = offsetLow;
ovlp.OffsetHigh = offsetHigh;
return osUnlockFileEx(*phFile, 0, numBytesLow, numBytesHigh, &ovlp);
+#ifdef SQLITE_WIN32_HAS_ANSI
}else{
return osUnlockFile(*phFile, offsetLow, offsetHigh, numBytesLow,
numBytesHigh);
+#endif
}
#endif
}
@@ -4113,14 +4184,91 @@ static int winLockSharedMemory(winShmNode *pShmNode, DWORD nMs){
** Convert a UTF-8 filename into whatever form the underlying
** operating system wants filenames in. Space to hold the result
** is obtained from malloc and must be freed by the calling
-** function.
+** function
+**
+** On Cygwin, 3 possible input forms are accepted:
+** - If the filename starts with "<drive>:/" or "<drive>:\",
+** it is converted to UTF-16 as-is.
+** - If the filename contains '/', it is assumed to be a
+** Cygwin absolute path, it is converted to a win32
+** absolute path in UTF-16.
+** - Otherwise it must be a filename only, the win32 filename
+** is returned in UTF-16.
+** Note: If the function cygwin_conv_path() fails, only
+** UTF-8 -> UTF-16 conversion will be done. This can only
+** happen when the file path >32k, in which case winUtf8ToUnicode()
+** will fail too.
*/
static void *winConvertFromUtf8Filename(const char *zFilename){
void *zConverted = 0;
if( osIsNT() ){
+#ifdef __CYGWIN__
+ int nChar;
+ LPWSTR zWideFilename;
+
+ if( osCygwin_conv_path && !(winIsDriveLetterAndColon(zFilename)
+ && winIsDirSep(zFilename[2])) ){
+ int nByte;
+ int convertflag = CCP_POSIX_TO_WIN_W;
+ if( !strchr(zFilename, '/') ) convertflag |= CCP_RELATIVE;
+ nByte = (int)osCygwin_conv_path(convertflag,
+ zFilename, 0, 0);
+ if( nByte>0 ){
+ zConverted = sqlite3MallocZero(nByte+12);
+ if ( zConverted==0 ){
+ return zConverted;
+ }
+ zWideFilename = zConverted;
+ /* Filenames should be prefixed, except when converted
+ * full path already starts with "\\?\". */
+ if( osCygwin_conv_path(convertflag, zFilename,
+ zWideFilename+4, nByte)==0 ){
+ if( (convertflag&CCP_RELATIVE) ){
+ memmove(zWideFilename, zWideFilename+4, nByte);
+ }else if( memcmp(zWideFilename+4, L"\\\\", 4) ){
+ memcpy(zWideFilename, L"\\\\?\\", 8);
+ }else if( zWideFilename[6]!='?' ){
+ memmove(zWideFilename+6, zWideFilename+4, nByte);
+ memcpy(zWideFilename, L"\\\\?\\UNC", 14);
+ }else{
+ memmove(zWideFilename, zWideFilename+4, nByte);
+ }
+ return zConverted;
+ }
+ sqlite3_free(zConverted);
+ }
+ }
+ nChar = osMultiByteToWideChar(CP_UTF8, 0, zFilename, -1, NULL, 0);
+ if( nChar==0 ){
+ return 0;
+ }
+ zWideFilename = sqlite3MallocZero( nChar*sizeof(WCHAR)+12 );
+ if( zWideFilename==0 ){
+ return 0;
+ }
+ nChar = osMultiByteToWideChar(CP_UTF8, 0, zFilename, -1,
+ zWideFilename, nChar);
+ if( nChar==0 ){
+ sqlite3_free(zWideFilename);
+ zWideFilename = 0;
+ }else if( nChar>MAX_PATH
+ && winIsDriveLetterAndColon(zFilename)
+ && winIsDirSep(zFilename[2]) ){
+ memmove(zWideFilename+4, zWideFilename, nChar*sizeof(WCHAR));
+ zWideFilename[2] = '\\';
+ memcpy(zWideFilename, L"\\\\?\\", 8);
+ }else if( nChar>MAX_PATH
+ && winIsDirSep(zFilename[0]) && winIsDirSep(zFilename[1])
+ && zFilename[2] != '?' ){
+ memmove(zWideFilename+6, zWideFilename, nChar*sizeof(WCHAR));
+ memcpy(zWideFilename, L"\\\\?\\UNC", 14);
+ }
+ zConverted = zWideFilename;
+#else
zConverted = winUtf8ToUnicode(zFilename);
+#endif /* __CYGWIN__ */
}
-#ifdef SQLITE_WIN32_HAS_ANSI
+#if defined(SQLITE_WIN32_HAS_ANSI) && defined(_WIN32)
else{
zConverted = winUtf8ToMbcs(zFilename, osAreFileApisANSI());
}
@@ -4949,7 +5097,7 @@ static winVfsAppData winNolockAppData = {
** sqlite3_vfs object.
*/
-#if defined(__CYGWIN__)
+#if 0 /* No longer necessary */
/*
** Convert a filename from whatever the underlying operating system
** supports for filenames into UTF-8. Space to hold the result is
@@ -4982,7 +5130,14 @@ static int winMakeEndInDirSep(int nBuf, char *zBuf){
if( winIsDirSep(zBuf[nLen-1]) ){
return 1;
}else if( nLen+1<nBuf ){
- zBuf[nLen] = winGetDirSep();
+ if( !osGetenv ){
+ zBuf[nLen] = winGetDirSep();
+ }else if( winIsDriveLetterAndColon(zBuf) && winIsDirSep(zBuf[2]) ){
+ zBuf[nLen] = '\\';
+ zBuf[2]='\\';
+ }else{
+ zBuf[nLen] = '/';
+ }
zBuf[nLen+1] = '\0';
return 1;
}
@@ -5009,7 +5164,7 @@ static int winTempDirDefined(void){
** The pointer returned in pzBuf must be freed via sqlite3_free().
*/
static int winGetTempname(sqlite3_vfs *pVfs, char **pzBuf){
- static char zChars[] =
+ static const char zChars[] =
"abcdefghijklmnopqrstuvwxyz"
"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
"0123456789";
@@ -5060,7 +5215,7 @@ static int winGetTempname(sqlite3_vfs *pVfs, char **pzBuf){
}
#if defined(__CYGWIN__)
- else{
+ else if( osGetenv!=NULL ){
static const char *azDirs[] = {
0, /* getenv("SQLITE_TMPDIR") */
0, /* getenv("TMPDIR") */
@@ -5076,11 +5231,11 @@ static int winGetTempname(sqlite3_vfs *pVfs, char **pzBuf){
unsigned int i;
const char *zDir = 0;
- if( !azDirs[0] ) azDirs[0] = getenv("SQLITE_TMPDIR");
- if( !azDirs[1] ) azDirs[1] = getenv("TMPDIR");
- if( !azDirs[2] ) azDirs[2] = getenv("TMP");
- if( !azDirs[3] ) azDirs[3] = getenv("TEMP");
- if( !azDirs[4] ) azDirs[4] = getenv("USERPROFILE");
+ if( !azDirs[0] ) azDirs[0] = osGetenv("SQLITE_TMPDIR");
+ if( !azDirs[1] ) azDirs[1] = osGetenv("TMPDIR");
+ if( !azDirs[2] ) azDirs[2] = osGetenv("TMP");
+ if( !azDirs[3] ) azDirs[3] = osGetenv("TEMP");
+ if( !azDirs[4] ) azDirs[4] = osGetenv("USERPROFILE");
for(i=0; i<sizeof(azDirs)/sizeof(azDirs[0]); zDir=azDirs[i++]){
void *zConverted;
if( zDir==0 ) continue;
@@ -5089,7 +5244,7 @@ static int winGetTempname(sqlite3_vfs *pVfs, char **pzBuf){
** it must be converted to a native Win32 path via the Cygwin API
** prior to using it.
*/
- if( winIsDriveLetterAndColon(zDir) ){
+ {
zConverted = winConvertFromUtf8Filename(zDir);
if( !zConverted ){
sqlite3_free(zBuf);
@@ -5102,6 +5257,7 @@ static int winGetTempname(sqlite3_vfs *pVfs, char **pzBuf){
break;
}
sqlite3_free(zConverted);
+#if 0 /* No longer necessary */
}else{
zConverted = sqlite3MallocZero( nMax+1 );
if( !zConverted ){
@@ -5109,8 +5265,8 @@ static int winGetTempname(sqlite3_vfs *pVfs, char **pzBuf){
OSTRACE(("TEMP-FILENAME rc=SQLITE_IOERR_NOMEM\n"));
return SQLITE_IOERR_NOMEM_BKPT;
}
- if( cygwin_conv_path(
- osIsNT() ? CCP_POSIX_TO_WIN_W : CCP_POSIX_TO_WIN_A, zDir,
+ if( osCygwin_conv_path(
+ CCP_POSIX_TO_WIN_W, zDir,
zConverted, nMax+1)<0 ){
sqlite3_free(zConverted);
sqlite3_free(zBuf);
@@ -5136,10 +5292,13 @@ static int winGetTempname(sqlite3_vfs *pVfs, char **pzBuf){
break;
}
sqlite3_free(zConverted);
+#endif /* No longer necessary */
}
}
}
-#elif !SQLITE_OS_WINRT && !defined(__CYGWIN__)
+#endif
+
+#if !SQLITE_OS_WINRT && defined(_WIN32)
else if( osIsNT() ){
char *zMulti;
LPWSTR zWidePath = sqlite3MallocZero( nMax*sizeof(WCHAR) );
@@ -5263,7 +5422,7 @@ static int winIsDir(const void *zConverted){
return 0; /* Invalid name? */
}
attr = sAttrData.dwFileAttributes;
-#if SQLITE_OS_WINCE==0
+#if SQLITE_OS_WINCE==0 && defined(SQLITE_WIN32_HAS_ANSI)
}else{
attr = osGetFileAttributesA((char*)zConverted);
#endif
@@ -5815,6 +5974,7 @@ static BOOL winIsDriveLetterAndColon(
return ( sqlite3Isalpha(zPathname[0]) && zPathname[1]==':' );
}
+#ifdef _WIN32
/*
** Returns non-zero if the specified path name should be used verbatim. If
** non-zero is returned from this function, the calling function must simply
@@ -5851,6 +6011,70 @@ static BOOL winIsVerbatimPathname(
*/
return FALSE;
}
+#endif /* _WIN32 */
+
+#ifdef __CYGWIN__
+/*
+** Simplify a filename into its canonical form
+** by making the following changes:
+**
+** * convert any '/' to '\' (win32) or reverse (Cygwin)
+** * removing any trailing and duplicate / (except for UNC paths)
+** * convert /./ into just /
+**
+** Changes are made in-place. Return the new name length.
+**
+** The original filename is in z[0..]. If the path is shortened,
+** no-longer used bytes will be written by '\0'.
+*/
+static void winSimplifyName(char *z){
+ int i, j;
+ for(i=j=0; z[i]; ++i){
+ if( winIsDirSep(z[i]) ){
+#if !defined(SQLITE_TEST)
+ /* Some test-cases assume that "./foo" and "foo" are different */
+ if( z[i+1]=='.' && winIsDirSep(z[i+2]) ){
+ ++i;
+ continue;
+ }
+#endif
+ if( !z[i+1] || (winIsDirSep(z[i+1]) && (i!=0)) ){
+ continue;
+ }
+ z[j++] = osGetenv?'/':'\\';
+ }else{
+ z[j++] = z[i];
+ }
+ }
+ while(j<i) z[j++] = '\0';
+}
+
+#define SQLITE_MAX_SYMLINKS 100
+
+static int mkFullPathname(
+ const char *zPath, /* Input path */
+ char *zOut, /* Output buffer */
+ int nOut /* Allocated size of buffer zOut */
+){
+ int nPath = sqlite3Strlen30(zPath);
+ int iOff = 0;
+ if( zPath[0]!='/' ){
+ if( osGetcwd(zOut, nOut-2)==0 ){
+ return winLogError(SQLITE_CANTOPEN_BKPT, (DWORD)osErrno, "getcwd", zPath);
+ }
+ iOff = sqlite3Strlen30(zOut);
+ zOut[iOff++] = '/';
+ }
+ if( (iOff+nPath+1)>nOut ){
+ /* SQLite assumes that xFullPathname() nul-terminates the output buffer
+ ** even if it returns an error. */
+ zOut[iOff] = '\0';
+ return SQLITE_CANTOPEN_BKPT;
+ }
+ sqlite3_snprintf(nOut-iOff, &zOut[iOff], "%s", zPath);
+ return SQLITE_OK;
+}
+#endif /* __CYGWIN__ */
/*
** Turn a relative pathname into a full pathname. Write the full
@@ -5863,8 +6087,8 @@ static int winFullPathnameNoMutex(
int nFull, /* Size of output buffer in bytes */
char *zFull /* Output buffer */
){
-#if !SQLITE_OS_WINCE && !SQLITE_OS_WINRT && !defined(__CYGWIN__)
- DWORD nByte;
+#if !SQLITE_OS_WINCE && !SQLITE_OS_WINRT
+ int nByte;
void *zConverted;
char *zOut;
#endif
@@ -5877,64 +6101,110 @@ static int winFullPathnameNoMutex(
zRelative++;
}
-#if defined(__CYGWIN__)
+ SimulateIOError( return SQLITE_ERROR );
+
+#ifdef __CYGWIN__
+ if( osGetcwd ){
+ zFull[nFull-1] = '\0';
+ if( !winIsDriveLetterAndColon(zRelative) || !winIsDirSep(zRelative[2]) ){
+ int rc = SQLITE_OK;
+ int nLink = 1; /* Number of symbolic links followed so far */
+ const char *zIn = zRelative; /* Input path for each iteration of loop */
+ char *zDel = 0;
+ struct stat buf;
+
+ UNUSED_PARAMETER(pVfs);
+
+ do {
+ /* Call lstat() on path zIn. Set bLink to true if the path is a symbolic
+ ** link, or false otherwise. */
+ int bLink = 0;
+ if( osLstat && osReadlink ) {
+ if( osLstat(zIn, &buf)!=0 ){
+ int myErrno = osErrno;
+ if( myErrno!=ENOENT ){
+ rc = winLogError(SQLITE_CANTOPEN_BKPT, (DWORD)myErrno, "lstat", zIn);
+ }
+ }else{
+ bLink = ((buf.st_mode & 0170000) == 0120000);
+ }
+
+ if( bLink ){
+ if( zDel==0 ){
+ zDel = sqlite3MallocZero(nFull);
+ if( zDel==0 ) rc = SQLITE_NOMEM;
+ }else if( ++nLink>SQLITE_MAX_SYMLINKS ){
+ rc = SQLITE_CANTOPEN_BKPT;
+ }
+
+ if( rc==SQLITE_OK ){
+ nByte = osReadlink(zIn, zDel, nFull-1);
+ if( nByte ==(DWORD)-1 ){
+ rc = winLogError(SQLITE_CANTOPEN_BKPT, (DWORD)osErrno, "readlink", zIn);
+ }else{
+ if( zDel[0]!='/' ){
+ int n;
+ for(n = sqlite3Strlen30(zIn); n>0 && zIn[n-1]!='/'; n--);
+ if( nByte+n+1>nFull ){
+ rc = SQLITE_CANTOPEN_BKPT;
+ }else{
+ memmove(&zDel[n], zDel, nByte+1);
+ memcpy(zDel, zIn, n);
+ nByte += n;
+ }
+ }
+ zDel[nByte] = '\0';
+ }
+ }
+
+ zIn = zDel;
+ }
+ }
+
+ assert( rc!=SQLITE_OK || zIn!=zFull || zIn[0]=='/' );
+ if( rc==SQLITE_OK && zIn!=zFull ){
+ rc = mkFullPathname(zIn, zFull, nFull);
+ }
+ if( bLink==0 ) break;
+ zIn = zFull;
+ }while( rc==SQLITE_OK );
+
+ sqlite3_free(zDel);
+ winSimplifyName(zFull);
+ return rc;
+ }
+ }
+#endif /* __CYGWIN__ */
+#if 0 /* This doesn't work correctly at all! See:
+ <https://marc.info/?l=sqlite-users&m=139299149416314&w=2>
+*/
SimulateIOError( return SQLITE_ERROR );
UNUSED_PARAMETER(nFull);
assert( nFull>=pVfs->mxPathname );
- if ( sqlite3_data_directory && !winIsVerbatimPathname(zRelative) ){
- /*
- ** NOTE: We are dealing with a relative path name and the data
- ** directory has been set. Therefore, use it as the basis
- ** for converting the relative path name to an absolute
- ** one by prepending the data directory and a slash.
- */
- char *zOut = sqlite3MallocZero( 1+(u64)pVfs->mxPathname );
- if( !zOut ){
- return SQLITE_IOERR_NOMEM_BKPT;
- }
- if( cygwin_conv_path(
- (osIsNT() ? CCP_POSIX_TO_WIN_W : CCP_POSIX_TO_WIN_A) |
- CCP_RELATIVE, zRelative, zOut, pVfs->mxPathname+1)<0 ){
- sqlite3_free(zOut);
- return winLogError(SQLITE_CANTOPEN_CONVPATH, (DWORD)errno,
- "winFullPathname1", zRelative);
- }else{
- char *zUtf8 = winConvertToUtf8Filename(zOut);
- if( !zUtf8 ){
- sqlite3_free(zOut);
- return SQLITE_IOERR_NOMEM_BKPT;
- }
- sqlite3_snprintf(MIN(nFull, pVfs->mxPathname), zFull, "%s%c%s",
- sqlite3_data_directory, winGetDirSep(), zUtf8);
- sqlite3_free(zUtf8);
- sqlite3_free(zOut);
- }
+ char *zOut = sqlite3MallocZero( pVfs->mxPathname+1 );
+ if( !zOut ){
+ return SQLITE_IOERR_NOMEM_BKPT;
+ }
+ if( osCygwin_conv_path(
+ CCP_POSIX_TO_WIN_W,
+ zRelative, zOut, pVfs->mxPathname+1)<0 ){
+ sqlite3_free(zOut);
+ return winLogError(SQLITE_CANTOPEN_CONVPATH, (DWORD)errno,
+ "winFullPathname2", zRelative);
}else{
- char *zOut = sqlite3MallocZero( pVfs->mxPathname+1 );
- if( !zOut ){
- return SQLITE_IOERR_NOMEM_BKPT;
- }
- if( cygwin_conv_path(
- (osIsNT() ? CCP_POSIX_TO_WIN_W : CCP_POSIX_TO_WIN_A),
- zRelative, zOut, pVfs->mxPathname+1)<0 ){
- sqlite3_free(zOut);
- return winLogError(SQLITE_CANTOPEN_CONVPATH, (DWORD)errno,
- "winFullPathname2", zRelative);
- }else{
- char *zUtf8 = winConvertToUtf8Filename(zOut);
- if( !zUtf8 ){
- sqlite3_free(zOut);
- return SQLITE_IOERR_NOMEM_BKPT;
- }
- sqlite3_snprintf(MIN(nFull, pVfs->mxPathname), zFull, "%s", zUtf8);
- sqlite3_free(zUtf8);
+ char *zUtf8 = winConvertToUtf8Filename(zOut);
+ if( !zUtf8 ){
sqlite3_free(zOut);
+ return SQLITE_IOERR_NOMEM_BKPT;
}
+ sqlite3_snprintf(MIN(nFull, pVfs->mxPathname), zFull, "%s", zUtf8);
+ sqlite3_free(zUtf8);
+ sqlite3_free(zOut);
}
return SQLITE_OK;
#endif
-#if (SQLITE_OS_WINCE || SQLITE_OS_WINRT) && !defined(__CYGWIN__)
+#if (SQLITE_OS_WINCE || SQLITE_OS_WINRT) && defined(_WIN32)
SimulateIOError( return SQLITE_ERROR );
/* WinCE has no concept of a relative pathname, or so I am told. */
/* WinRT has no way to convert a relative path to an absolute one. */
@@ -5953,7 +6223,8 @@ static int winFullPathnameNoMutex(
return SQLITE_OK;
#endif
-#if !SQLITE_OS_WINCE && !SQLITE_OS_WINRT && !defined(__CYGWIN__)
+#if !SQLITE_OS_WINCE && !SQLITE_OS_WINRT
+#if defined(_WIN32)
/* It's odd to simulate an io-error here, but really this is just
** using the io-error infrastructure to test that SQLite handles this
** function failing. This function could fail if, for example, the
@@ -5971,6 +6242,7 @@ static int winFullPathnameNoMutex(
sqlite3_data_directory, winGetDirSep(), zRelative);
return SQLITE_OK;
}
+#endif
zConverted = winConvertFromUtf8Filename(zRelative);
if( zConverted==0 ){
return SQLITE_IOERR_NOMEM_BKPT;
@@ -5983,12 +6255,13 @@ static int winFullPathnameNoMutex(
return winLogError(SQLITE_CANTOPEN_FULLPATH, osGetLastError(),
"winFullPathname1", zRelative);
}
- zTemp = sqlite3MallocZero( nByte*sizeof(zTemp[0]) + 3*sizeof(zTemp[0]) );
+ nByte += 3;
+ zTemp = sqlite3MallocZero( nByte*sizeof(zTemp[0]) );
if( zTemp==0 ){
sqlite3_free(zConverted);
return SQLITE_IOERR_NOMEM_BKPT;
}
- nByte = osGetFullPathNameW((LPCWSTR)zConverted, nByte+3, zTemp, 0);
+ nByte = osGetFullPathNameW((LPCWSTR)zConverted, nByte, zTemp, 0);
if( nByte==0 ){
sqlite3_free(zConverted);
sqlite3_free(zTemp);
@@ -6026,7 +6299,26 @@ static int winFullPathnameNoMutex(
}
#endif
if( zOut ){
+#ifdef __CYGWIN__
+ if( memcmp(zOut, "\\\\?\\", 4) ){
+ sqlite3_snprintf(MIN(nFull, pVfs->mxPathname), zFull, "%s", zOut);
+ }else if( memcmp(zOut+4, "UNC\\", 4) ){
+ sqlite3_snprintf(MIN(nFull, pVfs->mxPathname), zFull, "%s", zOut+4);
+ }else{
+ char *p = zOut+6;
+ *p = '\\';
+ if( osGetcwd ){
+ /* On Cygwin, UNC paths use forward slashes */
+ while( *p ){
+ if( *p=='\\' ) *p = '/';
+ ++p;
+ }
+ }
+ sqlite3_snprintf(MIN(nFull, pVfs->mxPathname), zFull, "%s", zOut+6);
+ }
+#else
sqlite3_snprintf(MIN(nFull, pVfs->mxPathname), zFull, "%s", zOut);
+#endif /* __CYGWIN__ */
sqlite3_free(zOut);
return SQLITE_OK;
}else{
@@ -6056,7 +6348,9 @@ static int winFullPathname(
*/
static void *winDlOpen(sqlite3_vfs *pVfs, const char *zFilename){
HANDLE h;
-#if defined(__CYGWIN__)
+#if 0 /* This doesn't work correctly at all! See:
+ <https://marc.info/?l=sqlite-users&m=139299149416314&w=2>
+*/
int nFull = pVfs->mxPathname+1;
char *zFull = sqlite3MallocZero( nFull );
void *zConverted = 0;
@@ -6423,7 +6717,7 @@ int sqlite3_os_init(void){
/* Double-check that the aSyscall[] array has been constructed
** correctly. See ticket [bb3a86e890c8e96ab] */
- assert( ArraySize(aSyscall)==82 );
+ assert( ArraySize(aSyscall)==89 );
/* get memory map allocation granularity */
memset(&winSysInfo, 0, sizeof(SYSTEM_INFO));
diff --git a/src/os_win.h b/src/os_win.h
index 27714ed07..a0845f003 100644
--- a/src/os_win.h
+++ b/src/os_win.h
@@ -22,6 +22,8 @@
#ifdef __CYGWIN__
# include <sys/cygwin.h>
+# include <sys/stat.h> /* amalgamator: dontcache */
+# include <unistd.h> /* amalgamator: dontcache */
# include <errno.h> /* amalgamator: dontcache */
#endif
diff --git a/src/tclsqlite.c b/src/tclsqlite.c
index c619ffca4..dfc2ecfb4 100644
--- a/src/tclsqlite.c
+++ b/src/tclsqlite.c
@@ -76,7 +76,9 @@
# define SQLITE_PTRSIZE 8
# endif
# endif /* SQLITE_PTRSIZE */
-# if defined(HAVE_STDINT_H)
+# if defined(HAVE_STDINT_H) || (defined(__STDC_VERSION__) && \
+ (__STDC_VERSION__ >= 199901L))
+# include <stdint.h>
typedef uintptr_t uptr;
# elif SQLITE_PTRSIZE==4
typedef unsigned int uptr;
diff --git a/src/test1.c b/src/test1.c
index e45a05fe4..f86fef36f 100644
--- a/src/test1.c
+++ b/src/test1.c
@@ -102,7 +102,7 @@ static int SQLITE_TCLAPI get_sqlite_pointer(
}
p = (struct SqliteDb*)cmdInfo.objClientData;
sqlite3_snprintf(sizeof(zBuf), zBuf, "%p", p->db);
- Tcl_AppendResult(interp, zBuf, 0);
+ Tcl_AppendResult(interp, zBuf, NULL);
return TCL_OK;
}
@@ -153,7 +153,7 @@ int sqlite3TestErrCode(Tcl_Interp *interp, sqlite3 *db, int rc){
"error code %s (%d) does not match sqlite3_errcode %s (%d)",
t1ErrorName(rc), rc, t1ErrorName(r2), r2);
Tcl_ResetResult(interp);
- Tcl_AppendResult(interp, zBuf, 0);
+ Tcl_AppendResult(interp, zBuf, NULL);
return 1;
}
return 0;
@@ -504,7 +504,7 @@ static int SQLITE_TCLAPI test_mprintf_z(
for(i=2; i<argc && (i==2 || zResult); i++){
zResult = sqlite3_mprintf("%z%s%s", zResult, argv[1], argv[i]);
}
- Tcl_AppendResult(interp, zResult, 0);
+ Tcl_AppendResult(interp, zResult, NULL);
sqlite3_free(zResult);
return TCL_OK;
}
@@ -552,7 +552,7 @@ static int SQLITE_TCLAPI test_snprintf_int(
if( n>sizeof(zStr) ) n = sizeof(zStr);
sqlite3_snprintf(sizeof(zStr), zStr, "abcdefghijklmnopqrstuvwxyz");
sqlite3_snprintf(n, zStr, zFormat, a1);
- Tcl_AppendResult(interp, zStr, 0);
+ Tcl_AppendResult(interp, zStr, NULL);
return TCL_OK;
}
@@ -639,12 +639,12 @@ static int SQLITE_TCLAPI test_last_rowid(
char zBuf[30];
if( argc!=2 ){
- Tcl_AppendResult(interp, "wrong # args: should be \"", argv[0], " DB\"", 0);
+ Tcl_AppendResult(interp, "wrong # args: should be \"", argv[0], " DB\"", NULL);
return TCL_ERROR;
}
if( getDbPointer(interp, argv[1], &db) ) return TCL_ERROR;
sqlite3_snprintf(sizeof(zBuf), zBuf, "%lld", sqlite3_last_insert_rowid(db));
- Tcl_AppendResult(interp, zBuf, 0);
+ Tcl_AppendResult(interp, zBuf, NULL);
return SQLITE_OK;
}
@@ -1385,7 +1385,7 @@ static int SQLITE_TCLAPI sqlite3_mprintf_int(
if( Tcl_GetInt(interp, argv[i], &a[i-2]) ) return TCL_ERROR;
}
z = sqlite3_mprintf(argv[1], a[0], a[1], a[2]);
- Tcl_AppendResult(interp, z, 0);
+ Tcl_AppendResult(interp, z, NULL);
sqlite3_free(z);
return TCL_OK;
}
@@ -1411,12 +1411,12 @@ static int SQLITE_TCLAPI sqlite3_mprintf_int64(
}
for(i=2; i<5; i++){
if( sqlite3Atoi64(argv[i], &a[i-2], sqlite3Strlen30(argv[i]), SQLITE_UTF8) ){
- Tcl_AppendResult(interp, "argument is not a valid 64-bit integer", 0);
+ Tcl_AppendResult(interp, "argument is not a valid 64-bit integer", NULL);
return TCL_ERROR;
}
}
z = sqlite3_mprintf(argv[1], a[0], a[1], a[2]);
- Tcl_AppendResult(interp, z, 0);
+ Tcl_AppendResult(interp, z, NULL);
sqlite3_free(z);
return TCL_OK;
}
@@ -1449,7 +1449,7 @@ static int SQLITE_TCLAPI sqlite3_mprintf_long(
a[i-2] &= (((u64)1)<<(sizeof(int)*8))-1;
}
z = sqlite3_mprintf(argv[1], a[0], a[1], a[2]);
- Tcl_AppendResult(interp, z, 0);
+ Tcl_AppendResult(interp, z, NULL);
sqlite3_free(z);
return TCL_OK;
}
@@ -1476,7 +1476,7 @@ static int SQLITE_TCLAPI sqlite3_mprintf_str(
if( Tcl_GetInt(interp, argv[i], &a[i-2]) ) return TCL_ERROR;
}
z = sqlite3_mprintf(argv[1], a[0], a[1], argc>4 ? argv[4] : NULL);
- Tcl_AppendResult(interp, z, 0);
+ Tcl_AppendResult(interp, z, NULL);
sqlite3_free(z);
return TCL_OK;
}
@@ -1502,7 +1502,7 @@ static int SQLITE_TCLAPI sqlite3_snprintf_str(
}
if( Tcl_GetInt(interp, argv[1], &n) ) return TCL_ERROR;
if( n<0 ){
- Tcl_AppendResult(interp, "N must be non-negative", 0);
+ Tcl_AppendResult(interp, "N must be non-negative", NULL);
return TCL_ERROR;
}
for(i=3; i<5; i++){
@@ -1510,7 +1510,7 @@ static int SQLITE_TCLAPI sqlite3_snprintf_str(
}
z = sqlite3_malloc( n+1 );
sqlite3_snprintf(n, z, argv[2], a[0], a[1], argc>4 ? argv[5] : NULL);
- Tcl_AppendResult(interp, z, 0);
+ Tcl_AppendResult(interp, z, NULL);
sqlite3_free(z);
return TCL_OK;
}
@@ -1539,7 +1539,7 @@ static int SQLITE_TCLAPI sqlite3_mprintf_double(
}
if( Tcl_GetDouble(interp, argv[4], &r) ) return TCL_ERROR;
z = sqlite3_mprintf(argv[1], a[0], a[1], r);
- Tcl_AppendResult(interp, z, 0);
+ Tcl_AppendResult(interp, z, NULL);
sqlite3_free(z);
return TCL_OK;
}
@@ -1569,7 +1569,7 @@ static int SQLITE_TCLAPI sqlite3_mprintf_scaled(
if( Tcl_GetDouble(interp, argv[i], &r[i-2]) ) return TCL_ERROR;
}
z = sqlite3_mprintf(argv[1], r[0]*r[1]);
- Tcl_AppendResult(interp, z, 0);
+ Tcl_AppendResult(interp, z, NULL);
sqlite3_free(z);
return TCL_OK;
}
@@ -1594,7 +1594,7 @@ static int SQLITE_TCLAPI sqlite3_mprintf_stronly(
return TCL_ERROR;
}
z = sqlite3_mprintf(argv[1], argv[2]);
- Tcl_AppendResult(interp, z, 0);
+ Tcl_AppendResult(interp, z, NULL);
sqlite3_free(z);
return TCL_OK;
}
@@ -1621,14 +1621,14 @@ static int SQLITE_TCLAPI sqlite3_mprintf_hexdouble(
return TCL_ERROR;
}
if( sscanf(argv[2], "%08x%08x", &x2, &x1)!=2 ){
- Tcl_AppendResult(interp, "2nd argument should be 16-characters of hex", 0);
+ Tcl_AppendResult(interp, "2nd argument should be 16-characters of hex", NULL);
return TCL_ERROR;
}
d = x2;
d = (d<<32) + x1;
memcpy(&r, &d, sizeof(r));
z = sqlite3_mprintf(argv[1], r);
- Tcl_AppendResult(interp, z, 0);
+ Tcl_AppendResult(interp, z, NULL);
sqlite3_free(z);
return TCL_OK;
}
@@ -1746,7 +1746,7 @@ static int SQLITE_TCLAPI test_table_column_metadata(
&zDatatype, &zCollseq, &notnull, &primarykey, &autoincrement);
if( rc!=SQLITE_OK ){
- Tcl_AppendResult(interp, sqlite3_errmsg(db), 0);
+ Tcl_AppendResult(interp, sqlite3_errmsg(db), NULL);
return TCL_ERROR;
}
@@ -2023,7 +2023,7 @@ static int SQLITE_TCLAPI test_create_function_v2(
);
if( rc!=SQLITE_OK ){
Tcl_ResetResult(interp);
- Tcl_AppendResult(interp, sqlite3ErrName(rc), 0);
+ Tcl_AppendResult(interp, sqlite3ErrName(rc), NULL);
return TCL_ERROR;
}
return TCL_OK;
@@ -2212,7 +2212,7 @@ static int SQLITE_TCLAPI test_register_func(
rc = sqlite3_create_function(db, argv[2], -1, SQLITE_UTF8, 0,
testFunc, 0, 0);
if( rc!=0 ){
- Tcl_AppendResult(interp, sqlite3ErrStr(rc), 0);
+ Tcl_AppendResult(interp, sqlite3ErrStr(rc), NULL);
return TCL_ERROR;
}
if( sqlite3TestErrCode(interp, db, rc) ) return TCL_ERROR;
@@ -2773,7 +2773,7 @@ static int SQLITE_TCLAPI test_snapshot_open_blob(
zName = Tcl_GetString(objv[2]);
pBlob = Tcl_GetByteArrayFromObj(objv[3], &nBlob);
if( nBlob!=sizeof(sqlite3_snapshot) ){
- Tcl_AppendResult(interp, "bad SNAPSHOT", 0);
+ Tcl_AppendResult(interp, "bad SNAPSHOT", NULL);
return TCL_ERROR;
}
rc = sqlite3_snapshot_open(db, zName, (sqlite3_snapshot*)pBlob);
@@ -2810,7 +2810,7 @@ static int SQLITE_TCLAPI test_snapshot_cmp_blob(
p2 = Tcl_GetByteArrayFromObj(objv[2], &n2);
if( n1!=sizeof(sqlite3_snapshot) || n1!=n2 ){
- Tcl_AppendResult(interp, "bad SNAPSHOT", 0);
+ Tcl_AppendResult(interp, "bad SNAPSHOT", NULL);
return TCL_ERROR;
}
@@ -2867,7 +2867,7 @@ static int SQLITE_TCLAPI test_atomic_batch_write(
rc = sqlite3_open(zFile, &db);
if( rc!=SQLITE_OK ){
- Tcl_AppendResult(interp, sqlite3_errmsg(db), 0);
+ Tcl_AppendResult(interp, sqlite3_errmsg(db), NULL);
sqlite3_close(db);
return TCL_ERROR;
}
@@ -2909,7 +2909,7 @@ static int SQLITE_TCLAPI test_next_stmt(
pStmt = sqlite3_next_stmt(db, pStmt);
if( pStmt ){
if( sqlite3TestMakePointerStr(interp, zBuf, pStmt) ) return TCL_ERROR;
- Tcl_AppendResult(interp, zBuf, 0);
+ Tcl_AppendResult(interp, zBuf, NULL);
}
return TCL_OK;
}
@@ -3211,7 +3211,7 @@ static int SQLITE_TCLAPI test_bind(
if( rc ){
char zBuf[50];
sqlite3_snprintf(sizeof(zBuf), zBuf, "(%d) ", rc);
- Tcl_AppendResult(interp, zBuf, sqlite3ErrStr(rc), 0);
+ Tcl_AppendResult(interp, zBuf, sqlite3ErrStr(rc), NULL);
return TCL_ERROR;
}
return TCL_OK;
@@ -3343,14 +3343,14 @@ static int SQLITE_TCLAPI test_collate(
if( sqlite3TestErrCode(interp, db, rc) ) return TCL_ERROR;
if( rc!=SQLITE_OK ){
- Tcl_AppendResult(interp, sqlite3ErrName(rc), 0);
+ Tcl_AppendResult(interp, sqlite3ErrName(rc), NULL);
return TCL_ERROR;
}
return TCL_OK;
bad_args:
Tcl_AppendResult(interp, "wrong # args: should be \"",
- Tcl_GetStringFromObj(objv[0], 0), " <DB> <utf8> <utf16le> <utf16be>", 0);
+ Tcl_GetStringFromObj(objv[0], 0), " <DB> <utf8> <utf16le> <utf16be>", NULL);
return TCL_ERROR;
}
@@ -3629,7 +3629,7 @@ static int SQLITE_TCLAPI test_function(
return TCL_OK;
bad_args:
Tcl_AppendResult(interp, "wrong # args: should be \"",
- Tcl_GetStringFromObj(objv[0], 0), " <DB> <utf8> <utf16le> <utf16be>", 0);
+ Tcl_GetStringFromObj(objv[0], 0), " <DB> <utf8> <utf16le> <utf16be>", NULL);
#endif /* SQLITE_OMIT_UTF16 */
return TCL_ERROR;
}
@@ -3750,7 +3750,7 @@ static int SQLITE_TCLAPI test_bind_zeroblob64(
rc = sqlite3_bind_zeroblob64(pStmt, idx, n);
if( sqlite3TestErrCode(interp, StmtToDb(pStmt), rc) ) return TCL_ERROR;
if( rc!=SQLITE_OK ){
- Tcl_AppendResult(interp, sqlite3ErrName(rc), 0);
+ Tcl_AppendResult(interp, sqlite3ErrName(rc), NULL);
return TCL_ERROR;
}
@@ -3777,7 +3777,7 @@ static int SQLITE_TCLAPI test_bind_int(
if( objc!=4 ){
Tcl_AppendResult(interp, "wrong # args: should be \"",
- Tcl_GetStringFromObj(objv[0], 0), " STMT N VALUE", 0);
+ Tcl_GetStringFromObj(objv[0], 0), " STMT N VALUE", NULL);
return TCL_ERROR;
}
@@ -3954,7 +3954,7 @@ static int SQLITE_TCLAPI test_bind_int64(
if( objc!=4 ){
Tcl_AppendResult(interp, "wrong # args: should be \"",
- Tcl_GetStringFromObj(objv[0], 0), " STMT N VALUE", 0);
+ Tcl_GetStringFromObj(objv[0], 0), " STMT N VALUE", NULL);
return TCL_ERROR;
}
@@ -4010,7 +4010,7 @@ static int SQLITE_TCLAPI test_bind_double(
if( objc!=4 ){
Tcl_AppendResult(interp, "wrong # args: should be \"",
- Tcl_GetStringFromObj(objv[0], 0), " STMT N VALUE", 0);
+ Tcl_GetStringFromObj(objv[0], 0), " STMT N VALUE", NULL);
return TCL_ERROR;
}
@@ -4067,7 +4067,7 @@ static int SQLITE_TCLAPI test_bind_null(
if( objc!=3 ){
Tcl_AppendResult(interp, "wrong # args: should be \"",
- Tcl_GetStringFromObj(objv[0], 0), " STMT N", 0);
+ Tcl_GetStringFromObj(objv[0], 0), " STMT N", NULL);
return TCL_ERROR;
}
@@ -4107,7 +4107,7 @@ static int SQLITE_TCLAPI test_bind_text(
if( objc!=5 ){
Tcl_AppendResult(interp, "wrong # args: should be \"",
- Tcl_GetStringFromObj(objv[0], 0), " STMT N VALUE BYTES", 0);
+ Tcl_GetStringFromObj(objv[0], 0), " STMT N VALUE BYTES", NULL);
return TCL_ERROR;
}
@@ -4167,7 +4167,7 @@ static int SQLITE_TCLAPI test_bind_text16(
if( objc!=5 && objc!=6){
Tcl_AppendResult(interp, "wrong # args: should be \"",
- Tcl_GetStringFromObj(objv[0], 0), " STMT N VALUE BYTES", 0);
+ Tcl_GetStringFromObj(objv[0], 0), " STMT N VALUE BYTES", NULL);
return TCL_ERROR;
}
@@ -4189,7 +4189,7 @@ static int SQLITE_TCLAPI test_bind_text16(
free(toFree);
if( sqlite3TestErrCode(interp, StmtToDb(pStmt), rc) ) return TCL_ERROR;
if( rc!=SQLITE_OK ){
- Tcl_AppendResult(interp, sqlite3ErrName(rc), 0);
+ Tcl_AppendResult(interp, sqlite3ErrName(rc), NULL);
return TCL_ERROR;
}
@@ -4220,7 +4220,7 @@ static int SQLITE_TCLAPI test_bind_blob(
if( objc!=5 && objc!=6 ){
Tcl_AppendResult(interp, "wrong # args: should be \"",
- Tcl_GetStringFromObj(objv[0], 0), " STMT N DATA BYTES", 0);
+ Tcl_GetStringFromObj(objv[0], 0), " STMT N DATA BYTES", NULL);
return TCL_ERROR;
}
@@ -4718,12 +4718,12 @@ static int SQLITE_TCLAPI test_ex_errcode(
if( objc!=2 ){
Tcl_AppendResult(interp, "wrong # args: should be \"",
- Tcl_GetString(objv[0]), " DB", 0);
+ Tcl_GetString(objv[0]), " DB", NULL);
return TCL_ERROR;
}
if( getDbPointer(interp, Tcl_GetString(objv[1]), &db) ) return TCL_ERROR;
rc = sqlite3_extended_errcode(db);
- Tcl_AppendResult(interp, (char *)t1ErrorName(rc), 0);
+ Tcl_AppendResult(interp, (char *)t1ErrorName(rc), NULL);
return TCL_OK;
}
@@ -4745,12 +4745,12 @@ static int SQLITE_TCLAPI test_errcode(
if( objc!=2 ){
Tcl_AppendResult(interp, "wrong # args: should be \"",
- Tcl_GetString(objv[0]), " DB", 0);
+ Tcl_GetString(objv[0]), " DB", NULL);
return TCL_ERROR;
}
if( getDbPointer(interp, Tcl_GetString(objv[1]), &db) ) return TCL_ERROR;
rc = sqlite3_errcode(db);
- Tcl_AppendResult(interp, (char *)t1ErrorName(rc), 0);
+ Tcl_AppendResult(interp, (char *)t1ErrorName(rc), NULL);
return TCL_OK;
}
@@ -4771,7 +4771,7 @@ static int SQLITE_TCLAPI test_errmsg(
if( objc!=2 ){
Tcl_AppendResult(interp, "wrong # args: should be \"",
- Tcl_GetString(objv[0]), " DB", 0);
+ Tcl_GetString(objv[0]), " DB", NULL);
return TCL_ERROR;
}
if( getDbPointer(interp, Tcl_GetString(objv[1]), &db) ) return TCL_ERROR;
@@ -4799,7 +4799,7 @@ static int SQLITE_TCLAPI test_error_offset(
if( objc!=2 ){
Tcl_AppendResult(interp, "wrong # args: should be \"",
- Tcl_GetString(objv[0]), " DB", 0);
+ Tcl_GetString(objv[0]), " DB", NULL);
return TCL_ERROR;
}
if( getDbPointer(interp, Tcl_GetString(objv[1]), &db) ) return TCL_ERROR;
@@ -4831,7 +4831,7 @@ static int SQLITE_TCLAPI test_errmsg16(
if( objc!=2 ){
Tcl_AppendResult(interp, "wrong # args: should be \"",
- Tcl_GetString(objv[0]), " DB", 0);
+ Tcl_GetString(objv[0]), " DB", NULL);
return TCL_ERROR;
}
if( getDbPointer(interp, Tcl_GetString(objv[1]), &db) ) return TCL_ERROR;
@@ -4870,7 +4870,7 @@ static int SQLITE_TCLAPI test_prepare(
if( objc!=5 && objc!=4 ){
Tcl_AppendResult(interp, "wrong # args: should be \"",
- Tcl_GetString(objv[0]), " DB sql bytes ?tailvar?", 0);
+ Tcl_GetString(objv[0]), " DB sql bytes ?tailvar?", NULL);
return TCL_ERROR;
}
if( getDbPointer(interp, Tcl_GetString(objv[1]), &db) ) return TCL_ERROR;
@@ -4892,13 +4892,13 @@ static int SQLITE_TCLAPI test_prepare(
if( rc!=SQLITE_OK ){
assert( pStmt==0 );
sqlite3_snprintf(sizeof(zBuf), zBuf, "(%d) ", rc);
- Tcl_AppendResult(interp, zBuf, sqlite3_errmsg(db), 0);
+ Tcl_AppendResult(interp, zBuf, sqlite3_errmsg(db), NULL);
return TCL_ERROR;
}
if( pStmt ){
if( sqlite3TestMakePointerStr(interp, zBuf, pStmt) ) return TCL_ERROR;
- Tcl_AppendResult(interp, zBuf, 0);
+ Tcl_AppendResult(interp, zBuf, NULL);
}
return TCL_OK;
}
@@ -4929,7 +4929,7 @@ static int SQLITE_TCLAPI test_prepare_v2(
if( objc!=5 && objc!=4 ){
Tcl_AppendResult(interp, "wrong # args: should be \"",
- Tcl_GetString(objv[0]), " DB sql bytes tailvar", 0);
+ Tcl_GetString(objv[0]), " DB sql bytes tailvar", NULL);
return TCL_ERROR;
}
if( getDbPointer(interp, Tcl_GetString(objv[1]), &db) ) return TCL_ERROR;
@@ -4966,13 +4966,13 @@ static int SQLITE_TCLAPI test_prepare_v2(
if( rc!=SQLITE_OK ){
assert( pStmt==0 );
sqlite3_snprintf(sizeof(zBuf), zBuf, "(%d) ", rc);
- Tcl_AppendResult(interp, zBuf, sqlite3_errmsg(db), 0);
+ Tcl_AppendResult(interp, zBuf, sqlite3_errmsg(db), NULL);
return TCL_ERROR;
}
if( pStmt ){
if( sqlite3TestMakePointerStr(interp, zBuf, pStmt) ) return TCL_ERROR;
- Tcl_AppendResult(interp, zBuf, 0);
+ Tcl_AppendResult(interp, zBuf, NULL);
}
return TCL_OK;
}
@@ -5003,7 +5003,7 @@ static int SQLITE_TCLAPI test_prepare_v3(
if( objc!=6 && objc!=5 ){
Tcl_AppendResult(interp, "wrong # args: should be \"",
- Tcl_GetString(objv[0]), " DB sql bytes flags tailvar", 0);
+ Tcl_GetString(objv[0]), " DB sql bytes flags tailvar", NULL);
return TCL_ERROR;
}
if( getDbPointer(interp, Tcl_GetString(objv[1]), &db) ) return TCL_ERROR;
@@ -5039,13 +5039,13 @@ static int SQLITE_TCLAPI test_prepare_v3(
if( rc!=SQLITE_OK ){
assert( pStmt==0 );
sqlite3_snprintf(sizeof(zBuf), zBuf, "(%d) ", rc);
- Tcl_AppendResult(interp, zBuf, sqlite3_errmsg(db), 0);
+ Tcl_AppendResult(interp, zBuf, sqlite3_errmsg(db), NULL);
return TCL_ERROR;
}
if( pStmt ){
if( sqlite3TestMakePointerStr(interp, zBuf, pStmt) ) return TCL_ERROR;
- Tcl_AppendResult(interp, zBuf, 0);
+ Tcl_AppendResult(interp, zBuf, NULL);
}
return TCL_OK;
}
@@ -5070,7 +5070,7 @@ static int SQLITE_TCLAPI test_prepare_tkt3134(
if( objc!=2 ){
Tcl_AppendResult(interp, "wrong # args: should be \"",
- Tcl_GetString(objv[0]), " DB sql bytes tailvar", 0);
+ Tcl_GetString(objv[0]), " DB sql bytes tailvar", NULL);
return TCL_ERROR;
}
if( getDbPointer(interp, Tcl_GetString(objv[1]), &db) ) return TCL_ERROR;
@@ -5080,13 +5080,13 @@ static int SQLITE_TCLAPI test_prepare_tkt3134(
if( rc!=SQLITE_OK ){
assert( pStmt==0 );
sqlite3_snprintf(sizeof(zBuf), zBuf, "(%d) ", rc);
- Tcl_AppendResult(interp, zBuf, sqlite3_errmsg(db), 0);
+ Tcl_AppendResult(interp, zBuf, sqlite3_errmsg(db), NULL);
return TCL_ERROR;
}
if( pStmt ){
if( sqlite3TestMakePointerStr(interp, zBuf, pStmt) ) return TCL_ERROR;
- Tcl_AppendResult(interp, zBuf, 0);
+ Tcl_AppendResult(interp, zBuf, NULL);
}
return TCL_OK;
}
@@ -5118,7 +5118,7 @@ static int SQLITE_TCLAPI test_prepare16(
if( objc!=5 && objc!=4 ){
Tcl_AppendResult(interp, "wrong # args: should be \"",
- Tcl_GetString(objv[0]), " DB sql bytes ?tailvar?", 0);
+ Tcl_GetString(objv[0]), " DB sql bytes ?tailvar?", NULL);
return TCL_ERROR;
}
if( getDbPointer(interp, Tcl_GetString(objv[1]), &db) ) return TCL_ERROR;
@@ -5146,7 +5146,7 @@ static int SQLITE_TCLAPI test_prepare16(
if( pStmt ){
if( sqlite3TestMakePointerStr(interp, zBuf, pStmt) ) return TCL_ERROR;
}
- Tcl_AppendResult(interp, zBuf, 0);
+ Tcl_AppendResult(interp, zBuf, NULL);
#endif /* SQLITE_OMIT_UTF16 */
return TCL_OK;
}
@@ -5178,7 +5178,7 @@ static int SQLITE_TCLAPI test_prepare16_v2(
if( objc!=5 && objc!=4 ){
Tcl_AppendResult(interp, "wrong # args: should be \"",
- Tcl_GetString(objv[0]), " DB sql bytes ?tailvar?", 0);
+ Tcl_GetString(objv[0]), " DB sql bytes ?tailvar?", NULL);
return TCL_ERROR;
}
if( getDbPointer(interp, Tcl_GetString(objv[1]), &db) ) return TCL_ERROR;
@@ -5206,7 +5206,7 @@ static int SQLITE_TCLAPI test_prepare16_v2(
if( pStmt ){
if( sqlite3TestMakePointerStr(interp, zBuf, pStmt) ) return TCL_ERROR;
}
- Tcl_AppendResult(interp, zBuf, 0);
+ Tcl_AppendResult(interp, zBuf, NULL);
#endif /* SQLITE_OMIT_UTF16 */
return TCL_OK;
}
@@ -5226,7 +5226,7 @@ static int SQLITE_TCLAPI test_open(
if( objc!=3 && objc!=2 && objc!=1 ){
Tcl_AppendResult(interp, "wrong # args: should be \"",
- Tcl_GetString(objv[0]), " filename options-list", 0);
+ Tcl_GetString(objv[0]), " filename options-list", NULL);
return TCL_ERROR;
}
@@ -5234,7 +5234,7 @@ static int SQLITE_TCLAPI test_open(
sqlite3_open(zFilename, &db);
if( sqlite3TestMakePointerStr(interp, zBuf, db) ) return TCL_ERROR;
- Tcl_AppendResult(interp, zBuf, 0);
+ Tcl_AppendResult(interp, zBuf, NULL);
return TCL_OK;
}
@@ -5305,7 +5305,7 @@ static int SQLITE_TCLAPI test_open_v2(
rc = sqlite3_open_v2(zFilename, &db, flags, zVfs);
if( sqlite3TestMakePointerStr(interp, zBuf, db) ) return TCL_ERROR;
- Tcl_AppendResult(interp, zBuf, 0);
+ Tcl_AppendResult(interp, zBuf, NULL);
return TCL_OK;
}
@@ -5325,7 +5325,7 @@ static int SQLITE_TCLAPI test_open16(
if( objc!=3 ){
Tcl_AppendResult(interp, "wrong # args: should be \"",
- Tcl_GetString(objv[0]), " filename options-list", 0);
+ Tcl_GetString(objv[0]), " filename options-list", NULL);
return TCL_ERROR;
}
@@ -5333,7 +5333,7 @@ static int SQLITE_TCLAPI test_open16(
sqlite3_open16(zFilename, &db);
if( sqlite3TestMakePointerStr(interp, zBuf, db) ) return TCL_ERROR;
- Tcl_AppendResult(interp, zBuf, 0);
+ Tcl_AppendResult(interp, zBuf, NULL);
#endif /* SQLITE_OMIT_UTF16 */
return TCL_OK;
}
@@ -5409,7 +5409,7 @@ static int SQLITE_TCLAPI test_step(
if( objc!=2 ){
Tcl_AppendResult(interp, "wrong # args: should be \"",
- Tcl_GetString(objv[0]), " STMT", 0);
+ Tcl_GetString(objv[0]), " STMT", NULL);
return TCL_ERROR;
}
@@ -5493,7 +5493,7 @@ static int SQLITE_TCLAPI test_column_count(
if( objc!=2 ){
Tcl_AppendResult(interp, "wrong # args: should be \"",
- Tcl_GetString(objv[0]), " STMT column", 0);
+ Tcl_GetString(objv[0]), " STMT column", NULL);
return TCL_ERROR;
}
@@ -5520,7 +5520,7 @@ static int SQLITE_TCLAPI test_column_type(
if( objc!=3 ){
Tcl_AppendResult(interp, "wrong # args: should be \"",
- Tcl_GetString(objv[0]), " STMT column", 0);
+ Tcl_GetString(objv[0]), " STMT column", NULL);
return TCL_ERROR;
}
@@ -5569,7 +5569,7 @@ static int SQLITE_TCLAPI test_column_int64(
if( objc!=3 ){
Tcl_AppendResult(interp, "wrong # args: should be \"",
- Tcl_GetString(objv[0]), " STMT column", 0);
+ Tcl_GetString(objv[0]), " STMT column", NULL);
return TCL_ERROR;
}
@@ -5598,7 +5598,7 @@ static int SQLITE_TCLAPI test_column_blob(
if( objc!=3 ){
Tcl_AppendResult(interp, "wrong # args: should be \"",
- Tcl_GetString(objv[0]), " STMT column", 0);
+ Tcl_GetString(objv[0]), " STMT column", NULL);
return TCL_ERROR;
}
@@ -5628,7 +5628,7 @@ static int SQLITE_TCLAPI test_column_double(
if( objc!=3 ){
Tcl_AppendResult(interp, "wrong # args: should be \"",
- Tcl_GetString(objv[0]), " STMT column", 0);
+ Tcl_GetString(objv[0]), " STMT column", NULL);
return TCL_ERROR;
}
@@ -5655,7 +5655,7 @@ static int SQLITE_TCLAPI test_data_count(
if( objc!=2 ){
Tcl_AppendResult(interp, "wrong # args: should be \"",
- Tcl_GetString(objv[0]), " STMT column", 0);
+ Tcl_GetString(objv[0]), " STMT column", NULL);
return TCL_ERROR;
}
@@ -5688,7 +5688,7 @@ static int SQLITE_TCLAPI test_stmt_utf8(
xFuncU = (const unsigned char*(*)(sqlite3_stmt*,int))xFunc;
if( objc!=3 ){
Tcl_AppendResult(interp, "wrong # args: should be \"",
- Tcl_GetString(objv[0]), " STMT column", 0);
+ Tcl_GetString(objv[0]), " STMT column", NULL);
return TCL_ERROR;
}
@@ -5746,7 +5746,7 @@ static int SQLITE_TCLAPI test_stmt_utf16(
xFunc = (const void *(*)(sqlite3_stmt*, int))clientData;
if( objc!=3 ){
Tcl_AppendResult(interp, "wrong # args: should be \"",
- Tcl_GetString(objv[0]), " STMT column", 0);
+ Tcl_GetString(objv[0]), " STMT column", NULL);
return TCL_ERROR;
}
@@ -5787,7 +5787,7 @@ static int SQLITE_TCLAPI test_stmt_int(
xFunc = (int (*)(sqlite3_stmt*, int))clientData;
if( objc!=3 ){
Tcl_AppendResult(interp, "wrong # args: should be \"",
- Tcl_GetString(objv[0]), " STMT column", 0);
+ Tcl_GetString(objv[0]), " STMT column", NULL);
return TCL_ERROR;
}
@@ -5811,7 +5811,7 @@ static int SQLITE_TCLAPI test_interrupt(
){
sqlite3 *db;
if( argc!=2 ){
- Tcl_AppendResult(interp, "wrong # args: should be \"", argv[0], " DB", 0);
+ Tcl_AppendResult(interp, "wrong # args: should be \"", argv[0], " DB", NULL);
return TCL_ERROR;
}
if( getDbPointer(interp, argv[1], &db) ) return TCL_ERROR;
@@ -5833,7 +5833,7 @@ static int SQLITE_TCLAPI test_is_interrupted(
sqlite3 *db;
int rc;
if( argc!=2 ){
- Tcl_AppendResult(interp, "wrong # args: should be \"", argv[0], " DB", 0);
+ Tcl_AppendResult(interp, "wrong # args: should be \"", argv[0], " DB", NULL);
return TCL_ERROR;
}
if( getDbPointer(interp, argv[1], &db) ) return TCL_ERROR;
@@ -5915,7 +5915,7 @@ static int SQLITE_TCLAPI get_autocommit(
}
if( getDbPointer(interp, argv[1], &db) ) return TCL_ERROR;
sqlite3_snprintf(sizeof(zBuf), zBuf, "%d", sqlite3_get_autocommit(db));
- Tcl_AppendResult(interp, zBuf, 0);
+ Tcl_AppendResult(interp, zBuf, NULL);
return TCL_OK;
}
@@ -5936,13 +5936,13 @@ static int SQLITE_TCLAPI test_busy_timeout(
sqlite3 *db;
if( argc!=3 ){
Tcl_AppendResult(interp, "wrong # args: should be \"", argv[0],
- " DB", 0);
+ " DB", NULL);
return TCL_ERROR;
}
if( getDbPointer(interp, argv[1], &db) ) return TCL_ERROR;
if( Tcl_GetInt(interp, argv[2], &ms) ) return TCL_ERROR;
rc = sqlite3_busy_timeout(db, ms);
- Tcl_AppendResult(interp, sqlite3ErrName(rc), 0);
+ Tcl_AppendResult(interp, sqlite3ErrName(rc), NULL);
return TCL_OK;
}
@@ -5963,14 +5963,14 @@ static int SQLITE_TCLAPI test_setlk_timeout(
if( argc==4 ){
const char *zArg = argv[1];
- int nArg = strlen(zArg);
+ const size_t nArg = strlen(zArg);
if( nArg>=2 && nArg<=15 && memcmp(zArg, "-blockonconnect", nArg)==0 ){
bBlockOnConnect = 1;
}
}
if( argc!=(3+bBlockOnConnect) ){
Tcl_AppendResult(interp, "wrong # args: should be \"", argv[0],
- " ?-blockonconnect? DB MS", 0);
+ " ?-blockonconnect? DB MS", NULL);
return TCL_ERROR;
}
if( getDbPointer(interp, argv[argc-2], &db) ) return TCL_ERROR;
@@ -5978,7 +5978,7 @@ static int SQLITE_TCLAPI test_setlk_timeout(
rc = sqlite3_setlk_timeout(
db, ms, (bBlockOnConnect ? SQLITE_SETLK_BLOCK_ON_CONNECT : 0)
);
- Tcl_AppendResult(interp, sqlite3ErrName(rc), 0);
+ Tcl_AppendResult(interp, sqlite3ErrName(rc), NULL);
return TCL_OK;
}
@@ -6390,7 +6390,7 @@ static int SQLITE_TCLAPI test_pager_refcounts(
if( objc!=2 ){
Tcl_AppendResult(interp, "wrong # args: should be \"",
- Tcl_GetStringFromObj(objv[0], 0), " DB", 0);
+ Tcl_GetStringFromObj(objv[0], 0), " DB", NULL);
return TCL_ERROR;
}
if( getDbPointer(interp, Tcl_GetString(objv[1]), &db) ) return TCL_ERROR;
@@ -6632,7 +6632,7 @@ static int SQLITE_TCLAPI file_control_test(
if( objc!=2 ){
Tcl_AppendResult(interp, "wrong # args: should be \"",
- Tcl_GetStringFromObj(objv[0], 0), " DB", 0);
+ Tcl_GetStringFromObj(objv[0], 0), " DB", NULL);
return TCL_ERROR;
}
if( getDbPointer(interp, Tcl_GetString(objv[1]), &db) ) return TCL_ERROR;
@@ -6667,7 +6667,7 @@ static int SQLITE_TCLAPI file_control_lasterrno_test(
if( objc!=2 ){
Tcl_AppendResult(interp, "wrong # args: should be \"",
- Tcl_GetStringFromObj(objv[0], 0), " DB", 0);
+ Tcl_GetStringFromObj(objv[0], 0), " DB", NULL);
return TCL_ERROR;
}
if( getDbPointer(interp, Tcl_GetString(objv[1]), &db) ){
@@ -6680,7 +6680,7 @@ static int SQLITE_TCLAPI file_control_lasterrno_test(
}
if( iArg!=0 ) {
Tcl_AppendResult(interp, "Unexpected non-zero errno: ",
- Tcl_GetStringFromObj(Tcl_NewIntObj(iArg), 0), " ", 0);
+ Tcl_GetStringFromObj(Tcl_NewIntObj(iArg), 0), " ", NULL);
return TCL_ERROR;
}
return TCL_OK;
@@ -6816,7 +6816,7 @@ static int SQLITE_TCLAPI file_control_lockproxy_test(
if( objc!=3 ){
Tcl_AppendResult(interp, "wrong # args: should be \"",
- Tcl_GetStringFromObj(objv[0], 0), " DB PWD", 0);
+ Tcl_GetStringFromObj(objv[0], 0), " DB PWD", NULL);
return TCL_ERROR;
}
if( getDbPointer(interp, Tcl_GetString(objv[1]), &db) ){
@@ -6852,7 +6852,7 @@ static int SQLITE_TCLAPI file_control_lockproxy_test(
rc = sqlite3_file_control(db, NULL, SQLITE_GET_LOCKPROXYFILE, &testPath);
if( strncmp(proxyPath,testPath,11) ){
Tcl_AppendResult(interp, "Lock proxy file did not match the "
- "previously assigned value", 0);
+ "previously assigned value", NULL);
return TCL_ERROR;
}
if( rc ){
@@ -6889,7 +6889,7 @@ static int SQLITE_TCLAPI file_control_win32_av_retry(
if( objc!=4 ){
Tcl_AppendResult(interp, "wrong # args: should be \"",
- Tcl_GetStringFromObj(objv[0], 0), " DB NRETRY DELAY", 0);
+ Tcl_GetStringFromObj(objv[0], 0), " DB NRETRY DELAY", NULL);
return TCL_ERROR;
}
if( getDbPointer(interp, Tcl_GetString(objv[1]), &db) ){
@@ -6922,7 +6922,7 @@ static int file_control_win32_get_handle(
if( objc!=2 ){
Tcl_AppendResult(interp, "wrong # args: should be \"",
- Tcl_GetStringFromObj(objv[0], 0), " DB", 0);
+ Tcl_GetStringFromObj(objv[0], 0), " DB", NULL);
return TCL_ERROR;
}
if( getDbPointer(interp, Tcl_GetString(objv[1]), &db) ){
@@ -6954,7 +6954,7 @@ static int SQLITE_TCLAPI file_control_win32_set_handle(
if( objc!=3 ){
Tcl_AppendResult(interp, "wrong # args: should be \"",
- Tcl_GetStringFromObj(objv[0], 0), " DB HANDLE", 0);
+ Tcl_GetStringFromObj(objv[0], 0), " DB HANDLE", NULL);
return TCL_ERROR;
}
if( getDbPointer(interp, Tcl_GetString(objv[1]), &db) ){
@@ -6990,7 +6990,7 @@ static int SQLITE_TCLAPI file_control_persist_wal(
if( objc!=3 ){
Tcl_AppendResult(interp, "wrong # args: should be \"",
- Tcl_GetStringFromObj(objv[0], 0), " DB FLAG", 0);
+ Tcl_GetStringFromObj(objv[0], 0), " DB FLAG", NULL);
return TCL_ERROR;
}
if( getDbPointer(interp, Tcl_GetString(objv[1]), &db) ){
@@ -7022,7 +7022,7 @@ static int SQLITE_TCLAPI file_control_powersafe_overwrite(
if( objc!=3 ){
Tcl_AppendResult(interp, "wrong # args: should be \"",
- Tcl_GetStringFromObj(objv[0], 0), " DB FLAG", 0);
+ Tcl_GetStringFromObj(objv[0], 0), " DB FLAG", NULL);
return TCL_ERROR;
}
if( getDbPointer(interp, Tcl_GetString(objv[1]), &db) ){
@@ -7053,7 +7053,7 @@ static int SQLITE_TCLAPI file_control_vfsname(
if( objc!=2 && objc!=3 ){
Tcl_AppendResult(interp, "wrong # args: should be \"",
- Tcl_GetStringFromObj(objv[0], 0), " DB ?AUXDB?", 0);
+ Tcl_GetStringFromObj(objv[0], 0), " DB ?AUXDB?", NULL);
return TCL_ERROR;
}
if( getDbPointer(interp, Tcl_GetString(objv[1]), &db) ){
@@ -7115,7 +7115,7 @@ static int SQLITE_TCLAPI file_control_tempfilename(
if( objc!=2 && objc!=3 ){
Tcl_AppendResult(interp, "wrong # args: should be \"",
- Tcl_GetStringFromObj(objv[0], 0), " DB ?AUXDB?", 0);
+ Tcl_GetStringFromObj(objv[0], 0), " DB ?AUXDB?", NULL);
return TCL_ERROR;
}
if( getDbPointer(interp, Tcl_GetString(objv[1]), &db) ){
@@ -7148,7 +7148,7 @@ static int SQLITE_TCLAPI file_control_external_reader(
if( objc!=2 && objc!=3 ){
Tcl_AppendResult(interp, "wrong # args: should be \"",
- Tcl_GetStringFromObj(objv[0], 0), " DB ?AUXDB?", 0);
+ Tcl_GetStringFromObj(objv[0], 0), " DB ?AUXDB?", NULL);
return TCL_ERROR;
}
if( getDbPointer(interp, Tcl_GetString(objv[1]), &db) ){
@@ -7232,7 +7232,7 @@ static int SQLITE_TCLAPI test_limit(
if( objc!=4 ){
Tcl_AppendResult(interp, "wrong # args: should be \"",
- Tcl_GetStringFromObj(objv[0], 0), " DB ID VALUE", 0);
+ Tcl_GetStringFromObj(objv[0], 0), " DB ID VALUE", NULL);
return TCL_ERROR;
}
if( getDbPointer(interp, Tcl_GetString(objv[1]), &db) ) return TCL_ERROR;
@@ -7543,7 +7543,7 @@ static int SQLITE_TCLAPI test_wal_checkpoint_v2(
if( rc!=SQLITE_OK && rc!=SQLITE_BUSY ){
const char *zErrCode = sqlite3ErrName(rc);
Tcl_ResetResult(interp);
- Tcl_AppendResult(interp, zErrCode, " - ", (char *)sqlite3_errmsg(db), 0);
+ Tcl_AppendResult(interp, zErrCode, " - ", (char *)sqlite3_errmsg(db), NULL);
return TCL_ERROR;
}
@@ -8017,7 +8017,7 @@ static void SQLITE_CDECL win32_file_locker(void *pAppData){
}
#endif
-#if SQLITE_OS_WIN
+#ifdef _WIN32
/*
** lock_win32_file FILENAME DELAY1 DELAY2
**
@@ -8826,7 +8826,7 @@ static int SQLITE_TCLAPI guess_number_of_cores(
Tcl_Obj *CONST objv[]
){
unsigned int nCore = 1;
-#if SQLITE_OS_WIN
+#ifdef _WIN32
SYSTEM_INFO sysinfo;
GetSystemInfo(&sysinfo);
nCore = (unsigned int)sysinfo.dwNumberOfProcessors;
@@ -9006,7 +9006,7 @@ int Sqlitetest1_Init(Tcl_Interp *interp){
{ "database_never_corrupt", database_never_corrupt, 0},
{ "database_may_be_corrupt", database_may_be_corrupt, 0},
{ "optimization_control", optimization_control,0},
-#if SQLITE_OS_WIN
+#ifdef _WIN32
{ "lock_win32_file", win32_file_lock, 0 },
#endif
{ "tcl_objproc", runAsObjProc, 0 },
diff --git a/src/test2.c b/src/test2.c
index a9549aa7f..899728ead 100644
--- a/src/test2.c
+++ b/src/test2.c
@@ -51,7 +51,7 @@ static int SQLITE_TCLAPI pager_open(
char zBuf[100];
if( argc!=3 ){
Tcl_AppendResult(interp, "wrong # args: should be \"", argv[0],
- " FILENAME N-PAGE\"", 0);
+ " FILENAME N-PAGE\"", NULL);
return TCL_ERROR;
}
if( Tcl_GetInt(interp, argv[2], &nPage) ) return TCL_ERROR;
@@ -59,14 +59,14 @@ static int SQLITE_TCLAPI pager_open(
SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE | SQLITE_OPEN_MAIN_DB,
pager_test_reiniter);
if( rc!=SQLITE_OK ){
- Tcl_AppendResult(interp, sqlite3ErrName(rc), 0);
+ Tcl_AppendResult(interp, sqlite3ErrName(rc), NULL);
return TCL_ERROR;
}
sqlite3PagerSetCachesize(pPager, nPage);
pageSize = test_pagesize;
sqlite3PagerSetPagesize(pPager, &pageSize, -1);
sqlite3_snprintf(sizeof(zBuf),zBuf,"%p",pPager);
- Tcl_AppendResult(interp, zBuf, 0);
+ Tcl_AppendResult(interp, zBuf, NULL);
return TCL_OK;
}
@@ -85,13 +85,13 @@ static int SQLITE_TCLAPI pager_close(
int rc;
if( argc!=2 ){
Tcl_AppendResult(interp, "wrong # args: should be \"", argv[0],
- " ID\"", 0);
+ " ID\"", NULL);
return TCL_ERROR;
}
pPager = sqlite3TestTextToPtr(argv[1]);
rc = sqlite3PagerClose(pPager, 0);
if( rc!=SQLITE_OK ){
- Tcl_AppendResult(interp, sqlite3ErrName(rc), 0);
+ Tcl_AppendResult(interp, sqlite3ErrName(rc), NULL);
return TCL_ERROR;
}
return TCL_OK;
@@ -112,13 +112,13 @@ static int SQLITE_TCLAPI pager_rollback(
int rc;
if( argc!=2 ){
Tcl_AppendResult(interp, "wrong # args: should be \"", argv[0],
- " ID\"", 0);
+ " ID\"", NULL);
return TCL_ERROR;
}
pPager = sqlite3TestTextToPtr(argv[1]);
rc = sqlite3PagerRollback(pPager);
if( rc!=SQLITE_OK ){
- Tcl_AppendResult(interp, sqlite3ErrName(rc), 0);
+ Tcl_AppendResult(interp, sqlite3ErrName(rc), NULL);
return TCL_ERROR;
}
return TCL_OK;
@@ -139,18 +139,18 @@ static int SQLITE_TCLAPI pager_commit(
int rc;
if( argc!=2 ){
Tcl_AppendResult(interp, "wrong # args: should be \"", argv[0],
- " ID\"", 0);
+ " ID\"", NULL);
return TCL_ERROR;
}
pPager = sqlite3TestTextToPtr(argv[1]);
rc = sqlite3PagerCommitPhaseOne(pPager, 0, 0);
if( rc!=SQLITE_OK ){
- Tcl_AppendResult(interp, sqlite3ErrName(rc), 0);
+ Tcl_AppendResult(interp, sqlite3ErrName(rc), NULL);
return TCL_ERROR;
}
rc = sqlite3PagerCommitPhaseTwo(pPager);
if( rc!=SQLITE_OK ){
- Tcl_AppendResult(interp, sqlite3ErrName(rc), 0);
+ Tcl_AppendResult(interp, sqlite3ErrName(rc), NULL);
return TCL_ERROR;
}
return TCL_OK;
@@ -171,13 +171,13 @@ static int SQLITE_TCLAPI pager_stmt_begin(
int rc;
if( argc!=2 ){
Tcl_AppendResult(interp, "wrong # args: should be \"", argv[0],
- " ID\"", 0);
+ " ID\"", NULL);
return TCL_ERROR;
}
pPager = sqlite3TestTextToPtr(argv[1]);
rc = sqlite3PagerOpenSavepoint(pPager, 1);
if( rc!=SQLITE_OK ){
- Tcl_AppendResult(interp, sqlite3ErrName(rc), 0);
+ Tcl_AppendResult(interp, sqlite3ErrName(rc), NULL);
return TCL_ERROR;
}
return TCL_OK;
@@ -198,14 +198,14 @@ static int SQLITE_TCLAPI pager_stmt_rollback(
int rc;
if( argc!=2 ){
Tcl_AppendResult(interp, "wrong # args: should be \"", argv[0],
- " ID\"", 0);
+ " ID\"", NULL);
return TCL_ERROR;
}
pPager = sqlite3TestTextToPtr(argv[1]);
rc = sqlite3PagerSavepoint(pPager, SAVEPOINT_ROLLBACK, 0);
sqlite3PagerSavepoint(pPager, SAVEPOINT_RELEASE, 0);
if( rc!=SQLITE_OK ){
- Tcl_AppendResult(interp, sqlite3ErrName(rc), 0);
+ Tcl_AppendResult(interp, sqlite3ErrName(rc), NULL);
return TCL_ERROR;
}
return TCL_OK;
@@ -226,13 +226,13 @@ static int SQLITE_TCLAPI pager_stmt_commit(
int rc;
if( argc!=2 ){
Tcl_AppendResult(interp, "wrong # args: should be \"", argv[0],
- " ID\"", 0);
+ " ID\"", NULL);
return TCL_ERROR;
}
pPager = sqlite3TestTextToPtr(argv[1]);
rc = sqlite3PagerSavepoint(pPager, SAVEPOINT_RELEASE, 0);
if( rc!=SQLITE_OK ){
- Tcl_AppendResult(interp, sqlite3ErrName(rc), 0);
+ Tcl_AppendResult(interp, sqlite3ErrName(rc), NULL);
return TCL_ERROR;
}
return TCL_OK;
@@ -253,7 +253,7 @@ static int SQLITE_TCLAPI pager_stats(
int i, *a;
if( argc!=2 ){
Tcl_AppendResult(interp, "wrong # args: should be \"", argv[0],
- " ID\"", 0);
+ " ID\"", NULL);
return TCL_ERROR;
}
pPager = sqlite3TestTextToPtr(argv[1]);
@@ -287,13 +287,13 @@ static int SQLITE_TCLAPI pager_pagecount(
int nPage;
if( argc!=2 ){
Tcl_AppendResult(interp, "wrong # args: should be \"", argv[0],
- " ID\"", 0);
+ " ID\"", NULL);
return TCL_ERROR;
}
pPager = sqlite3TestTextToPtr(argv[1]);
sqlite3PagerPagecount(pPager, &nPage);
sqlite3_snprintf(sizeof(zBuf), zBuf, "%d", nPage);
- Tcl_AppendResult(interp, zBuf, 0);
+ Tcl_AppendResult(interp, zBuf, NULL);
return TCL_OK;
}
@@ -315,7 +315,7 @@ static int SQLITE_TCLAPI page_get(
int rc;
if( argc!=3 ){
Tcl_AppendResult(interp, "wrong # args: should be \"", argv[0],
- " ID PGNO\"", 0);
+ " ID PGNO\"", NULL);
return TCL_ERROR;
}
pPager = sqlite3TestTextToPtr(argv[1]);
@@ -325,11 +325,11 @@ static int SQLITE_TCLAPI page_get(
rc = sqlite3PagerGet(pPager, pgno, &pPage, 0);
}
if( rc!=SQLITE_OK ){
- Tcl_AppendResult(interp, sqlite3ErrName(rc), 0);
+ Tcl_AppendResult(interp, sqlite3ErrName(rc), NULL);
return TCL_ERROR;
}
sqlite3_snprintf(sizeof(zBuf),zBuf,"%p",pPage);
- Tcl_AppendResult(interp, zBuf, 0);
+ Tcl_AppendResult(interp, zBuf, NULL);
return TCL_OK;
}
@@ -351,7 +351,7 @@ static int SQLITE_TCLAPI page_lookup(
int pgno;
if( argc!=3 ){
Tcl_AppendResult(interp, "wrong # args: should be \"", argv[0],
- " ID PGNO\"", 0);
+ " ID PGNO\"", NULL);
return TCL_ERROR;
}
pPager = sqlite3TestTextToPtr(argv[1]);
@@ -359,7 +359,7 @@ static int SQLITE_TCLAPI page_lookup(
pPage = sqlite3PagerLookup(pPager, pgno);
if( pPage ){
sqlite3_snprintf(sizeof(zBuf),zBuf,"%p",pPage);
- Tcl_AppendResult(interp, zBuf, 0);
+ Tcl_AppendResult(interp, zBuf, NULL);
}
return TCL_OK;
}
@@ -377,7 +377,7 @@ static int SQLITE_TCLAPI pager_truncate(
int pgno;
if( argc!=3 ){
Tcl_AppendResult(interp, "wrong # args: should be \"", argv[0],
- " ID PGNO\"", 0);
+ " ID PGNO\"", NULL);
return TCL_ERROR;
}
pPager = sqlite3TestTextToPtr(argv[1]);
@@ -401,7 +401,7 @@ static int SQLITE_TCLAPI page_unref(
DbPage *pPage;
if( argc!=2 ){
Tcl_AppendResult(interp, "wrong # args: should be \"", argv[0],
- " PAGE\"", 0);
+ " PAGE\"", NULL);
return TCL_ERROR;
}
pPage = (DbPage *)sqlite3TestTextToPtr(argv[1]);
@@ -424,12 +424,12 @@ static int SQLITE_TCLAPI page_read(
DbPage *pPage;
if( argc!=2 ){
Tcl_AppendResult(interp, "wrong # args: should be \"", argv[0],
- " PAGE\"", 0);
+ " PAGE\"", NULL);
return TCL_ERROR;
}
pPage = sqlite3TestTextToPtr(argv[1]);
memcpy(zBuf, sqlite3PagerGetData(pPage), sizeof(zBuf));
- Tcl_AppendResult(interp, zBuf, 0);
+ Tcl_AppendResult(interp, zBuf, NULL);
return TCL_OK;
}
@@ -448,12 +448,12 @@ static int SQLITE_TCLAPI page_number(
DbPage *pPage;
if( argc!=2 ){
Tcl_AppendResult(interp, "wrong # args: should be \"", argv[0],
- " PAGE\"", 0);
+ " PAGE\"", NULL);
return TCL_ERROR;
}
pPage = (DbPage *)sqlite3TestTextToPtr(argv[1]);
sqlite3_snprintf(sizeof(zBuf), zBuf, "%d", sqlite3PagerPagenumber(pPage));
- Tcl_AppendResult(interp, zBuf, 0);
+ Tcl_AppendResult(interp, zBuf, NULL);
return TCL_OK;
}
@@ -473,13 +473,13 @@ static int SQLITE_TCLAPI page_write(
int rc;
if( argc!=3 ){
Tcl_AppendResult(interp, "wrong # args: should be \"", argv[0],
- " PAGE DATA\"", 0);
+ " PAGE DATA\"", NULL);
return TCL_ERROR;
}
pPage = (DbPage *)sqlite3TestTextToPtr(argv[1]);
rc = sqlite3PagerWrite(pPage);
if( rc!=SQLITE_OK ){
- Tcl_AppendResult(interp, sqlite3ErrName(rc), 0);
+ Tcl_AppendResult(interp, sqlite3ErrName(rc), NULL);
return TCL_ERROR;
}
pData = sqlite3PagerGetData(pPage);
@@ -513,7 +513,7 @@ static int SQLITE_TCLAPI fake_big_file(
int nFile;
if( argc!=3 ){
Tcl_AppendResult(interp, "wrong # args: should be \"", argv[0],
- " N-MEGABYTES FILE\"", 0);
+ " N-MEGABYTES FILE\"", NULL);
return TCL_ERROR;
}
if( Tcl_GetInt(interp, argv[1], &n) ) return TCL_ERROR;
@@ -536,7 +536,7 @@ static int SQLITE_TCLAPI fake_big_file(
(SQLITE_OPEN_CREATE|SQLITE_OPEN_READWRITE|SQLITE_OPEN_MAIN_DB), 0
);
if( rc ){
- Tcl_AppendResult(interp, "open failed: ", sqlite3ErrName(rc), 0);
+ Tcl_AppendResult(interp, "open failed: ", sqlite3ErrName(rc), NULL);
sqlite3_free(zFile);
return TCL_ERROR;
}
@@ -546,7 +546,7 @@ static int SQLITE_TCLAPI fake_big_file(
sqlite3OsCloseFree(fd);
sqlite3_free(zFile);
if( rc ){
- Tcl_AppendResult(interp, "write failed: ", sqlite3ErrName(rc), 0);
+ Tcl_AppendResult(interp, "write failed: ", sqlite3ErrName(rc), NULL);
return TCL_ERROR;
}
return TCL_OK;
diff --git a/src/test3.c b/src/test3.c
index f1b2b0168..8fbb96a80 100644
--- a/src/test3.c
+++ b/src/test3.c
@@ -46,9 +46,10 @@ static int SQLITE_TCLAPI btree_open(
char *zFilename;
if( argc!=3 ){
Tcl_AppendResult(interp, "wrong # args: should be \"", argv[0],
- " FILENAME NCACHE FLAGS\"", 0);
+ " FILENAME NCACHE FLAGS\"", NULL);
return TCL_ERROR;
}
+
if( Tcl_GetInt(interp, argv[2], &nCache) ) return TCL_ERROR;
nRefSqlite3++;
if( nRefSqlite3==1 ){
@@ -65,12 +66,12 @@ static int SQLITE_TCLAPI btree_open(
SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE | SQLITE_OPEN_MAIN_DB);
sqlite3_free(zFilename);
if( rc!=SQLITE_OK ){
- Tcl_AppendResult(interp, sqlite3ErrName(rc), 0);
+ Tcl_AppendResult(interp, sqlite3ErrName(rc), NULL);
return TCL_ERROR;
}
sqlite3BtreeSetCacheSize(pBt, nCache);
sqlite3_snprintf(sizeof(zBuf), zBuf,"%p", pBt);
- Tcl_AppendResult(interp, zBuf, 0);
+ Tcl_AppendResult(interp, zBuf, NULL);
return TCL_OK;
}
@@ -89,13 +90,13 @@ static int SQLITE_TCLAPI btree_close(
int rc;
if( argc!=2 ){
Tcl_AppendResult(interp, "wrong # args: should be \"", argv[0],
- " ID\"", 0);
+ " ID\"", NULL);
return TCL_ERROR;
}
pBt = sqlite3TestTextToPtr(argv[1]);
rc = sqlite3BtreeClose(pBt);
if( rc!=SQLITE_OK ){
- Tcl_AppendResult(interp, sqlite3ErrName(rc), 0);
+ Tcl_AppendResult(interp, sqlite3ErrName(rc), NULL);
return TCL_ERROR;
}
nRefSqlite3--;
@@ -124,7 +125,7 @@ static int SQLITE_TCLAPI btree_begin_transaction(
int rc;
if( argc!=2 ){
Tcl_AppendResult(interp, "wrong # args: should be \"", argv[0],
- " ID\"", 0);
+ " ID\"", NULL);
return TCL_ERROR;
}
pBt = sqlite3TestTextToPtr(argv[1]);
@@ -132,7 +133,7 @@ static int SQLITE_TCLAPI btree_begin_transaction(
rc = sqlite3BtreeBeginTrans(pBt, 1, 0);
sqlite3BtreeLeave(pBt);
if( rc!=SQLITE_OK ){
- Tcl_AppendResult(interp, sqlite3ErrName(rc), 0);
+ Tcl_AppendResult(interp, sqlite3ErrName(rc), NULL);
return TCL_ERROR;
}
return TCL_OK;
@@ -155,7 +156,7 @@ static int SQLITE_TCLAPI btree_pager_stats(
if( argc!=2 ){
Tcl_AppendResult(interp, "wrong # args: should be \"", argv[0],
- " ID\"", 0);
+ " ID\"", NULL);
return TCL_ERROR;
}
pBt = sqlite3TestTextToPtr(argv[1]);
@@ -208,7 +209,7 @@ static int SQLITE_TCLAPI btree_cursor(
if( argc!=4 ){
Tcl_AppendResult(interp, "wrong # args: should be \"", argv[0],
- " ID TABLENUM WRITEABLE\"", 0);
+ " ID TABLENUM WRITEABLE\"", NULL);
return TCL_ERROR;
}
pBt = sqlite3TestTextToPtr(argv[1]);
@@ -229,11 +230,11 @@ static int SQLITE_TCLAPI btree_cursor(
sqlite3_mutex_leave(pBt->db->mutex);
if( rc ){
ckfree((char *)pCur);
- Tcl_AppendResult(interp, sqlite3ErrName(rc), 0);
+ Tcl_AppendResult(interp, sqlite3ErrName(rc), NULL);
return TCL_ERROR;
}
sqlite3_snprintf(sizeof(zBuf), zBuf,"%p", pCur);
- Tcl_AppendResult(interp, zBuf, 0);
+ Tcl_AppendResult(interp, zBuf, NULL);
return SQLITE_OK;
}
@@ -253,7 +254,7 @@ static int SQLITE_TCLAPI btree_close_cursor(
if( argc!=2 ){
Tcl_AppendResult(interp, "wrong # args: should be \"", argv[0],
- " ID\"", 0);
+ " ID\"", NULL);
return TCL_ERROR;
}
pCur = sqlite3TestTextToPtr(argv[1]);
@@ -271,7 +272,7 @@ static int SQLITE_TCLAPI btree_close_cursor(
#endif
ckfree((char *)pCur);
if( rc ){
- Tcl_AppendResult(interp, sqlite3ErrName(rc), 0);
+ Tcl_AppendResult(interp, sqlite3ErrName(rc), NULL);
return TCL_ERROR;
}
return SQLITE_OK;
@@ -297,7 +298,7 @@ static int SQLITE_TCLAPI btree_next(
if( argc!=2 ){
Tcl_AppendResult(interp, "wrong # args: should be \"", argv[0],
- " ID\"", 0);
+ " ID\"", NULL);
return TCL_ERROR;
}
pCur = sqlite3TestTextToPtr(argv[1]);
@@ -309,11 +310,11 @@ static int SQLITE_TCLAPI btree_next(
}
sqlite3BtreeLeave(pCur->pBtree);
if( rc ){
- Tcl_AppendResult(interp, sqlite3ErrName(rc), 0);
+ Tcl_AppendResult(interp, sqlite3ErrName(rc), NULL);
return TCL_ERROR;
}
sqlite3_snprintf(sizeof(zBuf),zBuf,"%d",res);
- Tcl_AppendResult(interp, zBuf, 0);
+ Tcl_AppendResult(interp, zBuf, NULL);
return SQLITE_OK;
}
@@ -336,7 +337,7 @@ static int SQLITE_TCLAPI btree_first(
if( argc!=2 ){
Tcl_AppendResult(interp, "wrong # args: should be \"", argv[0],
- " ID\"", 0);
+ " ID\"", NULL);
return TCL_ERROR;
}
pCur = sqlite3TestTextToPtr(argv[1]);
@@ -344,11 +345,11 @@ static int SQLITE_TCLAPI btree_first(
rc = sqlite3BtreeFirst(pCur, &res);
sqlite3BtreeLeave(pCur->pBtree);
if( rc ){
- Tcl_AppendResult(interp, sqlite3ErrName(rc), 0);
+ Tcl_AppendResult(interp, sqlite3ErrName(rc), NULL);
return TCL_ERROR;
}
sqlite3_snprintf(sizeof(zBuf),zBuf,"%d",res);
- Tcl_AppendResult(interp, zBuf, 0);
+ Tcl_AppendResult(interp, zBuf, NULL);
return SQLITE_OK;
}
@@ -370,7 +371,7 @@ static int SQLITE_TCLAPI btree_eof(
if( argc!=2 ){
Tcl_AppendResult(interp, "wrong # args: should be \"", argv[0],
- " ID\"", 0);
+ " ID\"", NULL);
return TCL_ERROR;
}
pCur = sqlite3TestTextToPtr(argv[1]);
@@ -378,7 +379,7 @@ static int SQLITE_TCLAPI btree_eof(
rc = sqlite3BtreeEof(pCur);
sqlite3BtreeLeave(pCur->pBtree);
sqlite3_snprintf(sizeof(zBuf),zBuf, "%d", rc);
- Tcl_AppendResult(interp, zBuf, 0);
+ Tcl_AppendResult(interp, zBuf, NULL);
return SQLITE_OK;
}
@@ -399,7 +400,7 @@ static int SQLITE_TCLAPI btree_payload_size(
if( argc!=2 ){
Tcl_AppendResult(interp, "wrong # args: should be \"", argv[0],
- " ID\"", 0);
+ " ID\"", NULL);
return TCL_ERROR;
}
pCur = sqlite3TestTextToPtr(argv[1]);
@@ -407,7 +408,7 @@ static int SQLITE_TCLAPI btree_payload_size(
n = sqlite3BtreePayloadSize(pCur);
sqlite3BtreeLeave(pCur->pBtree);
sqlite3_snprintf(sizeof(zBuf),zBuf, "%u", n);
- Tcl_AppendResult(interp, zBuf, 0);
+ Tcl_AppendResult(interp, zBuf, NULL);
return SQLITE_OK;
}
@@ -437,7 +438,7 @@ static int SQLITE_TCLAPI btree_varint_test(
unsigned char zBuf[100];
if( argc!=5 ){
Tcl_AppendResult(interp, "wrong # args: should be \"", argv[0],
- " START MULTIPLIER COUNT INCREMENT\"", 0);
+ " START MULTIPLIER COUNT INCREMENT\"", NULL);
return TCL_ERROR;
}
if( Tcl_GetInt(interp, argv[1], (int*)&start) ) return TCL_ERROR;
@@ -452,20 +453,20 @@ static int SQLITE_TCLAPI btree_varint_test(
if( n1>9 || n1<1 ){
sqlite3_snprintf(sizeof(zErr), zErr,
"putVarint returned %d - should be between 1 and 9", n1);
- Tcl_AppendResult(interp, zErr, 0);
+ Tcl_AppendResult(interp, zErr, NULL);
return TCL_ERROR;
}
n2 = getVarint(zBuf, &out);
if( n1!=n2 ){
sqlite3_snprintf(sizeof(zErr), zErr,
"putVarint returned %d and getVarint returned %d", n1, n2);
- Tcl_AppendResult(interp, zErr, 0);
+ Tcl_AppendResult(interp, zErr, NULL);
return TCL_ERROR;
}
if( in!=out ){
sqlite3_snprintf(sizeof(zErr), zErr,
"Wrote 0x%016llx and got back 0x%016llx", in, out);
- Tcl_AppendResult(interp, zErr, 0);
+ Tcl_AppendResult(interp, zErr, NULL);
return TCL_ERROR;
}
if( (in & 0xffffffff)==in ){
@@ -476,14 +477,14 @@ static int SQLITE_TCLAPI btree_varint_test(
sqlite3_snprintf(sizeof(zErr), zErr,
"putVarint returned %d and GetVarint32 returned %d",
n1, n2);
- Tcl_AppendResult(interp, zErr, 0);
+ Tcl_AppendResult(interp, zErr, NULL);
return TCL_ERROR;
}
if( in!=out ){
sqlite3_snprintf(sizeof(zErr), zErr,
"Wrote 0x%016llx and got back 0x%016llx from GetVarint32",
in, out);
- Tcl_AppendResult(interp, zErr, 0);
+ Tcl_AppendResult(interp, zErr, NULL);
return TCL_ERROR;
}
}
@@ -523,12 +524,12 @@ static int SQLITE_TCLAPI btree_from_db(
if( argc!=2 && argc!=3 ){
Tcl_AppendResult(interp, "wrong # args: should be \"", argv[0],
- " DB-HANDLE ?N?\"", 0);
+ " DB-HANDLE ?N?\"", NULL);
return TCL_ERROR;
}
if( 1!=Tcl_GetCommandInfo(interp, argv[1], &info) ){
- Tcl_AppendResult(interp, "No such db-handle: \"", argv[1], "\"", 0);
+ Tcl_AppendResult(interp, "No such db-handle: \"", argv[1], "\"", NULL);
return TCL_ERROR;
}
if( argc==3 ){
@@ -561,7 +562,7 @@ static int SQLITE_TCLAPI btree_ismemdb(
if( argc!=2 ){
Tcl_AppendResult(interp, "wrong # args: should be \"", argv[0],
- " ID\"", 0);
+ " ID\"", NULL);
return TCL_ERROR;
}
pBt = sqlite3TestTextToPtr(argv[1]);
@@ -591,7 +592,7 @@ static int SQLITE_TCLAPI btree_set_cache_size(
if( argc!=3 ){
Tcl_AppendResult(
- interp, "wrong # args: should be \"", argv[0], " BT NCACHE\"", 0);
+ interp, "wrong # args: should be \"", argv[0], " BT NCACHE\"", NULL);
return TCL_ERROR;
}
pBt = sqlite3TestTextToPtr(argv[1]);
@@ -646,7 +647,7 @@ static int SQLITE_TCLAPI btree_insert(
Tcl_ResetResult(interp);
if( rc ){
- Tcl_AppendResult(interp, sqlite3ErrName(rc), 0);
+ Tcl_AppendResult(interp, sqlite3ErrName(rc), NULL);
return TCL_ERROR;
}
return TCL_OK;
diff --git a/src/test4.c b/src/test4.c
index 8a68f7d3e..07236b3e5 100644
--- a/src/test4.c
+++ b/src/test4.c
@@ -119,7 +119,7 @@ static void *test_thread_main(void *pArg){
*/
static int parse_thread_id(Tcl_Interp *interp, const char *zArg){
if( zArg==0 || zArg[0]==0 || zArg[1]!=0 || !isupper((unsigned char)zArg[0]) ){
- Tcl_AppendResult(interp, "thread ID must be an upper case letter", 0);
+ Tcl_AppendResult(interp, "thread ID must be an upper case letter", NULL);
return -1;
}
return zArg[0] - 'A';
@@ -143,13 +143,13 @@ static int SQLITE_TCLAPI tcl_thread_create(
if( argc!=3 ){
Tcl_AppendResult(interp, "wrong # args: should be \"", argv[0],
- " ID FILENAME", 0);
+ " ID FILENAME", NULL);
return TCL_ERROR;
}
i = parse_thread_id(interp, argv[1]);
if( i<0 ) return TCL_ERROR;
if( threadset[i].busy ){
- Tcl_AppendResult(interp, "thread ", argv[1], " is already running", 0);
+ Tcl_AppendResult(interp, "thread ", argv[1], " is already running", NULL);
return TCL_ERROR;
}
threadset[i].busy = 1;
@@ -159,7 +159,7 @@ static int SQLITE_TCLAPI tcl_thread_create(
threadset[i].completed = 0;
rc = pthread_create(&x, 0, test_thread_main, &threadset[i]);
if( rc ){
- Tcl_AppendResult(interp, "failed to create the thread", 0);
+ Tcl_AppendResult(interp, "failed to create the thread", NULL);
sqlite3_free(threadset[i].zFilename);
threadset[i].busy = 0;
return TCL_ERROR;
@@ -192,13 +192,13 @@ static int SQLITE_TCLAPI tcl_thread_wait(
if( argc!=2 ){
Tcl_AppendResult(interp, "wrong # args: should be \"", argv[0],
- " ID", 0);
+ " ID", NULL);
return TCL_ERROR;
}
i = parse_thread_id(interp, argv[1]);
if( i<0 ) return TCL_ERROR;
if( !threadset[i].busy ){
- Tcl_AppendResult(interp, "no such thread", 0);
+ Tcl_AppendResult(interp, "no such thread", NULL);
return TCL_ERROR;
}
test_thread_wait(&threadset[i]);
@@ -236,7 +236,7 @@ static int SQLITE_TCLAPI tcl_thread_halt(
if( argc!=2 ){
Tcl_AppendResult(interp, "wrong # args: should be \"", argv[0],
- " ID", 0);
+ " ID", NULL);
return TCL_ERROR;
}
if( argv[1][0]=='*' && argv[1][1]==0 ){
@@ -247,7 +247,7 @@ static int SQLITE_TCLAPI tcl_thread_halt(
i = parse_thread_id(interp, argv[1]);
if( i<0 ) return TCL_ERROR;
if( !threadset[i].busy ){
- Tcl_AppendResult(interp, "no such thread", 0);
+ Tcl_AppendResult(interp, "no such thread", NULL);
return TCL_ERROR;
}
test_stop_thread(&threadset[i]);
@@ -272,18 +272,18 @@ static int SQLITE_TCLAPI tcl_thread_argc(
if( argc!=2 ){
Tcl_AppendResult(interp, "wrong # args: should be \"", argv[0],
- " ID", 0);
+ " ID", NULL);
return TCL_ERROR;
}
i = parse_thread_id(interp, argv[1]);
if( i<0 ) return TCL_ERROR;
if( !threadset[i].busy ){
- Tcl_AppendResult(interp, "no such thread", 0);
+ Tcl_AppendResult(interp, "no such thread", NULL);
return TCL_ERROR;
}
test_thread_wait(&threadset[i]);
sqlite3_snprintf(sizeof(zBuf), zBuf, "%d", threadset[i].argc);
- Tcl_AppendResult(interp, zBuf, 0);
+ Tcl_AppendResult(interp, zBuf, NULL);
return TCL_OK;
}
@@ -304,22 +304,22 @@ static int SQLITE_TCLAPI tcl_thread_argv(
if( argc!=3 ){
Tcl_AppendResult(interp, "wrong # args: should be \"", argv[0],
- " ID N", 0);
+ " ID N", NULL);
return TCL_ERROR;
}
i = parse_thread_id(interp, argv[1]);
if( i<0 ) return TCL_ERROR;
if( !threadset[i].busy ){
- Tcl_AppendResult(interp, "no such thread", 0);
+ Tcl_AppendResult(interp, "no such thread", NULL);
return TCL_ERROR;
}
if( Tcl_GetInt(interp, argv[2], &n) ) return TCL_ERROR;
test_thread_wait(&threadset[i]);
if( n<0 || n>=threadset[i].argc ){
- Tcl_AppendResult(interp, "column number out of range", 0);
+ Tcl_AppendResult(interp, "column number out of range", NULL);
return TCL_ERROR;
}
- Tcl_AppendResult(interp, threadset[i].argv[n], 0);
+ Tcl_AppendResult(interp, threadset[i].argv[n], NULL);
return TCL_OK;
}
@@ -340,22 +340,22 @@ static int SQLITE_TCLAPI tcl_thread_colname(
if( argc!=3 ){
Tcl_AppendResult(interp, "wrong # args: should be \"", argv[0],
- " ID N", 0);
+ " ID N", NULL);
return TCL_ERROR;
}
i = parse_thread_id(interp, argv[1]);
if( i<0 ) return TCL_ERROR;
if( !threadset[i].busy ){
- Tcl_AppendResult(interp, "no such thread", 0);
+ Tcl_AppendResult(interp, "no such thread", NULL);
return TCL_ERROR;
}
if( Tcl_GetInt(interp, argv[2], &n) ) return TCL_ERROR;
test_thread_wait(&threadset[i]);
if( n<0 || n>=threadset[i].argc ){
- Tcl_AppendResult(interp, "column number out of range", 0);
+ Tcl_AppendResult(interp, "column number out of range", NULL);
return TCL_ERROR;
}
- Tcl_AppendResult(interp, threadset[i].colv[n], 0);
+ Tcl_AppendResult(interp, threadset[i].colv[n], NULL);
return TCL_OK;
}
@@ -376,18 +376,18 @@ static int SQLITE_TCLAPI tcl_thread_result(
if( argc!=2 ){
Tcl_AppendResult(interp, "wrong # args: should be \"", argv[0],
- " ID", 0);
+ " ID", NULL);
return TCL_ERROR;
}
i = parse_thread_id(interp, argv[1]);
if( i<0 ) return TCL_ERROR;
if( !threadset[i].busy ){
- Tcl_AppendResult(interp, "no such thread", 0);
+ Tcl_AppendResult(interp, "no such thread", NULL);
return TCL_ERROR;
}
test_thread_wait(&threadset[i]);
zName = sqlite3ErrName(threadset[i].rc);
- Tcl_AppendResult(interp, zName, 0);
+ Tcl_AppendResult(interp, zName, NULL);
return TCL_OK;
}
@@ -407,17 +407,17 @@ static int SQLITE_TCLAPI tcl_thread_error(
if( argc!=2 ){
Tcl_AppendResult(interp, "wrong # args: should be \"", argv[0],
- " ID", 0);
+ " ID", NULL);
return TCL_ERROR;
}
i = parse_thread_id(interp, argv[1]);
if( i<0 ) return TCL_ERROR;
if( !threadset[i].busy ){
- Tcl_AppendResult(interp, "no such thread", 0);
+ Tcl_AppendResult(interp, "no such thread", NULL);
return TCL_ERROR;
}
test_thread_wait(&threadset[i]);
- Tcl_AppendResult(interp, threadset[i].zErr, 0);
+ Tcl_AppendResult(interp, threadset[i].zErr, NULL);
return TCL_OK;
}
@@ -451,13 +451,13 @@ static int SQLITE_TCLAPI tcl_thread_compile(
int i;
if( argc!=3 ){
Tcl_AppendResult(interp, "wrong # args: should be \"", argv[0],
- " ID SQL", 0);
+ " ID SQL", NULL);
return TCL_ERROR;
}
i = parse_thread_id(interp, argv[1]);
if( i<0 ) return TCL_ERROR;
if( !threadset[i].busy ){
- Tcl_AppendResult(interp, "no such thread", 0);
+ Tcl_AppendResult(interp, "no such thread", NULL);
return TCL_ERROR;
}
test_thread_wait(&threadset[i]);
@@ -505,13 +505,13 @@ static int SQLITE_TCLAPI tcl_thread_step(
int i;
if( argc!=2 ){
Tcl_AppendResult(interp, "wrong # args: should be \"", argv[0],
- " IDL", 0);
+ " IDL", NULL);
return TCL_ERROR;
}
i = parse_thread_id(interp, argv[1]);
if( i<0 ) return TCL_ERROR;
if( !threadset[i].busy ){
- Tcl_AppendResult(interp, "no such thread", 0);
+ Tcl_AppendResult(interp, "no such thread", NULL);
return TCL_ERROR;
}
test_thread_wait(&threadset[i]);
@@ -548,13 +548,13 @@ static int SQLITE_TCLAPI tcl_thread_finalize(
int i;
if( argc!=2 ){
Tcl_AppendResult(interp, "wrong # args: should be \"", argv[0],
- " IDL", 0);
+ " IDL", NULL);
return TCL_ERROR;
}
i = parse_thread_id(interp, argv[1]);
if( i<0 ) return TCL_ERROR;
if( !threadset[i].busy ){
- Tcl_AppendResult(interp, "no such thread", 0);
+ Tcl_AppendResult(interp, "no such thread", NULL);
return TCL_ERROR;
}
test_thread_wait(&threadset[i]);
@@ -581,20 +581,20 @@ static int SQLITE_TCLAPI tcl_thread_swap(
sqlite3 *temp;
if( argc!=3 ){
Tcl_AppendResult(interp, "wrong # args: should be \"", argv[0],
- " ID1 ID2", 0);
+ " ID1 ID2", NULL);
return TCL_ERROR;
}
i = parse_thread_id(interp, argv[1]);
if( i<0 ) return TCL_ERROR;
if( !threadset[i].busy ){
- Tcl_AppendResult(interp, "no such thread", 0);
+ Tcl_AppendResult(interp, "no such thread", NULL);
return TCL_ERROR;
}
test_thread_wait(&threadset[i]);
j = parse_thread_id(interp, argv[2]);
if( j<0 ) return TCL_ERROR;
if( !threadset[j].busy ){
- Tcl_AppendResult(interp, "no such thread", 0);
+ Tcl_AppendResult(interp, "no such thread", NULL);
return TCL_ERROR;
}
test_thread_wait(&threadset[j]);
@@ -622,13 +622,13 @@ static int SQLITE_TCLAPI tcl_thread_db_get(
extern int sqlite3TestMakePointerStr(Tcl_Interp*, char*, void*);
if( argc!=2 ){
Tcl_AppendResult(interp, "wrong # args: should be \"", argv[0],
- " ID", 0);
+ " ID", NULL);
return TCL_ERROR;
}
i = parse_thread_id(interp, argv[1]);
if( i<0 ) return TCL_ERROR;
if( !threadset[i].busy ){
- Tcl_AppendResult(interp, "no such thread", 0);
+ Tcl_AppendResult(interp, "no such thread", NULL);
return TCL_ERROR;
}
test_thread_wait(&threadset[i]);
@@ -653,13 +653,13 @@ static int SQLITE_TCLAPI tcl_thread_db_put(
extern void *sqlite3TestTextToPtr(const char *);
if( argc!=3 ){
Tcl_AppendResult(interp, "wrong # args: should be \"", argv[0],
- " ID DB", 0);
+ " ID DB", NULL);
return TCL_ERROR;
}
i = parse_thread_id(interp, argv[1]);
if( i<0 ) return TCL_ERROR;
if( !threadset[i].busy ){
- Tcl_AppendResult(interp, "no such thread", 0);
+ Tcl_AppendResult(interp, "no such thread", NULL);
return TCL_ERROR;
}
test_thread_wait(&threadset[i]);
@@ -685,13 +685,13 @@ static int SQLITE_TCLAPI tcl_thread_stmt_get(
extern int sqlite3TestMakePointerStr(Tcl_Interp*, char*, void*);
if( argc!=2 ){
Tcl_AppendResult(interp, "wrong # args: should be \"", argv[0],
- " ID", 0);
+ " ID", NULL);
return TCL_ERROR;
}
i = parse_thread_id(interp, argv[1]);
if( i<0 ) return TCL_ERROR;
if( !threadset[i].busy ){
- Tcl_AppendResult(interp, "no such thread", 0);
+ Tcl_AppendResult(interp, "no such thread", NULL);
return TCL_ERROR;
}
test_thread_wait(&threadset[i]);
diff --git a/src/test5.c b/src/test5.c
index 334b5d07f..06d2de911 100644
--- a/src/test5.c
+++ b/src/test5.c
@@ -67,7 +67,7 @@ static int SQLITE_TCLAPI test_value_overhead(
if( objc!=3 ){
Tcl_AppendResult(interp, "wrong # args: should be \"",
- Tcl_GetStringFromObj(objv[0], 0), " <repeat-count> <do-calls>", 0);
+ Tcl_GetStringFromObj(objv[0], 0), " <repeat-count> <do-calls>", NULL);
return TCL_ERROR;
}
@@ -106,7 +106,7 @@ static u8 name_to_enc(Tcl_Interp *interp, Tcl_Obj *pObj){
}
}
if( !pEnc->enc ){
- Tcl_AppendResult(interp, "No such encoding: ", z, 0);
+ Tcl_AppendResult(interp, "No such encoding: ", z, NULL);
}
if( pEnc->enc==SQLITE_UTF16 ){
return SQLITE_UTF16NATIVE;
@@ -135,7 +135,7 @@ static int SQLITE_TCLAPI test_translate(
if( objc!=4 && objc!=5 ){
Tcl_AppendResult(interp, "wrong # args: should be \"",
Tcl_GetStringFromObj(objv[0], 0),
- " <string/blob> <from enc> <to enc>", 0
+ " <string/blob> <from enc> <to enc>", NULL
);
return TCL_ERROR;
}
diff --git a/src/test6.c b/src/test6.c
index 76db640c4..aee7bf12a 100644
--- a/src/test6.c
+++ b/src/test6.c
@@ -755,12 +755,12 @@ static int processDevSymArgs(
){
Tcl_AppendResult(interp,
"Bad option: \"", zOpt,
- "\" - must be \"-characteristics\" or \"-sectorsize\"", 0
+ "\" - must be \"-characteristics\" or \"-sectorsize\"", NULL
);
return TCL_ERROR;
}
if( i==objc-1 ){
- Tcl_AppendResult(interp, "Option requires an argument: \"", zOpt, "\"",0);
+ Tcl_AppendResult(interp, "Option requires an argument: \"", zOpt, "\"", NULL);
return TCL_ERROR;
}
@@ -934,7 +934,7 @@ static int SQLITE_TCLAPI crashParamsObjCmd(
zCrashFile = Tcl_GetStringFromObj(objv[objc-1], &nCrashFile);
if( nCrashFile>=sizeof(g.zCrashFile) ){
- Tcl_AppendResult(interp, "Filename is too long: \"", zCrashFile, "\"", 0);
+ Tcl_AppendResult(interp, "Filename is too long: \"", zCrashFile, "\"", NULL);
goto error;
}
if( Tcl_GetIntFromObj(interp, objv[objc-2], &iDelay) ){
@@ -1044,7 +1044,7 @@ static int SQLITE_TCLAPI jtObjCmd(
if( objc==3 ){
if( strcmp(zParent, "-default") ){
Tcl_AppendResult(interp,
- "bad option \"", zParent, "\": must be -default", 0
+ "bad option \"", zParent, "\": must be -default", NULL
);
return TCL_ERROR;
}
@@ -1055,7 +1055,7 @@ static int SQLITE_TCLAPI jtObjCmd(
zParent = 0;
}
if( jt_register(zParent, objc==3) ){
- Tcl_AppendResult(interp, "Error in jt_register", 0);
+ Tcl_AppendResult(interp, "Error in jt_register", NULL);
return TCL_ERROR;
}
diff --git a/src/test9.c b/src/test9.c
index b5362adb7..62b16795e 100644
--- a/src/test9.c
+++ b/src/test9.c
@@ -56,7 +56,7 @@ static int SQLITE_TCLAPI c_collation_test(
error_out:
Tcl_ResetResult(interp);
- Tcl_AppendResult(interp, "Error testing function: ", zErrFunction, 0);
+ Tcl_AppendResult(interp, "Error testing function: ", zErrFunction, NULL);
return TCL_ERROR;
}
@@ -96,7 +96,7 @@ static int SQLITE_TCLAPI c_realloc_test(
error_out:
Tcl_ResetResult(interp);
- Tcl_AppendResult(interp, "Error testing function: ", zErrFunction, 0);
+ Tcl_AppendResult(interp, "Error testing function: ", zErrFunction, NULL);
return TCL_ERROR;
}
@@ -174,7 +174,7 @@ static int SQLITE_TCLAPI c_misuse_test(
error_out:
Tcl_ResetResult(interp);
- Tcl_AppendResult(interp, "Error testing function: ", zErrFunction, 0);
+ Tcl_AppendResult(interp, "Error testing function: ", zErrFunction, NULL);
return TCL_ERROR;
}
diff --git a/src/test_backup.c b/src/test_backup.c
index 8051888ee..ae2348ebc 100644
--- a/src/test_backup.c
+++ b/src/test_backup.c
@@ -135,7 +135,7 @@ static int SQLITE_TCLAPI backupTestInit(
pBackup = sqlite3_backup_init(pDestDb, zDestName, pSrcDb, zSrcName);
if( !pBackup ){
- Tcl_AppendResult(interp, "sqlite3_backup_init() failed", 0);
+ Tcl_AppendResult(interp, "sqlite3_backup_init() failed", NULL);
return TCL_ERROR;
}
diff --git a/src/test_blob.c b/src/test_blob.c
index bddad240c..ae5a73417 100644
--- a/src/test_blob.c
+++ b/src/test_blob.c
@@ -237,7 +237,7 @@ static int SQLITE_TCLAPI test_blob_read(
if( nByte>0 ){
zBuf = (unsigned char *)Tcl_AttemptAlloc(nByte);
if( zBuf==0 ){
- Tcl_AppendResult(interp, "out of memory in " __FILE__, 0);
+ Tcl_AppendResult(interp, "out of memory in " __FILE__, NULL);
return TCL_ERROR;
}
}
diff --git a/src/test_fs.c b/src/test_fs.c
index d821a83b9..1c47bbaac 100644
--- a/src/test_fs.c
+++ b/src/test_fs.c
@@ -69,18 +69,15 @@
#include <sys/stat.h>
#include <fcntl.h>
-#if SQLITE_OS_UNIX || defined(__MINGW_H)
+#if !defined(_WIN32) || defined(__MSVCRT__)
# include <unistd.h>
# include <dirent.h>
# ifndef DIRENT
# define DIRENT dirent
# endif
-#endif
-#if SQLITE_OS_WIN
+#else
# include <io.h>
-# if !defined(__MINGW_H)
-# include "test_windirent.h"
-# endif
+# include "test_windirent.h"
# ifndef S_ISREG
# define S_ISREG(mode) (((mode) & S_IFMT) == S_IFREG)
# endif
@@ -485,7 +482,7 @@ static int fstreeFilter(
int nDir;
char aWild[2] = { '\0', '\0' };
-#if SQLITE_OS_WIN
+#ifdef _WIN32
const char *zDrive = windirent_getenv("fstreeDrive");
if( zDrive==0 ){
zDrive = windirent_getenv("SystemDrive");
@@ -538,7 +535,7 @@ static int fstreeFilter(
sqlite3_bind_text(pCsr->pStmt, 2, zRoot, nRoot, SQLITE_TRANSIENT);
sqlite3_bind_text(pCsr->pStmt, 3, zPrefix, nPrefix, SQLITE_TRANSIENT);
-#if SQLITE_OS_WIN
+#ifdef _WIN32
sqlite3_free(zPrefix);
sqlite3_free(zRoot);
#endif
diff --git a/src/test_hexio.c b/src/test_hexio.c
index 1a21e89aa..048ab1324 100644
--- a/src/test_hexio.c
+++ b/src/test_hexio.c
@@ -122,7 +122,7 @@ static int SQLITE_TCLAPI hexio_read(
in = fopen(zFile, "r");
}
if( in==0 ){
- Tcl_AppendResult(interp, "cannot open input file ", zFile, 0);
+ Tcl_AppendResult(interp, "cannot open input file ", zFile, NULL);
return TCL_ERROR;
}
fseek(in, offset, SEEK_SET);
@@ -132,7 +132,7 @@ static int SQLITE_TCLAPI hexio_read(
got = 0;
}
sqlite3TestBinToHex(zBuf, got);
- Tcl_AppendResult(interp, zBuf, 0);
+ Tcl_AppendResult(interp, zBuf, NULL);
sqlite3_free(zBuf);
return TCL_OK;
}
@@ -175,7 +175,7 @@ static int SQLITE_TCLAPI hexio_write(
out = fopen(zFile, "r+");
}
if( out==0 ){
- Tcl_AppendResult(interp, "cannot open output file ", zFile, 0);
+ Tcl_AppendResult(interp, "cannot open output file ", zFile, NULL);
return TCL_ERROR;
}
fseek(out, offset, SEEK_SET);
@@ -324,12 +324,12 @@ static int SQLITE_TCLAPI utf8_to_utf8(
z[n] = 0;
nOut = sqlite3Utf8To8(z);
sqlite3TestBinToHex(z,nOut);
- Tcl_AppendResult(interp, (char*)z, 0);
+ Tcl_AppendResult(interp, (char*)z, NULL);
sqlite3_free(z);
return TCL_OK;
#else
Tcl_AppendResult(interp,
- "[utf8_to_utf8] unavailable - SQLITE_DEBUG not defined", 0
+ "[utf8_to_utf8] unavailable - SQLITE_DEBUG not defined", NULL
);
return TCL_ERROR;
#endif
diff --git a/src/test_init.c b/src/test_init.c
index f7b85875b..0c6ac8eb5 100644
--- a/src/test_init.c
+++ b/src/test_init.c
@@ -201,7 +201,7 @@ static int SQLITE_TCLAPI init_wrapper_install(
}else if( strcmp(z, "pcache")==0 ){
wrapped.pcache_fail = 1;
}else{
- Tcl_AppendResult(interp, "Unknown argument: \"", z, "\"");
+ Tcl_AppendResult(interp, "Unknown argument: \"", z, "\"", NULL);
return TCL_ERROR;
}
}
diff --git a/src/test_malloc.c b/src/test_malloc.c
index 8d6c4fa50..1c19d896f 100644
--- a/src/test_malloc.c
+++ b/src/test_malloc.c
@@ -646,7 +646,7 @@ static int SQLITE_TCLAPI test_memdebug_fail(
}
if( zErr ){
- Tcl_AppendResult(interp, zErr, zOption, 0);
+ Tcl_AppendResult(interp, zErr, zOption, NULL);
return TCL_ERROR;
}
}
diff --git a/src/test_multiplex.c b/src/test_multiplex.c
index e5b43f4cc..82551200f 100644
--- a/src/test_multiplex.c
+++ b/src/test_multiplex.c
@@ -1315,8 +1315,8 @@ static int SQLITE_TCLAPI test_multiplex_control(
}
if( 0==Tcl_GetCommandInfo(interp, Tcl_GetString(objv[1]), &cmdInfo) ){
- Tcl_AppendResult(interp, "expected database handle, got \"", 0);
- Tcl_AppendResult(interp, Tcl_GetString(objv[1]), "\"", 0);
+ Tcl_AppendResult(interp, "expected database handle, got \"", NULL);
+ Tcl_AppendResult(interp, Tcl_GetString(objv[1]), "\"", NULL);
return TCL_ERROR;
}else{
db = *(sqlite3 **)cmdInfo.objClientData;
diff --git a/src/test_mutex.c b/src/test_mutex.c
index e60a06df3..de064de4c 100644
--- a/src/test_mutex.c
+++ b/src/test_mutex.c
@@ -225,8 +225,8 @@ static int SQLITE_TCLAPI test_install_mutex_counters(
assert(isInstall==0 || isInstall==1);
assert(g.isInstalled==0 || g.isInstalled==1);
if( isInstall==g.isInstalled ){
- Tcl_AppendResult(interp, "mutex counters are ", 0);
- Tcl_AppendResult(interp, isInstall?"already installed":"not installed", 0);
+ Tcl_AppendResult(interp, "mutex counters are ", NULL);
+ Tcl_AppendResult(interp, isInstall?"already installed":"not installed", NULL);
return TCL_ERROR;
}
diff --git a/src/test_osinst.c b/src/test_osinst.c
index 2d03d2bbc..e776d89e5 100644
--- a/src/test_osinst.c
+++ b/src/test_osinst.c
@@ -71,9 +71,8 @@
#include "sqlite3.h"
-#include "os_setup.h"
-#if SQLITE_OS_WIN
-# include "os_win.h"
+#ifdef _WIN32
+#include <windows.h>
#endif
#include <string.h>
@@ -219,14 +218,7 @@ static sqlite3_io_methods vfslog_io_methods = {
vfslogShmUnmap /* xShmUnmap */
};
-#if SQLITE_OS_UNIX && !defined(NO_GETTOD)
-#include <sys/time.h>
-static sqlite3_uint64 vfslog_time(){
- struct timeval sTime;
- gettimeofday(&sTime, 0);
- return sTime.tv_usec + (sqlite3_uint64)sTime.tv_sec * 1000000;
-}
-#elif SQLITE_OS_WIN
+#ifdef _WIN32
#include <time.h>
static sqlite3_uint64 vfslog_time(){
FILETIME ft;
@@ -241,6 +233,13 @@ static sqlite3_uint64 vfslog_time(){
/* ft is 100-nanosecond intervals, we want microseconds */
return u64time /(sqlite3_uint64)10;
}
+#elif !defined(NO_GETTOD)
+#include <sys/time.h>
+static sqlite3_uint64 vfslog_time(){
+ struct timeval sTime;
+ gettimeofday(&sTime, 0);
+ return sTime.tv_usec + (sqlite3_uint64)sTime.tv_sec * 1000000;
+}
#else
static sqlite3_uint64 vfslog_time(){
return 0;
@@ -1146,7 +1145,7 @@ static int SQLITE_TCLAPI test_vfslog(
zMsg = Tcl_GetString(objv[3]);
rc = sqlite3_vfslog_annotate(zVfs, zMsg);
if( rc!=SQLITE_OK ){
- Tcl_AppendResult(interp, "failed", 0);
+ Tcl_AppendResult(interp, "failed", (char*)0);
return TCL_ERROR;
}
break;
@@ -1160,7 +1159,7 @@ static int SQLITE_TCLAPI test_vfslog(
zVfs = Tcl_GetString(objv[2]);
rc = sqlite3_vfslog_finalize(zVfs);
if( rc!=SQLITE_OK ){
- Tcl_AppendResult(interp, "failed", 0);
+ Tcl_AppendResult(interp, "failed", (char*)0);
return TCL_ERROR;
}
break;
@@ -1180,7 +1179,7 @@ static int SQLITE_TCLAPI test_vfslog(
if( *zParent=='\0' ) zParent = 0;
rc = sqlite3_vfslog_new(zVfs, zParent, zLog);
if( rc!=SQLITE_OK ){
- Tcl_AppendResult(interp, "failed", 0);
+ Tcl_AppendResult(interp, "failed", (char*)0);
return TCL_ERROR;
}
break;
diff --git a/src/test_quota.c b/src/test_quota.c
index 62d808a22..d2f9cddd1 100644
--- a/src/test_quota.c
+++ b/src/test_quota.c
@@ -44,14 +44,12 @@
#define sqlite3_mutex_notheld(X) ((void)(X),1)
#endif /* SQLITE_THREADSAFE==0 */
-#include "os_setup.h"
-#if SQLITE_OS_UNIX
-# include <unistd.h>
-#endif
-#if SQLITE_OS_WIN
-# include "os_win.h"
+#ifdef _WIN32
+# include <windows.h>
# include <io.h>
+#else
+# include <unistd.h>
#endif
@@ -130,7 +128,7 @@ struct quota_FILE {
FILE *f; /* Open stdio file pointer */
sqlite3_int64 iOfst; /* Current offset into the file */
quotaFile *pFile; /* The file record in the quota system */
-#if SQLITE_OS_WIN
+#ifdef _WIN32
char *zMbcsName; /* Full MBCS pathname of the file */
#endif
};
@@ -375,7 +373,7 @@ static quotaFile *quotaFindFile(
** used to store the returned pointer when done.
*/
static char *quota_utf8_to_mbcs(const char *zUtf8){
-#if SQLITE_OS_WIN
+#ifdef _WIN32
size_t n; /* Bytes in zUtf8 */
int nWide; /* number of UTF-16 characters */
int nMbcs; /* Bytes of MBCS */
@@ -410,7 +408,7 @@ static char *quota_utf8_to_mbcs(const char *zUtf8){
** Deallocate any memory allocated by quota_utf8_to_mbcs().
*/
static void quota_mbcs_free(char *zOld){
-#if SQLITE_OS_WIN
+#ifdef _WIN32
sqlite3_free(zOld);
#else
/* No-op on unix */
@@ -970,7 +968,7 @@ quota_FILE *sqlite3_quota_fopen(const char *zFilename, const char *zMode){
}
quotaLeave();
sqlite3_free(zFull);
-#if SQLITE_OS_WIN
+#ifdef _WIN32
p->zMbcsName = zFullTranslated;
#endif
return p;
@@ -1073,7 +1071,7 @@ int sqlite3_quota_fclose(quota_FILE *p){
}
quotaLeave();
}
-#if SQLITE_OS_WIN
+#ifdef _WIN32
quota_mbcs_free(p->zMbcsName);
#endif
sqlite3_free(p);
@@ -1087,11 +1085,10 @@ int sqlite3_quota_fflush(quota_FILE *p, int doFsync){
int rc;
rc = fflush(p->f);
if( rc==0 && doFsync ){
-#if SQLITE_OS_UNIX
- rc = fsync(fileno(p->f));
-#endif
-#if SQLITE_OS_WIN
+#ifdef _WIN32
rc = _commit(_fileno(p->f));
+#else
+ rc = fsync(fileno(p->f));
#endif
}
return rc!=0;
@@ -1143,17 +1140,16 @@ int sqlite3_quota_ftruncate(quota_FILE *p, sqlite3_int64 szNew){
pGroup->iSize += szNew - pFile->iSize;
quotaLeave();
}
-#if SQLITE_OS_UNIX
- rc = ftruncate(fileno(p->f), szNew);
-#endif
-#if SQLITE_OS_WIN
-# if defined(__MINGW32__) && defined(SQLITE_TEST)
+#ifdef _WIN32
+# if defined(__MSVCRT__) && defined(SQLITE_TEST)
/* _chsize_s() is missing from MingW (as of 2012-11-06). Use
** _chsize() as a work-around for testing purposes. */
rc = _chsize(_fileno(p->f), (long)szNew);
# else
rc = _chsize_s(_fileno(p->f), szNew);
# endif
+#else
+ rc = ftruncate(fileno(p->f), szNew);
#endif
if( pFile && rc==0 ){
quotaGroup *pGroup = pFile->pGroup;
@@ -1172,13 +1168,12 @@ int sqlite3_quota_ftruncate(quota_FILE *p, sqlite3_int64 szNew){
*/
int sqlite3_quota_file_mtime(quota_FILE *p, time_t *pTime){
int rc;
-#if SQLITE_OS_UNIX
- struct stat buf;
- rc = fstat(fileno(p->f), &buf);
-#endif
-#if SQLITE_OS_WIN
+#ifdef _WIN32
struct _stati64 buf;
rc = _stati64(p->zMbcsName, &buf);
+#else
+ struct stat buf;
+ rc = fstat(fileno(p->f), &buf);
#endif
if( rc==0 ) *pTime = buf.st_mtime;
return rc;
@@ -1190,13 +1185,12 @@ int sqlite3_quota_file_mtime(quota_FILE *p, time_t *pTime){
*/
sqlite3_int64 sqlite3_quota_file_truesize(quota_FILE *p){
int rc;
-#if SQLITE_OS_UNIX
- struct stat buf;
- rc = fstat(fileno(p->f), &buf);
-#endif
-#if SQLITE_OS_WIN
+#ifdef _WIN32
struct _stati64 buf;
rc = _stati64(p->zMbcsName, &buf);
+#else
+ struct stat buf;
+ rc = fstat(fileno(p->f), &buf);
#endif
return rc==0 ? buf.st_size : -1;
}
diff --git a/src/test_sqllog.c b/src/test_sqllog.c
index 9ae0e5068..5abf59a8b 100644
--- a/src/test_sqllog.c
+++ b/src/test_sqllog.c
@@ -84,7 +84,7 @@
#include <sys/types.h>
#include <unistd.h>
static int getProcessId(void){
-#if SQLITE_OS_WIN
+#ifdef _WIN32
return (int)_getpid();
#else
return (int)getpid();
diff --git a/src/test_superlock.c b/src/test_superlock.c
index 7f3bf163a..82997927c 100644
--- a/src/test_superlock.c
+++ b/src/test_superlock.c
@@ -338,7 +338,7 @@ static int SQLITE_TCLAPI superlock_cmd(
if( rc!=SQLITE_OK ){
extern const char *sqlite3ErrStr(int);
Tcl_ResetResult(interp);
- Tcl_AppendResult(interp, sqlite3ErrStr(rc), 0);
+ Tcl_AppendResult(interp, sqlite3ErrStr(rc), NULL);
return TCL_ERROR;
}
diff --git a/src/test_syscall.c b/src/test_syscall.c
index af2ae1001..35c303f8e 100644
--- a/src/test_syscall.c
+++ b/src/test_syscall.c
@@ -686,7 +686,7 @@ static int SQLITE_TCLAPI test_syscall_pagesize(
}
}else{
if( pgsz<512 || (pgsz & (pgsz-1)) ){
- Tcl_AppendResult(interp, "pgsz out of range", 0);
+ Tcl_AppendResult(interp, "pgsz out of range", NULL);
return TCL_ERROR;
}
gSyscall.orig_getpagesize = pVfs->xGetSystemCall(pVfs, "getpagesize");
@@ -729,7 +729,7 @@ static int SQLITE_TCLAPI test_syscall(
return TCL_ERROR;
}
if( pVfs->iVersion<3 || pVfs->xSetSystemCall==0 ){
- Tcl_AppendResult(interp, "VFS does not support xSetSystemCall", 0);
+ Tcl_AppendResult(interp, "VFS does not support xSetSystemCall", NULL);
rc = TCL_ERROR;
}else{
rc = Tcl_GetIndexFromObjStruct(interp,
diff --git a/src/test_thread.c b/src/test_thread.c
index 7c06d110a..98ef2c246 100644
--- a/src/test_thread.c
+++ b/src/test_thread.c
@@ -201,7 +201,7 @@ static int SQLITE_TCLAPI sqlthread_spawn(
rc = Tcl_CreateThread(&x, tclScriptThread, (void *)pNew, nStack, flags);
if( rc!=TCL_OK ){
- Tcl_AppendResult(interp, "Error in Tcl_CreateThread()", 0);
+ Tcl_AppendResult(interp, "Error in Tcl_CreateThread()", NULL);
ckfree((char *)pNew);
return TCL_ERROR;
}
@@ -235,7 +235,7 @@ static int SQLITE_TCLAPI sqlthread_parent(
UNUSED_PARAMETER(objc);
if( p==0 ){
- Tcl_AppendResult(interp, "no parent thread", 0);
+ Tcl_AppendResult(interp, "no parent thread", NULL);
return TCL_ERROR;
}
@@ -287,7 +287,7 @@ static int SQLITE_TCLAPI sqlthread_open(
sqlite3_busy_handler(db, xBusy, 0);
if( sqlite3TestMakePointerStr(interp, zBuf, db) ) return TCL_ERROR;
- Tcl_AppendResult(interp, zBuf, 0);
+ Tcl_AppendResult(interp, zBuf, NULL);
return TCL_OK;
}
@@ -614,13 +614,13 @@ static int SQLITE_TCLAPI blocking_prepare_v2_proc(
if( rc!=SQLITE_OK ){
assert( pStmt==0 );
sqlite3_snprintf(sizeof(zBuf), zBuf, "%s ", (char *)sqlite3ErrName(rc));
- Tcl_AppendResult(interp, zBuf, sqlite3_errmsg(db), 0);
+ Tcl_AppendResult(interp, zBuf, sqlite3_errmsg(db), NULL);
return TCL_ERROR;
}
if( pStmt ){
if( sqlite3TestMakePointerStr(interp, zBuf, pStmt) ) return TCL_ERROR;
- Tcl_AppendResult(interp, zBuf, 0);
+ Tcl_AppendResult(interp, zBuf, NULL);
}
return TCL_OK;
}
diff --git a/src/test_vfs.c b/src/test_vfs.c
index f75ef956b..0d90a53a5 100644
--- a/src/test_vfs.c
+++ b/src/test_vfs.c
@@ -1138,7 +1138,7 @@ static int SQLITE_TCLAPI testvfs_obj_cmd(
);
if( rc!=SQLITE_OK ){
Tcl_AppendResult(interp, "failed to get full path: ",
- Tcl_GetString(objv[2]), 0);
+ Tcl_GetString(objv[2]), NULL);
ckfree(zName);
return TCL_ERROR;
}
@@ -1147,7 +1147,7 @@ static int SQLITE_TCLAPI testvfs_obj_cmd(
}
ckfree(zName);
if( !pBuffer ){
- Tcl_AppendResult(interp, "no such file: ", Tcl_GetString(objv[2]), 0);
+ Tcl_AppendResult(interp, "no such file: ", Tcl_GetString(objv[2]), NULL);
return TCL_ERROR;
}
if( objc==4 ){
@@ -1225,7 +1225,7 @@ static int SQLITE_TCLAPI testvfs_obj_cmd(
}
}
if( iMethod==ArraySize(vfsmethod) ){
- Tcl_AppendResult(interp, "unknown method: ", zElem, 0);
+ Tcl_AppendResult(interp, "unknown method: ", zElem, NULL);
return TCL_ERROR;
}
}
@@ -1353,7 +1353,7 @@ static int SQLITE_TCLAPI testvfs_obj_cmd(
return TCL_ERROR;
}
if( aFlag[idx].iValue<0 && nFlags>1 ){
- Tcl_AppendResult(interp, "bad flags: ", Tcl_GetString(objv[2]), 0);
+ Tcl_AppendResult(interp, "bad flags: ", Tcl_GetString(objv[2]), NULL);
return TCL_ERROR;
}
iNew |= aFlag[idx].iValue;
@@ -1673,7 +1673,7 @@ static int SQLITE_TCLAPI test_vfs_set_readmark(
return TCL_ERROR;
}
if( pShm==0 ){
- Tcl_AppendResult(interp, "*-shm is not yet mapped", 0);
+ Tcl_AppendResult(interp, "*-shm is not yet mapped", NULL);
return TCL_ERROR;
}
aShm = (u32*)pShm;