From: dan Date: Mon, 2 Dec 2024 20:48:17 +0000 (+0000) Subject: Fix a problem with SQLITE_OS_WINRT builds. X-Git-Tag: major-release~248^2~31 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9d592359fea061435c20d5fc1161f0d8eb95e5b2;p=thirdparty%2Fsqlite.git Fix a problem with SQLITE_OS_WINRT builds. FossilOrigin-Name: baf43e8c7da6aacce874ec30d0c9e1dcb44c5ed9de2214099d42fbbd335d2e93 --- diff --git a/manifest b/manifest index c411fc8ac9..916afd3b58 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C On\swindows,\suse\sa\sseparate\shandle\sfor\seach\sconnection\sfor\sxShmLock()\slocks. -D 2024-11-30T20:00:54.166 +C Fix\sa\sproblem\swith\sSQLITE_OS_WINRT\sbuilds. +D 2024-12-02T20:48:17.522 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea F LICENSE.md e108e1e69ae8e8a59e93c455654b8ac9356a11720d3345df2a4743e9590fb20d @@ -759,7 +759,7 @@ F src/os_common.h 6c0eb8dd40ef3e12fe585a13e709710267a258e2c8dd1c40b1948a1d14582e F src/os_kv.c 4d39e1f1c180b11162c6dc4aa8ad34053873a639bac6baae23272fc03349986a F src/os_setup.h 6011ad7af5db4e05155f385eb3a9b4470688de6f65d6166b8956e58a3d872107 F src/os_unix.c d4a33e8fbd1c6eb722a21b6ce1eee1213ec856170a2f256d99f3d2978f054f5a -F src/os_win.c 723fde7bfc915a3651620337788a7c2120b216e057d1c70ffad15b6389a59ff1 +F src/os_win.c 87a6590fa43efbf64b58269fef10df5b766841603b6ac0bf025fac74901f45c7 F src/os_win.h 7b073010f1451abe501be30d12f6bc599824944a F src/pager.c 9656ad4e8331efb8a4f94f7a0c6440b98caea073950a367ea0c728a53b8e62c9 F src/pager.h 4b1140d691860de0be1347474c51fee07d5420bd7f802d38cbab8ea4ab9f538a @@ -785,7 +785,7 @@ F src/status.c cb11f8589a6912af2da3bb1ec509a94dd8ef27df4d4c1a97e0bcf2309ece972b F src/table.c 0f141b58a16de7e2fbe81c308379e7279f4c6b50eb08efeec5892794a0ba30d1 F src/tclsqlite.c 1c2f697cb12a1d49f5e0b448327f7cf614809423bb43753b2d97f87354298113 F src/tclsqlite.h 65e2c761446e1c9fa0342b7d2612a703483643c8b6a316d12a65b745a4727395 -F src/test1.c 2d507751bfb4aa254dc22588ef1e3c5c5cfcb2e636d0e6e1fa0bbd307669c2a8 +F src/test1.c 2c63b1f57d86104dcb12a722063b193031ed9e27268eacfc029c1a3c2997bc76 F src/test2.c 7ebc518e6735939d8979273a6f7b1d9b5702babf059f6ad62499f7f60a9eb9a3 F src/test3.c e7573aa0f78ee4e070a4bc8c3493941c1aa64d5c66d4825c74c0f055451f432b F src/test4.c 13e57ae7ec7a959ee180970aef09deed141252fe9bb07c61054f0dfa4f1dfd5d @@ -818,7 +818,7 @@ F src/test_mutex.c f10fcbc2086b19c7b0ddf2752caf2095e42be74d8d7f6093619445b43b1f7 F src/test_onefile.c f31e52e891c5fef6709b9fcef54ce660648a34172423a9cbdf4cbce3ba0049f4 F src/test_osinst.c 7aa3feaa3a1da1b5f75bde2ce958dbfe14ec484f065bb2b5b9727d8851fa089b F src/test_pcache.c 496da3f7e2ca66aefbc36bbf22138b1eff43ba0dff175c228b760fa020a37bd0 -F src/test_quota.c 07369655d24c3f3fbdbd8fd8f42e856a054a7497846ca1c83ed4be68152a251f +F src/test_quota.c 744552848d9c5c5de3920d1c44b03d425a4123a223310567a199c7e0d3fe80bf F src/test_quota.h 2a8ad1952d1d2ca9af0ce0465e56e6c023b5e15d F src/test_rtree.c d844d746a3cc027247318b970025a927f14772339c991f40e7911583ea5ed0d9 F src/test_schema.c b06d3ddc3edc173c143878f3edb869dd200d57d918ae2f38820534f9a5e3d7d9 @@ -2199,8 +2199,8 @@ F tool/version-info.c 3b36468a90faf1bbd59c65fd0eb66522d9f941eedd364fabccd7227350 F tool/warnings-clang.sh bbf6a1e685e534c92ec2bfba5b1745f34fb6f0bc2a362850723a9ee87c1b31a7 F tool/warnings.sh 49a486c5069de041aedcbde4de178293e0463ae9918ecad7539eedf0ec77a139 F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f -P 7a32b497ab16774021924a8536e1025a0a01740a6484f0de17623a69713511d8 -R aa1565a5ee340c089d18e4ebbcdc312d +P 272d552f126357d7bc16d84f13a4bea823abc6ef7faf90e3cffcedb68210f52a +R e892c1228a636d88e5e0280f26d48ad6 U dan -Z 8c1e110aa2184c18c39efa79a8266428 +Z cbe84d70a2ef7e0a156c55e07ebb1ddb # Remove this line to create a well-formed Fossil manifest. diff --git a/manifest.uuid b/manifest.uuid index 2963ba4d75..93f35d5ecb 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -272d552f126357d7bc16d84f13a4bea823abc6ef7faf90e3cffcedb68210f52a +baf43e8c7da6aacce874ec30d0c9e1dcb44c5ed9de2214099d42fbbd335d2e93 diff --git a/src/os_win.c b/src/os_win.c index 82ec15f3b9..a02b0c5358 100644 --- a/src/os_win.c +++ b/src/os_win.c @@ -4093,6 +4093,22 @@ static int winOpenFile( /* TODO: platforms. ** TODO: retry-on-ioerr. */ +#if SQLITE_OS_WINRT + { + CREATEFILE2_EXTENDED_PARAMETERS extendedParameters; + memset(&extendedParameters, 0, sizeof(extendedParameters)); + extendedParameters.dwSize = sizeof(extendedParameters); + extendedParameters.dwFileAttributes = FILE_ATTRIBUTE_NORMAL; + extendedParameters.dwFileFlags = FILE_FLAG_OVERLAPPED; + extendedParameters.dwSecurityQosFlags = SECURITY_ANONYMOUS; + h = osCreateFile2((LPCWSTR)zConverted, + (GENERIC_READ | (bReadonly ? 0 : GENERIC_WRITE)),/* dwDesiredAccess */ + FILE_SHARE_READ | FILE_SHARE_WRITE, /* dwShareMode */ + OPEN_ALWAYS, /* dwCreationDisposition */ + &extendedParameters + ); + } +#else h = osCreateFileW((LPCWSTR)zConverted, /* lpFileName */ (GENERIC_READ | (bReadonly ? 0 : GENERIC_WRITE)), /* dwDesiredAccess */ FILE_SHARE_READ | FILE_SHARE_WRITE, /* dwShareMode */ @@ -4101,6 +4117,7 @@ static int winOpenFile( FILE_ATTRIBUTE_NORMAL|FILE_FLAG_OVERLAPPED, NULL ); +#endif if( h==INVALID_HANDLE_VALUE ){ if( bReadonly==0 ){ bReadonly = 1; diff --git a/src/test1.c b/src/test1.c index cf5d484e9e..613e8ca137 100644 --- a/src/test1.c +++ b/src/test1.c @@ -7979,6 +7979,10 @@ static int SQLITE_TCLAPI win32_file_lock( int objc, Tcl_Obj *CONST objv[] ){ +#ifdef SQLITE_OS_WINRT + Tcl_AppendResult(interp, "unsupported test command", (char*)0); + return TCL_ERROR; +#else static struct win32FileLocker x = { "win32_file_lock", 0, 0, 0, 0, 0 }; const char *zFilename; char zBuf[200]; @@ -8029,6 +8033,7 @@ static int SQLITE_TCLAPI win32_file_lock( } CloseHandle(ev); return TCL_OK; +#endif /* !SQLITE_OS_WINRT */ } #endif diff --git a/src/test_quota.c b/src/test_quota.c index 1bfc5ce11c..62d808a22b 100644 --- a/src/test_quota.c +++ b/src/test_quota.c @@ -389,7 +389,11 @@ static char *quota_utf8_to_mbcs(const char *zUtf8){ zTmpWide = (LPWSTR)sqlite3_malloc( (nWide+1)*sizeof(zTmpWide[0]) ); if( zTmpWide==0 ) return 0; MultiByteToWideChar(CP_UTF8, 0, zUtf8, -1, zTmpWide, nWide); +#ifdef SQLITE_OS_WINRT + codepage = CP_ACP; +#else codepage = AreFileApisANSI() ? CP_ACP : CP_OEMCP; +#endif nMbcs = WideCharToMultiByte(codepage, 0, zTmpWide, nWide, 0, 0, 0, 0); zMbcs = nMbcs ? (char*)sqlite3_malloc( nMbcs+1 ) : 0; if( zMbcs ){