mirror of
https://github.com/sqlite/sqlite.git
synced 2025-11-12 13:01:09 +03:00
Better support for UTF-8 paths on Cygwin.
FossilOrigin-Name: 9954327c0febc0ece46f62e05976330a1b82b48f
This commit is contained in:
12
manifest
12
manifest
@@ -1,5 +1,5 @@
|
|||||||
C Add\sSQLITE_CONFIG_WIN32_HEAPSIZE\soption\sto\sconfigure\sthe\smaximum\sisolated\sheap\ssize\son\sWindows.
|
C Better\ssupport\sfor\sUTF-8\spaths\son\sCygwin.
|
||||||
D 2013-11-25T23:42:21.085
|
D 2013-11-26T00:28:50.946
|
||||||
F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f
|
F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f
|
||||||
F Makefile.in e1a9b4258bbde53f5636f4e238c65b7e11459e2b
|
F Makefile.in e1a9b4258bbde53f5636f4e238c65b7e11459e2b
|
||||||
F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23
|
F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23
|
||||||
@@ -206,7 +206,7 @@ F src/os.c b4ad71336fd96f97776f75587cd9e8218288f5be
|
|||||||
F src/os.h 4a46270a64e9193af4a0aaa3bc2c66dc07c29b3f
|
F src/os.h 4a46270a64e9193af4a0aaa3bc2c66dc07c29b3f
|
||||||
F src/os_common.h 92815ed65f805560b66166e3583470ff94478f04
|
F src/os_common.h 92815ed65f805560b66166e3583470ff94478f04
|
||||||
F src/os_unix.c 143624d9eabb3b997c59cf594e0d06c56edd43e9
|
F src/os_unix.c 143624d9eabb3b997c59cf594e0d06c56edd43e9
|
||||||
F src/os_win.c 39e9fc083fc35caedeb72f7724791a089722f896
|
F src/os_win.c cb3f26205ea785a63ea5bdc21a9c9f9ae3972d0f
|
||||||
F src/pager.c 2aa4444ffe86e9282d03bc349a4a5e49bd77c0e8
|
F src/pager.c 2aa4444ffe86e9282d03bc349a4a5e49bd77c0e8
|
||||||
F src/pager.h f094af9f6ececfaa8a1e93876905a4f34233fb0c
|
F src/pager.h f094af9f6ececfaa8a1e93876905a4f34233fb0c
|
||||||
F src/parse.y acee1a9958539e21263362b194594c5255ad2fca
|
F src/parse.y acee1a9958539e21263362b194594c5255ad2fca
|
||||||
@@ -1143,7 +1143,7 @@ F tool/vdbe-compress.tcl f12c884766bd14277f4fcedcae07078011717381
|
|||||||
F tool/warnings-clang.sh f6aa929dc20ef1f856af04a730772f59283631d4
|
F tool/warnings-clang.sh f6aa929dc20ef1f856af04a730772f59283631d4
|
||||||
F tool/warnings.sh d1a6de74685f360ab718efda6265994b99bbea01
|
F tool/warnings.sh d1a6de74685f360ab718efda6265994b99bbea01
|
||||||
F tool/win/sqlite.vsix 030f3eeaf2cb811a3692ab9c14d021a75ce41fff
|
F tool/win/sqlite.vsix 030f3eeaf2cb811a3692ab9c14d021a75ce41fff
|
||||||
P 011a6be439eb884c944a3318bf631bed3135f8ec 51e876074af4e34ba01ed122e3bcc042243c9e88
|
P 914e6c9d88828b66e8385c4a264702471faa34cf 484162b6e5a8ad9385fe2eb2a5254d13d7b0bc36
|
||||||
R a48ce81d597ca35b28409062489bab18
|
R 1b8f9bd2dcb67783ed3f85d3422a2824
|
||||||
U mistachkin
|
U mistachkin
|
||||||
Z d1bf9d184524adde89c6b90b5f2f5190
|
Z f0ab176076e12054e72ef7c2fe54ec51
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
914e6c9d88828b66e8385c4a264702471faa34cf
|
9954327c0febc0ece46f62e05976330a1b82b48f
|
||||||
62
src/os_win.c
62
src/os_win.c
@@ -4074,7 +4074,7 @@ static const sqlite3_io_methods winIoMethod = {
|
|||||||
** sqlite3_vfs object.
|
** sqlite3_vfs object.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#if 0
|
#if defined(__CYGWIN__)
|
||||||
/*
|
/*
|
||||||
** Convert a filename from whatever the underlying operating system
|
** Convert a filename from whatever the underlying operating system
|
||||||
** supports for filenames into UTF-8. Space to hold the result is
|
** supports for filenames into UTF-8. Space to hold the result is
|
||||||
@@ -4250,23 +4250,17 @@ static int winGetTempname(sqlite3_vfs *pVfs, char **pzBuf){
|
|||||||
** be used. However, we may need to convert the string containing
|
** be used. However, we may need to convert the string containing
|
||||||
** its name into UTF-8 (i.e. if it is UTF-16 right now).
|
** its name into UTF-8 (i.e. if it is UTF-16 right now).
|
||||||
*/
|
*/
|
||||||
if( osIsNT() ){
|
char *zUtf8 = winConvertToUtf8Filename(zConverted);
|
||||||
char *zUtf8 = winUnicodeToUtf8(zConverted);
|
if( !zUtf8 ){
|
||||||
if( !zUtf8 ){
|
|
||||||
sqlite3_free(zConverted);
|
|
||||||
sqlite3_free(zBuf);
|
|
||||||
OSTRACE(("TEMP-FILENAME rc=SQLITE_IOERR_NOMEM\n"));
|
|
||||||
return SQLITE_IOERR_NOMEM;
|
|
||||||
}
|
|
||||||
sqlite3_snprintf(nMax, zBuf, "%s", zUtf8);
|
|
||||||
sqlite3_free(zUtf8);
|
|
||||||
sqlite3_free(zConverted);
|
sqlite3_free(zConverted);
|
||||||
break;
|
sqlite3_free(zBuf);
|
||||||
}else{
|
OSTRACE(("TEMP-FILENAME rc=SQLITE_IOERR_NOMEM\n"));
|
||||||
sqlite3_snprintf(nMax, zBuf, "%s", zConverted);
|
return SQLITE_IOERR_NOMEM;
|
||||||
sqlite3_free(zConverted);
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
|
sqlite3_snprintf(nMax, zBuf, "%s", zUtf8);
|
||||||
|
sqlite3_free(zUtf8);
|
||||||
|
sqlite3_free(zConverted);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
sqlite3_free(zConverted);
|
sqlite3_free(zConverted);
|
||||||
}
|
}
|
||||||
@@ -4951,19 +4945,43 @@ static int winFullPathname(
|
|||||||
if( !zOut ){
|
if( !zOut ){
|
||||||
return SQLITE_IOERR_NOMEM;
|
return SQLITE_IOERR_NOMEM;
|
||||||
}
|
}
|
||||||
if( cygwin_conv_path(CCP_POSIX_TO_WIN_A|CCP_RELATIVE, zRelative, zOut,
|
if( cygwin_conv_path(
|
||||||
pVfs->mxPathname+1)<0 ){
|
(osIsNT() ? CCP_POSIX_TO_WIN_W : CCP_POSIX_TO_WIN_A) |
|
||||||
|
CCP_RELATIVE, zRelative, zOut, pVfs->mxPathname+1)<0 ){
|
||||||
sqlite3_free(zOut);
|
sqlite3_free(zOut);
|
||||||
return winLogError(SQLITE_CANTOPEN_CONVPATH, (DWORD)errno,
|
return winLogError(SQLITE_CANTOPEN_CONVPATH, (DWORD)errno,
|
||||||
"winFullPathname1", zRelative);
|
"winFullPathname1", zRelative);
|
||||||
|
}else{
|
||||||
|
char *zUtf8 = winConvertToUtf8Filename(zOut);
|
||||||
|
if( !zUtf8 ){
|
||||||
|
sqlite3_free(zOut);
|
||||||
|
return SQLITE_IOERR_NOMEM;
|
||||||
|
}
|
||||||
|
sqlite3_snprintf(MIN(nFull, pVfs->mxPathname), zFull, "%s%c%s",
|
||||||
|
sqlite3_data_directory, winGetDirSep(), zUtf8);
|
||||||
|
sqlite3_free(zUtf8);
|
||||||
|
sqlite3_free(zOut);
|
||||||
}
|
}
|
||||||
sqlite3_snprintf(MIN(nFull, pVfs->mxPathname), zFull, "%s%c%s",
|
|
||||||
sqlite3_data_directory, winGetDirSep(), zOut);
|
|
||||||
sqlite3_free(zOut);
|
|
||||||
}else{
|
}else{
|
||||||
if( cygwin_conv_path(CCP_POSIX_TO_WIN_A, zRelative, zFull, nFull)<0 ){
|
char *zOut = sqlite3MallocZero( pVfs->mxPathname+1 );
|
||||||
|
if( !zOut ){
|
||||||
|
return SQLITE_IOERR_NOMEM;
|
||||||
|
}
|
||||||
|
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,
|
return winLogError(SQLITE_CANTOPEN_CONVPATH, (DWORD)errno,
|
||||||
"winFullPathname2", zRelative);
|
"winFullPathname2", zRelative);
|
||||||
|
}else{
|
||||||
|
char *zUtf8 = winConvertToUtf8Filename(zOut);
|
||||||
|
if( !zUtf8 ){
|
||||||
|
sqlite3_free(zOut);
|
||||||
|
return SQLITE_IOERR_NOMEM;
|
||||||
|
}
|
||||||
|
sqlite3_snprintf(MIN(nFull, pVfs->mxPathname), zFull, "%s", zUtf8);
|
||||||
|
sqlite3_free(zUtf8);
|
||||||
|
sqlite3_free(zOut);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return SQLITE_OK;
|
return SQLITE_OK;
|
||||||
|
|||||||
Reference in New Issue
Block a user