Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
| Comment: | Bug-fix: didn't compile on win32, and handle extended UNC paths correctly. |
|---|---|
| Downloads: | Tarball | ZIP archive |
| Timelines: | family | ancestors | descendants | both | win32-longpath |
| Files: | files | file ages | folders |
| SHA1: |
da8d516fe1a4c04a43c6adcdf6af3bab |
| User & Date: | jan.nijtmans 2013-12-12 11:16:27.000 |
Context
|
2013-12-12
| ||
| 13:54 | Fix fossil_stat() and fossil_chdir() such that they accept paths>MAX_PATH. For file_access(), implement a workaround that the '\\?\' prefix can be handled. check-in: 29f023fe53 user: jan.nijtmans tags: win32-longpath | |
| 11:16 | Bug-fix: didn't compile on win32, and handle extended UNC paths correctly. check-in: da8d516fe1 user: jan.nijtmans tags: win32-longpath | |
| 09:37 | Make "win32-longpath" the default VFS on win32, eliminating all path limitations (up to ~32767 chars). TODO: eliminate use of the the function _wstati64(), that appears to be the only Win32 function left which cannot handle such long paths. Everything else needed is done. check-in: 1b9893bdc8 user: jan.nijtmans tags: win32-longpath | |
Changes
Changes to src/sqlite3.c.
| ︙ | ︙ | |||
35142 35143 35144 35145 35146 35147 35148 |
}
zWideFilename = sqlite3MallocZero( (nChar*sizeof(zWideFilename[0]))+12 );
if( zWideFilename==0 ){
return 0;
}
if( winIsDirSep(zFilename[0]) && winIsDirSep(zFilename[1]) ){
memcpy(zWideFilename, L"\\\\?\\UNC\\", 16);
| | | 35142 35143 35144 35145 35146 35147 35148 35149 35150 35151 35152 35153 35154 35155 35156 |
}
zWideFilename = sqlite3MallocZero( (nChar*sizeof(zWideFilename[0]))+12 );
if( zWideFilename==0 ){
return 0;
}
if( winIsDirSep(zFilename[0]) && winIsDirSep(zFilename[1]) ){
memcpy(zWideFilename, L"\\\\?\\UNC\\", 16);
nChar = osMultiByteToWideChar(CP_UTF8, 0, zFilename+2, -1, zWideFilename+8,
nChar);
}else if( winIsDriveLetterAndColon(zFilename) && winIsDirSep(zFilename[2])) {
memcpy(zWideFilename, L"\\\\?\\", 8);
nChar = osMultiByteToWideChar(CP_UTF8, 0, zFilename, -1, zWideFilename+4,
nChar);
zWideFilename[6] = '\\';
}else{
|
| ︙ | ︙ | |||
36091 36092 36093 36094 36095 36096 36097 |
sqlite3_snprintf(MIN(nFull, pVfs->mxPathname), zFull, "%s%c%s",
sqlite3_data_directory, winGetDirSep(), zRelative);
return SQLITE_OK;
}
if( osIsNT() ){
zConverted = winUtf8ToUnicode(zRelative);
}else{
| | | 36091 36092 36093 36094 36095 36096 36097 36098 36099 36100 36101 36102 36103 36104 36105 |
sqlite3_snprintf(MIN(nFull, pVfs->mxPathname), zFull, "%s%c%s",
sqlite3_data_directory, winGetDirSep(), zRelative);
return SQLITE_OK;
}
if( osIsNT() ){
zConverted = winUtf8ToUnicode(zRelative);
}else{
zConverted = sqlite3_win32_utf8_to_mbcs(zRelative);
}
if( zConverted==0 ){
return SQLITE_IOERR_NOMEM;
}
if( osIsNT() ){
LPWSTR zTemp;
nByte = osGetFullPathNameW((LPCWSTR)zConverted, 0, 0, 0);
|
| ︙ | ︙ |