- C Second\sround\sof\scygwin\sfixes:\sthis\smakes\sthe\sfull\s"unix"\svfs\susable\swith\sCygwin\sas\swell.\nNot\sall\stests\sare\sworking\syet.\sWIP!
- D 2025-03-28T08:59:40.930
-C Ensure\sthat\sthe\scompilation\sof\sextensions\sget\sthe\ssame\sCFLAGS\sas\sthe\score\slib.\sMove\sthe\sfeature\sflags\senabled\sby\s--dev\sout\sof\sTARGET_DEBUG\sand\sinto\sOPT_FEATURE_FLAGS\s(for\sconsistency).\sRename\sthe\smake-internal\sgcov-related\sflags\sto\sbe\smore\sdescriptive.\sAt\sthe\send\sof\sthe\sconfigure\sscript,\sif\sSQLITE_DEBUG\sis\sactive\sthen\semit\sa\snote\sreminding\sthe\sbuilder\sthat\sperformance\swill\ssuffer.
-D 2025-03-31T13:08:29.964
++C Feature-complete.\sNot\sall\stest-cases\spass.\sMerge\strunk.
++D 2025-03-31T14:12:44.221
F .fossil-settings/binary-glob 61195414528fb3ea9693577e1980230d78a1f8b0a54c78cf1b9b24d0a409ed6a x
F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
F autosetup/jimsh0.c a57c16e65dcffc9c76e496757cb3f7fb47e01ecbd1631a0a5e01751fc856f049
F autosetup/pkg-config.tcl 4e635bf39022ff65e0d5434339dd41503ea48fc53822c9c5bde88b02d3d952ba
F autosetup/proj.tcl cac07d75249fa127500b8e96080dc807e9ae97fe98d29e84a17bc28f4628e93f
- F autosetup/sqlite-config.tcl 8d7460cfd618e71c82a1c28fafc04044efc55708478dd6f446987861a5618c2b
-F autosetup/sqlite-config.tcl f4ee2028c603fdffb0dfec1a1ac16f5477c8047c728eac6357382f3767ec203b
++F autosetup/sqlite-config.tcl 6893300c8822815d0424f1ea9da82b93732e486bc8d7b2ae9f15050ac1170bf3
F autosetup/system.tcl 51d4be76cd9a9074704b584e5c9cbba616202c8468cf9ba8a4f8294a7ab1dba9
F configure 9a00b21dfd13757bbfb8d89b30660a89ec1f8f3a79402b8f9f9b6fc475c3303a x
F contrib/sqlitecon.tcl eb4c6578e08dd353263958da0dc620f8400b869a50d06e271ab0be85a51a08d3
F src/memjournal.c c283c6c95d940eb9dc70f1863eef3ee40382dbd35e5a1108026e7817c206e8a0
F src/msvc.h 80b35f95d93bf996ccb3e498535255f2ef1118c78764719a7cd15ab4106ccac9
F src/mutex.c 06bcd9c3dbf2d9b21fcd182606c00fafb9bfe0287983c8e17acd13d2c81a2fa9
-F src/mutex.h a7b2293c48db5f27007c3bdb21d438873637d12658f5a0bf8ad025bb96803c4a
+F src/mutex.h e2159f6ce3201c90d63045701f0eaa669e9154e8b79d000982d2fa1467432a94
F src/mutex_noop.c 9d4309c075ba9cc7249e19412d3d62f7f94839c4
F src/mutex_unix.c f7ee5a2061a4c11815a2bf4fc0e2bfa6fb8d9dc89390eb613ca0cec32fc9a3d1
- F src/mutex_w32.c 8a0b91b407adae0936725bf31927c9d0b170596fa0adb246e5f800e97efacb44
+ F src/mutex_w32.c 28f8d480387db5b2ef5248705dd4e19db0cfc12c3ba426695a7d2c45c48e6885
F src/notify.c 57c2d1a2805d6dee32acd5d250d928ab94e02d76369ae057dee7d445fd64e878
F src/os.c 509452169d5ea739723e213b8e2481cf0e587f0e88579a912d200db5269f5f6d
F src/os.h 1ff5ae51d339d0e30d8a9d814f4b8f8e448169304d83a7ed9db66a65732f3e63
F src/os_common.h 6c0eb8dd40ef3e12fe585a13e709710267a258e2c8dd1c40b1948a1d14582e06
F src/os_kv.c 4d39e1f1c180b11162c6dc4aa8ad34053873a639bac6baae23272fc03349986a
- F src/os_setup.h 0a44e77a6bb4e8a93e27ade391e6796a3af34fc16c314619eca82dcfade7edb9
- F src/os_unix.c 2de3a1aa898624ee23da7d47d6df257836058677f727d41f81b56e1a17272ff8
- F src/os_win.c 0b2abb73fb231ed3422128928700da78b1c822d97cf9bf8447f4d4f05ae68563
-F src/os_setup.h 6011ad7af5db4e05155f385eb3a9b4470688de6f65d6166b8956e58a3d872107
-F src/os_unix.c 410185df4900817c218c0efdb8064b3481af88cb3f7cea7392f820b6eebc7889
-F src/os_win.c caab8bc13f1d64a2ba6b8af35d660ffe25083df3493d9082d7a461a5e9950a50
++F src/os_setup.h f67d199e08b6f49b8eea53c9c06a427aafc5456743c852d1a3cd2caa5662eb1a
++F src/os_unix.c 29f56c7da6dea0e6c2416c2688e3918662d19430797d4c99943c2107b64d0c6a
++F src/os_win.c 5d056ee2fe1adfc1f757c25ec3bcfe759338f70e65ba5f3107ba0cfe4782fb0d
F src/os_win.h 4c247cdb6d407c75186c94a1e84d5a22cbae4adcec93fcae8d2bc1f956fd1f19
F src/pager.c 9fbb541b46125dfa8914827575e6bb4d15048caa008073b1709112d495d7983b
F src/pager.h 6137149346e6c8a3ddc1eeb40aee46381e9bc8b0fcc6dda8a1efde993c2275b8
F src/test_schema.c b06d3ddc3edc173c143878f3edb869dd200d57d918ae2f38820534f9a5e3d7d9
F src/test_sqllog.c 5abf04865758c0a3915b4ec2b2ee5ab75f74c00e2f05bf503b9083e0ab6829d7
F src/test_superlock.c 3387fc794a68d8c6b6ed059aabacbfe870dc502c5cf65562f36aac78b4a4d629
--F src/test_syscall.c c5bf039261973135068aa68f4d185a6147333dcf266977989f8245b3a1968f1b
++F src/test_syscall.c 39117e85eef73ad74360a7f87b33febca4ffe59dbbd16a4763cdc6868a67fd4e
F src/test_tclsh.c c01706ac60bd3176754d3ccd37da74c6ad97c2e14489f8ed71b497c1c0ac0dd4
F src/test_tclvar.c ae873248a0188459b1c16ca7cc431265dacce524399e8b46725c2b3b7e048424
F src/test_thread.c 3edb4a5b5aeb1a6e9a275dccc848ac95acab7f496b3e9230f6d2d04953a2b862
F test/temptrigger.test 38f0ca479b1822d3117069e014daabcaacefffcc
F test/tester.tcl 463ae33b8bf75ac77451df19bd65e7c415c2e9891227c7c9e657d0a2d8e1074a
F test/testrunner.tcl 228732ca62ea60e97785e13528bd36627cf3c115d59364a5181ed7f85fd0031d x
- F test/testrunner_data.tcl b49fb8949506a8d9a39fd00c36d87c940b077f6cc38b77947328313c2f75d639
-F test/testrunner_data.tcl 07f2d36a6321bfd196975aca237db6bba1991032809264a1abeb62e697196d20
++F test/testrunner_data.tcl 8f3f62ff2a694d46e5673df6a757a427ce737a6705d67b30ec2d140715f9f122
F test/thread001.test a0985c117eab62c0c65526e9fa5d1360dd1cac5b03bde223902763274ce21899
F test/thread002.test c24c83408e35ba5a952a3638b7ac03ccdf1ce4409289c54a050ac4c5f1de7502
F test/thread003.test ee4c9efc3b86a6a2767516a37bd64251272560a7
F test/wherelimit3.test 22d73e046870cf8bbe15573eda6b432b07ebe64a88711f9f849c6b3667c1fae6
F test/widetab1.test c296a98e123762de79917350e45fa33fdf88577a2571eb3a64c8bf7e44ef74d1
F test/win32heap.test 1ec2ce646aee491ec23bfcdfd005b33c79f13bf91467966f374a76ffe7c7e85f
--F test/win32lock.test 4fc496691504d90621157aa43b1155a1461347261ad182c3e3d5923f4e0b879c
++F test/win32lock.test e56d7a9b6cf9d5f3867c2dd19ff36c5326881e4038c6867610ecb3a9868ea4eb
F test/win32longpath.test df477a2891bd6a1a4e78e43290ea219a777da85eb2590092e36da65f2fb5f1cf
F test/win32nolock.test 95854dc0206b8a95e4aee15a76acc082767b38f079b2e24676aed6cbb0f32798
F test/window1.test 79dc3b9a2226f622d7e104a1fc750d1c4c3c08d6147b59085bdbe05352947ffa
F tool/warnings-clang.sh bbf6a1e685e534c92ec2bfba5b1745f34fb6f0bc2a362850723a9ee87c1b31a7
F tool/warnings.sh 49a486c5069de041aedcbde4de178293e0463ae9918ecad7539eedf0ec77a139
F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
- P 6a449918c20e9ec001877de34a8f593a5039c0b0a04ee13adab76934a2afcc39
- R b23b5e6a9bdc8fefd483aa847126706f
-P 3e96b772a46638bc25e036de053d620ded3350871ee10e06fd6fe51429934b0d
-R 5a85f2774d52509b8f6ae6acd48a3210
-U stephan
-Z 7e629c8c02794da90c85323f978e7eb9
++P 648aca5b47a2a9d070791f6924baac36a3e45706539678b310d4c8ab37129a34 e64c6a3856b839e4e8c0a1cb1713b0d2f1d3cb9b915dd215b0d3cb229502d539
++R 8f9a6f5ed3065a804e30e8de0eec7da2
+U jan.nijtmans
- Z da12dca84a4fa4c6d7a98e30f40b8fd6
++Z 0c3d4c0b618cf07d02c083ca6188b4de
# Remove this line to create a well-formed Fossil manifest.
- 648aca5b47a2a9d070791f6924baac36a3e45706539678b310d4c8ab37129a34
-e64c6a3856b839e4e8c0a1cb1713b0d2f1d3cb9b915dd215b0d3cb229502d539
++6552bfb70ae91ee28aadaa6ec22c8ecd272e2e68f175f0dc494b6ec2b96909bf
** will defined to either 1 or 0. One of them will be 1. The others will be 0.
** If none of the macros are initially defined, then select either
** SQLITE_OS_UNIX or SQLITE_OS_WIN depending on the target platform.
++** One exception: On Cygwin, both SQLITE_OS_UNIX and SQLITE_OS_WIN can be 1.
**
** If SQLITE_OS_OTHER=1 is specified at compile-time, then the application
** must provide its own VFS implementation together with sqlite3_os_init()
*/
#if !defined(SQLITE_OS_KV) && !defined(SQLITE_OS_OTHER) && \
!defined(SQLITE_OS_UNIX) && !defined(SQLITE_OS_WIN)
--# if defined(_WIN32) || defined(WIN32) || defined(__CYGWIN__) || \
++# if defined(__CYGWIN__)
++# define SQLITE_OS_WIN 1
++# define SQLITE_OS_UNIX 1
++# elif defined(_WIN32) || defined(WIN32) || \
defined(__MINGW32__) || defined(__BORLANDC__)
# define SQLITE_OS_WIN 1
- # if defined(__CYGWIN__)
- # define SQLITE_OS_UNIX 1
- # else
- # define SQLITE_OS_UNIX 0
- # endif
+ # define SQLITE_OS_UNIX 0
# else
# define SQLITE_OS_WIN 0
# define SQLITE_OS_UNIX 1
# define SQLITE_OS_KV 0
# undef SQLITE_OS_OTHER
# define SQLITE_OS_OTHER 0
++# if !defined(__CYGWIN__)
# undef SQLITE_OS_WIN
# define SQLITE_OS_WIN 0
++# endif
#endif
#if SQLITE_OS_WIN+1>1
# undef SQLITE_OS_KV
# define SQLITE_OS_KV 0
# undef SQLITE_OS_OTHER
# define SQLITE_OS_OTHER 0
++# if !defined(__CYGWIN__)
# undef SQLITE_OS_UNIX
# define SQLITE_OS_UNIX 0
++# endif
#endif
return SQLITE_OK;
}
- #if !SQLITE_OS_WIN
+#undef aSyscall
/*
** Shutdown the operating system interface.
**
** to release dynamically allocated objects. But not on unix.
** This routine is a no-op for unix.
*/
++#if SQLITE_OS_WIN
++#if defined(SQLITE_AMALGAMATION)
++static
++#endif
++int sqlite3_os_unix_end(void){
++#else
int sqlite3_os_end(void){
++#endif
unixBigLock = 0;
return SQLITE_OK;
}
** can manually set this value to 1 to emulate Win98 behavior.
*/
#ifdef SQLITE_TEST
--LONG SQLITE_WIN32_VOLATILE sqlite3_os_type = 0;
++int SQLITE_WIN32_VOLATILE sqlite3_os_type = 0;
#else
--static LONG SQLITE_WIN32_VOLATILE sqlite3_os_type = 0;
++static int SQLITE_WIN32_VOLATILE sqlite3_os_type = 0;
#endif
#ifndef SYSCALL
{ "getcwd", (SYSCALL)0, 0 },
#endif
--#define osGetcwd ((char*(*)(char*,size_t))aSyscall[84].pCurrent)
++#define cygGetcwd ((char*(*)(char*,size_t))aSyscall[84].pCurrent)
#ifndef _WIN32
{ "readlink", (SYSCALL)readlink, 0 },
{ "readlink", (SYSCALL)0, 0 },
#endif
--#define osReadlink ((ssize_t(*)(const char*,char*,size_t))aSyscall[85].pCurrent)
++#define cygReadlink ((ssize_t(*)(const char*,char*,size_t))aSyscall[85].pCurrent)
#ifndef _WIN32
{ "lstat", (SYSCALL)lstat, 0 },
{ "lstat", (SYSCALL)0, 0 },
#endif
--#define osLstat ((int(*)(const char*,struct stat*))aSyscall[86].pCurrent)
++#define cygLstat ((int(*)(const char*,struct stat*))aSyscall[86].pCurrent)
#ifndef _WIN32
{ "__errno", (SYSCALL)__errno, 0 },
int nPath = sqlite3Strlen30(zPath);
int iOff = 0;
if( zPath[0]!='/' ){
-- if( osGetcwd(zOut, nOut-2)==0 ){
++ if( cygGetcwd(zOut, nOut-2)==0 ){
return winLogError(SQLITE_CANTOPEN_BKPT, (DWORD)osErrno, "getcwd", zPath);
}
iOff = sqlite3Strlen30(zOut);
SimulateIOError( return SQLITE_ERROR );
#ifdef __CYGWIN__
-- if( osGetcwd ){
++ if( cygGetcwd ){
zFull[nFull-1] = '\0';
if( !winIsDriveLetterAndColon(zRelative) || !winIsDirSep(zRelative[2]) ){
int rc = SQLITE_OK;
/* 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 ){
++ if( cygLstat && cygReadlink ) {
++ if( cygLstat(zIn, &buf)!=0 ){
int myErrno = osErrno;
if( myErrno!=ENOENT ){
rc = winLogError(SQLITE_CANTOPEN_BKPT, (DWORD)myErrno, "lstat", zIn);
}
if( rc==SQLITE_OK ){
-- nByte = osReadlink(zIn, zDel, nFull-1);
++ nByte = cygReadlink(zIn, zDel, nFull-1);
if( nByte ==(DWORD)-1 ){
rc = winLogError(SQLITE_CANTOPEN_BKPT, (DWORD)osErrno, "readlink", zIn);
}else{
}else{
char *p = zOut+6;
*p = '\\';
-- if( osGetcwd ){
++ if( cygGetcwd ){
/* On Cygwin, UNC paths use forward slashes */
while( *p ){
if( *p=='\\' ) *p = '/';
return e;
}
+#if SQLITE_OS_UNIX && !defined(SQLITE_AMALGAMATION)
+int sqlite3_os_unix_init(void);
++int sqlite3_os_unix_end(void);
+#endif
+
/*
** Initialize and deinitialize the operating system interface.
*/
assert( winSysInfo.dwAllocationGranularity>0 );
assert( winSysInfo.dwPageSize>0 );
++#if SQLITE_OS_UNIX
++ sqlite3_os_unix_init();
++#endif
++
sqlite3_vfs_register(&winVfs, 1);
#if defined(SQLITE_WIN32_HAS_WIDE)
winBigLock = 0;
#endif
++#if SQLITE_OS_UNIX
++ sqlite3_os_unix_end();
++#endif
++
return SQLITE_OK;
}
#include <string.h>
#include <assert.h>
--#if SQLITE_OS_UNIX
++#if SQLITE_OS_UNIX && !defined(__CYGWIN__)
/* From main.c */
extern const char *sqlite3ErrName(int);
){
sqlite3_vfs *pVfs;
Tcl_Size nElem;
-- int i;
++ Tcl_Size i;
Tcl_Obj **apElem;
if( objc!=3 ){
}
pVfs = sqlite3_vfs_find(0);
-- for(i=0; i<(int)nElem; i++){
++ for(i=0; i<nElem; i++){
int iCall;
int rc = Tcl_GetIndexFromObjStruct(interp,
apElem[i], aSyscall, sizeof(aSyscall[0]), "system-call", 0, &iCall
set makeOpts [list] ;# Extra args for [make]
set configOpts [list] ;# Extra args for [configure]
-- # Define either SQLITE_OS_WIN or SQLITE_OS_UNIX, as appropriate.
++ # Define either SQLITE_OS_WIN or SQLITE_OS_UNIX or both, as appropriate.
if {$::tcl_platform(os) eq "Windows NT"} {
lappend opts -DSQLITE_OS_WIN=1
- } else {
+ }
+ if {$::tcl_platform(platform) eq "unix"} {
lappend opts -DSQLITE_OS_UNIX=1
}
# TESTRUNNER: slow
#
--if {$tcl_platform(os) ne "Windows NT"} return
++if {$tcl_platform(platform) ne "windows"} return
set testdir [file dirname $argv0]
source $testdir/tester.tcl