- C Sync\sthe\slatest\strunk\schanges\sinto\sthe\swinRT\sbranch.
- D 2012-05-04T23:11:21.989
-C Merge\sWindows\sdirectory\schecking\schanges\sto\strunk.
-D 2012-05-07T18:10:12.605
++C Merge\sWindows\sdirectory\schecking\schanges\sfrom\strunk.
++D 2012-05-07T20:28:19.785
F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f
F Makefile.in 2f37e468503dbe79d35c9f6dffcf3fae1ae9ec20
F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23
F src/os_common.h 92815ed65f805560b66166e3583470ff94478f04
F src/os_os2.c 4a75888ba3dfc820ad5e8177025972d74d7f2440
F src/os_unix.c 424d46e0edab969293c2223f09923b2178171f47
- F src/os_win.c c3487c9c506c1253bb4c65abc3caf988b9addb6c
-F src/os_win.c 412d6434133c7c81dc48b7702f3ea5e61c309e5c
++F src/os_win.c ce348d158b43883c5b1495f68be3f654b7d0c503
F src/pager.c bb5635dde0b152797836d1c72275284724bb563c
F src/pager.h ef1eaf8593e78f73885c1dfac27ad83bee23bdc5
F src/parse.y eb054bb40a5bf90d3422a01ed0e5df229461727a
F src/rowset.c f6a49f3e9579428024662f6e2931832511f831a1
F src/select.c d7b9018b7dd2e821183d69477ab55c39b8272335
F src/shell.c 04399b2f9942bd02ed5ffee3b84bcdb39c52a1e6
- F src/sqlite.h.in 21eb2ff783710a8cf2b435890dc1ffc750058169
-F src/sqlite.h.in b8c6d77179cee6e4b8d6eb9f3c2917626d58acd3
++F src/sqlite.h.in 457e6fb1eef84fbd97864c086499b1de64a05aa5
F src/sqlite3ext.h 6904f4aadf976f95241311fbffb00823075d9477
F src/sqliteInt.h c5e917c4f1453f3972b1fd0c81105dfe4f09cc32
F src/sqliteLimit.h 164b0e6749d31e0daa1a4589a169d31c0dec7b3d
F tool/vdbe-compress.tcl d70ea6d8a19e3571d7ab8c9b75cba86d1173ff0f
F tool/warnings-clang.sh a8a0a3babda96dfb1ff51adda3cbbf3dfb7266c2
F tool/warnings.sh fbc018d67fd7395f440c28f33ef0f94420226381
- P 25478dcff59690a5f59c3b96600374184057eae9 bfa61e781cb442be641486e7e55a1518e888d830
- R ce5ef0f680ccee96865eacdf6d030fb3
- U drh
- Z e6cad85cf7d7f8dd84e66fcbcd8c3674
-P bfa61e781cb442be641486e7e55a1518e888d830 b08530e1a02cba03afefd65dc101e074e8847c07
-R fce36c453dc0cfdd0c18e985348b50c5
++P be4ab188cffbe97ae4f1f0520591bb7f0df185de a4555a53eab3f5d2f142c78a6b71189544e80ae6
++R d4541eb715733c4ea776ae24939baa95
+ U mistachkin
-Z 6287c2c1d24bbcf6d142a68d76da7aa1
++Z 7ca602c491f736ecdcb3f782ba71db3e
#endif
if( isNT() ){
- retryIoerr(&cnt, &lastErrno) ){}
+#if SQLITE_OS_WINRT
+ CREATEFILE2_EXTENDED_PARAMETERS extendedParameters;
+ extendedParameters.dwSize = sizeof(CREATEFILE2_EXTENDED_PARAMETERS);
+ extendedParameters.dwFileAttributes =
+ dwFlagsAndAttributes & FILE_ATTRIBUTE_MASK;
+ extendedParameters.dwFileFlags = dwFlagsAndAttributes & FILE_FLAG_MASK;
+ extendedParameters.dwSecurityQosFlags = SECURITY_ANONYMOUS;
+ extendedParameters.lpSecurityAttributes = NULL;
+ extendedParameters.hTemplateFile = NULL;
+ while( (h = osCreateFile2((LPCWSTR)zConverted,
+ dwDesiredAccess,
+ dwShareMode,
+ dwCreationDisposition,
+ &extendedParameters))==INVALID_HANDLE_VALUE &&
++ retryIoerr(&cnt, &lastErrno) ){
++ /* Noop */
++ }
+#else
while( (h = osCreateFileW((LPCWSTR)zConverted,
dwDesiredAccess,
dwShareMode, NULL,
dwCreationDisposition,
dwFlagsAndAttributes,
NULL))==INVALID_HANDLE_VALUE &&
- retryIoerr(&cnt, &lastErrno) ){}
+ retryIoerr(&cnt, &lastErrno) ){
+ /* Noop */
+ }
-#if SQLITE_OS_WINCE==0
- }else{
+#endif
+ }
+#ifdef SQLITE_WIN32_HAS_ANSI
+ else{
while( (h = osCreateFileA((LPCSTR)zConverted,
dwDesiredAccess,
dwShareMode, NULL,
dwCreationDisposition,
dwFlagsAndAttributes,
NULL))==INVALID_HANDLE_VALUE &&
- retryIoerr(&cnt, &lastErrno) ){}
+ retryIoerr(&cnt, &lastErrno) ){
+ /* Noop */
+ }
-#endif
}
-
+#endif
logIoerr(cnt);
OSTRACE(("OPEN %d %s 0x%lx %s\n",
if( zConverted==0 ){
return SQLITE_IOERR_NOMEM;
}
- rc = 1;
if( isNT() ){
- WIN32_FILE_ATTRIBUTE_DATA sAttrData;
- memset(&sAttrData, 0, sizeof(sAttrData));
- while( osGetFileAttributesExW(zConverted, GetFileExInfoStandard,
- &sAttrData) &&
+ do {
+#if SQLITE_OS_WINRT
- while( osGetFileAttributesW(zConverted)!=INVALID_FILE_ATTRIBUTES &&
++ WIN32_FILE_ATTRIBUTE_DATA sAttrData;
++ memset(&sAttrData, 0, sizeof(sAttrData));
++ if ( osGetFileAttributesExW(zConverted, GetFileExInfoStandard,
++ &sAttrData) ){
++ attr = sAttrData.dwFileAttributes;
++ }else{
++ rc = SQLITE_OK; /* Already gone? */
++ break;
++ }
+#else
- (rc = osDeleteFileW(zConverted))==0 && retryIoerr(&cnt, &lastErrno) ){}
- rc = rc ? SQLITE_OK : SQLITE_ERROR;
+ attr = osGetFileAttributesW(zConverted);
+#endif
-/* isNT() is 1 if SQLITE_OS_WINCE==1, so this else is never executed.
-** Since the ANSI version of these Windows API do not exist for WINCE,
-** it's important to not reference them for WINCE builds.
-*/
-#if SQLITE_OS_WINCE==0
- }else{
+ if ( attr==INVALID_FILE_ATTRIBUTES ){
+ rc = SQLITE_OK; /* Already gone? */
+ break;
+ }
+ if ( attr&FILE_ATTRIBUTE_DIRECTORY ){
+ rc = SQLITE_ERROR; /* Files only. */
+ break;
+ }
+ if ( osDeleteFileW(zConverted) ){
+ rc = SQLITE_OK; /* Deleted OK. */
+ break;
+ }
+ if ( !retryIoerr(&cnt, &lastErrno) ){
+ rc = SQLITE_ERROR; /* No more retries. */
+ break;
+ }
+ } while(1);
- while( osGetFileAttributesA(zConverted)!=INVALID_FILE_ATTRIBUTES &&
- (rc = osDeleteFileA(zConverted))==0 && retryIoerr(&cnt, &lastErrno) ){}
- rc = rc ? SQLITE_OK : SQLITE_ERROR;
+ }
+#ifdef SQLITE_WIN32_HAS_ANSI
+ else{
-#endif
+ do {
+ attr = osGetFileAttributesA(zConverted);
+ if ( attr==INVALID_FILE_ATTRIBUTES ){
+ rc = SQLITE_OK; /* Already gone? */
+ break;
+ }
+ if ( attr&FILE_ATTRIBUTE_DIRECTORY ){
+ rc = SQLITE_ERROR; /* Files only. */
+ break;
+ }
+ if ( osDeleteFileA(zConverted) ){
+ rc = SQLITE_OK; /* Deleted OK. */
+ break;
+ }
+ if ( !retryIoerr(&cnt, &lastErrno) ){
+ rc = SQLITE_ERROR; /* No more retries. */
+ break;
+ }
+ } while(1);
}
+#endif
if( rc ){
rc = winLogError(SQLITE_IOERR_DELETE, lastErrno,
"winDelete", zFilename);