Fossil SCM
Merge trunk. Valid extended paths must have >6 chars, e.g. "\\?\C:\" (+1 for closing '\0'), this way make sure that wUnicode always points to allocated memory.
Commit
1db9134d6b56195794ad6851fabd70b4c96736da
Parent
e977f86dfdc3407…
3 files changed
+1
-1
+1
-1
+1
-1
+1
-1
| --- src/skins.c | ||
| +++ src/skins.c | ||
| @@ -1241,11 +1241,11 @@ | ||
| 1241 | 1241 | @ This page was generated in about |
| 1242 | 1242 | @ <th1>puts [expr {([utime]+[stime]+1000)/1000*0.001}]</th1>s by |
| 1243 | 1243 | @ <a href="$fossilUrl/">Fossil</a> |
| 1244 | 1244 | @ version $release_version $tclVersion |
| 1245 | 1245 | @ <a href="$fossilUrl/index.html/info/$version">$manifest_version</a> |
| 1246 | -@ <a href="$fossilUrl/fossil/timeline?c=$manifest_date&y=ci">$manifest_date</a> | |
| 1246 | +@ <a href="$fossilUrl/index.html/timeline?c=$manifest_date&y=ci">$manifest_date</a> | |
| 1247 | 1247 | @ </div> |
| 1248 | 1248 | @ </body></html> |
| 1249 | 1249 | @ '); |
| 1250 | 1250 | ; |
| 1251 | 1251 | |
| 1252 | 1252 |
| --- src/skins.c | |
| +++ src/skins.c | |
| @@ -1241,11 +1241,11 @@ | |
| 1241 | @ This page was generated in about |
| 1242 | @ <th1>puts [expr {([utime]+[stime]+1000)/1000*0.001}]</th1>s by |
| 1243 | @ <a href="$fossilUrl/">Fossil</a> |
| 1244 | @ version $release_version $tclVersion |
| 1245 | @ <a href="$fossilUrl/index.html/info/$version">$manifest_version</a> |
| 1246 | @ <a href="$fossilUrl/fossil/timeline?c=$manifest_date&y=ci">$manifest_date</a> |
| 1247 | @ </div> |
| 1248 | @ </body></html> |
| 1249 | @ '); |
| 1250 | ; |
| 1251 | |
| 1252 |
| --- src/skins.c | |
| +++ src/skins.c | |
| @@ -1241,11 +1241,11 @@ | |
| 1241 | @ This page was generated in about |
| 1242 | @ <th1>puts [expr {([utime]+[stime]+1000)/1000*0.001}]</th1>s by |
| 1243 | @ <a href="$fossilUrl/">Fossil</a> |
| 1244 | @ version $release_version $tclVersion |
| 1245 | @ <a href="$fossilUrl/index.html/info/$version">$manifest_version</a> |
| 1246 | @ <a href="$fossilUrl/index.html/timeline?c=$manifest_date&y=ci">$manifest_date</a> |
| 1247 | @ </div> |
| 1248 | @ </body></html> |
| 1249 | @ '); |
| 1250 | ; |
| 1251 | |
| 1252 |
+1
-1
| --- src/utf8.c | ||
| +++ src/utf8.c | ||
| @@ -214,11 +214,11 @@ | ||
| 214 | 214 | wUnicode += 3; |
| 215 | 215 | MultiByteToWideChar(CP_UTF8, 0, zUtf8+3, -1, wUnicode, nChar-3); |
| 216 | 216 | } |
| 217 | 217 | }else if( (zUtf8[0]=='\\' || zUtf8[0]=='/') && |
| 218 | 218 | (zUtf8[1]=='\\' || zUtf8[1]=='/') ) { |
| 219 | - if( zUtf8[2]=='?' && nChar>5 ){ | |
| 219 | + if( zUtf8[2]=='?' && nChar>7 ){ | |
| 220 | 220 | /* Don't postprocess [?:] in extended path, but do '/' -> '\' */ |
| 221 | 221 | memcpy(zUnicode, L"\\\\", 2 * sizeof(wchar_t)); |
| 222 | 222 | MultiByteToWideChar(CP_UTF8, 0, zUtf8+2, -1, zUnicode+2, nChar-2); |
| 223 | 223 | if( zUtf8[3]=='/' ) zUnicode[3]='\\'; |
| 224 | 224 | wUnicode += 6; |
| 225 | 225 |
| --- src/utf8.c | |
| +++ src/utf8.c | |
| @@ -214,11 +214,11 @@ | |
| 214 | wUnicode += 3; |
| 215 | MultiByteToWideChar(CP_UTF8, 0, zUtf8+3, -1, wUnicode, nChar-3); |
| 216 | } |
| 217 | }else if( (zUtf8[0]=='\\' || zUtf8[0]=='/') && |
| 218 | (zUtf8[1]=='\\' || zUtf8[1]=='/') ) { |
| 219 | if( zUtf8[2]=='?' && nChar>5 ){ |
| 220 | /* Don't postprocess [?:] in extended path, but do '/' -> '\' */ |
| 221 | memcpy(zUnicode, L"\\\\", 2 * sizeof(wchar_t)); |
| 222 | MultiByteToWideChar(CP_UTF8, 0, zUtf8+2, -1, zUnicode+2, nChar-2); |
| 223 | if( zUtf8[3]=='/' ) zUnicode[3]='\\'; |
| 224 | wUnicode += 6; |
| 225 |
| --- src/utf8.c | |
| +++ src/utf8.c | |
| @@ -214,11 +214,11 @@ | |
| 214 | wUnicode += 3; |
| 215 | MultiByteToWideChar(CP_UTF8, 0, zUtf8+3, -1, wUnicode, nChar-3); |
| 216 | } |
| 217 | }else if( (zUtf8[0]=='\\' || zUtf8[0]=='/') && |
| 218 | (zUtf8[1]=='\\' || zUtf8[1]=='/') ) { |
| 219 | if( zUtf8[2]=='?' && nChar>7 ){ |
| 220 | /* Don't postprocess [?:] in extended path, but do '/' -> '\' */ |
| 221 | memcpy(zUnicode, L"\\\\", 2 * sizeof(wchar_t)); |
| 222 | MultiByteToWideChar(CP_UTF8, 0, zUtf8+2, -1, zUnicode+2, nChar-2); |
| 223 | if( zUtf8[3]=='/' ) zUnicode[3]='\\'; |
| 224 | wUnicode += 6; |
| 225 |
+1
-1
| --- src/utf8.c | ||
| +++ src/utf8.c | ||
| @@ -214,11 +214,11 @@ | ||
| 214 | 214 | wUnicode += 3; |
| 215 | 215 | MultiByteToWideChar(CP_UTF8, 0, zUtf8+3, -1, wUnicode, nChar-3); |
| 216 | 216 | } |
| 217 | 217 | }else if( (zUtf8[0]=='\\' || zUtf8[0]=='/') && |
| 218 | 218 | (zUtf8[1]=='\\' || zUtf8[1]=='/') ) { |
| 219 | - if( zUtf8[2]=='?' && nChar>5 ){ | |
| 219 | + if( zUtf8[2]=='?' && nChar>7 ){ | |
| 220 | 220 | /* Don't postprocess [?:] in extended path, but do '/' -> '\' */ |
| 221 | 221 | memcpy(zUnicode, L"\\\\", 2 * sizeof(wchar_t)); |
| 222 | 222 | MultiByteToWideChar(CP_UTF8, 0, zUtf8+2, -1, zUnicode+2, nChar-2); |
| 223 | 223 | if( zUtf8[3]=='/' ) zUnicode[3]='\\'; |
| 224 | 224 | wUnicode += 6; |
| 225 | 225 |
| --- src/utf8.c | |
| +++ src/utf8.c | |
| @@ -214,11 +214,11 @@ | |
| 214 | wUnicode += 3; |
| 215 | MultiByteToWideChar(CP_UTF8, 0, zUtf8+3, -1, wUnicode, nChar-3); |
| 216 | } |
| 217 | }else if( (zUtf8[0]=='\\' || zUtf8[0]=='/') && |
| 218 | (zUtf8[1]=='\\' || zUtf8[1]=='/') ) { |
| 219 | if( zUtf8[2]=='?' && nChar>5 ){ |
| 220 | /* Don't postprocess [?:] in extended path, but do '/' -> '\' */ |
| 221 | memcpy(zUnicode, L"\\\\", 2 * sizeof(wchar_t)); |
| 222 | MultiByteToWideChar(CP_UTF8, 0, zUtf8+2, -1, zUnicode+2, nChar-2); |
| 223 | if( zUtf8[3]=='/' ) zUnicode[3]='\\'; |
| 224 | wUnicode += 6; |
| 225 |
| --- src/utf8.c | |
| +++ src/utf8.c | |
| @@ -214,11 +214,11 @@ | |
| 214 | wUnicode += 3; |
| 215 | MultiByteToWideChar(CP_UTF8, 0, zUtf8+3, -1, wUnicode, nChar-3); |
| 216 | } |
| 217 | }else if( (zUtf8[0]=='\\' || zUtf8[0]=='/') && |
| 218 | (zUtf8[1]=='\\' || zUtf8[1]=='/') ) { |
| 219 | if( zUtf8[2]=='?' && nChar>7 ){ |
| 220 | /* Don't postprocess [?:] in extended path, but do '/' -> '\' */ |
| 221 | memcpy(zUnicode, L"\\\\", 2 * sizeof(wchar_t)); |
| 222 | MultiByteToWideChar(CP_UTF8, 0, zUtf8+2, -1, zUnicode+2, nChar-2); |
| 223 | if( zUtf8[3]=='/' ) zUnicode[3]='\\'; |
| 224 | wUnicode += 6; |
| 225 |