Fossil SCM

Further improvements to the file name escaping on Windows.

mistachkin 2020-06-10 21:46 trunk merge
Commit 9519c22556c627a79bed1b3873f7a07e32353f6a26188b78ec11d5835bfa772c
1 file changed +7 -3
+7 -3
--- src/blob.c
+++ src/blob.c
@@ -1330,15 +1330,19 @@
13301330
}
13311331
if( needEscape ) blob_append_char(pBlob, cQuote);
13321332
if( zIn[0]=='-' ){
13331333
blob_append_char(pBlob, '.');
13341334
blob_append_char(pBlob, cDirSep);
1335
+#if defined(_WIN32)
1336
+ }else if( zIn[0]=='/' ){
1337
+ blob_append_char(pBlob, '.');
1338
+#endif
13351339
}
13361340
#if defined(_WIN32)
13371341
if( needEscape ){
13381342
for(i=0; (c = zIn[i])!=0; i++){
1339
- if( c==cQuote || c==cEscape ) blob_append_char(pBlob, cEscape);
1343
+ if( c==cQuote ) blob_append_char(pBlob, cDirSep);
13401344
blob_append_char(pBlob, c);
13411345
}
13421346
}else{
13431347
blob_append(pBlob, zIn, -1);
13441348
}
@@ -1346,12 +1350,12 @@
13461350
blob_append(pBlob, zIn, -1);
13471351
#endif
13481352
if( needEscape ){
13491353
#if defined(_WIN32)
13501354
/* NOTE: Trailing backslash must be doubled before final double quote. */
1351
- if( pBlob->aData[pBlob->nUsed-1]==cEscape ){
1352
- blob_append_char(pBlob, cEscape);
1355
+ if( pBlob->aData[pBlob->nUsed-1]==cDirSep ){
1356
+ blob_append_char(pBlob, cDirSep);
13531357
}
13541358
#endif
13551359
blob_append_char(pBlob, cQuote);
13561360
}
13571361
}
13581362
--- src/blob.c
+++ src/blob.c
@@ -1330,15 +1330,19 @@
1330 }
1331 if( needEscape ) blob_append_char(pBlob, cQuote);
1332 if( zIn[0]=='-' ){
1333 blob_append_char(pBlob, '.');
1334 blob_append_char(pBlob, cDirSep);
 
 
 
 
1335 }
1336 #if defined(_WIN32)
1337 if( needEscape ){
1338 for(i=0; (c = zIn[i])!=0; i++){
1339 if( c==cQuote || c==cEscape ) blob_append_char(pBlob, cEscape);
1340 blob_append_char(pBlob, c);
1341 }
1342 }else{
1343 blob_append(pBlob, zIn, -1);
1344 }
@@ -1346,12 +1350,12 @@
1346 blob_append(pBlob, zIn, -1);
1347 #endif
1348 if( needEscape ){
1349 #if defined(_WIN32)
1350 /* NOTE: Trailing backslash must be doubled before final double quote. */
1351 if( pBlob->aData[pBlob->nUsed-1]==cEscape ){
1352 blob_append_char(pBlob, cEscape);
1353 }
1354 #endif
1355 blob_append_char(pBlob, cQuote);
1356 }
1357 }
1358
--- src/blob.c
+++ src/blob.c
@@ -1330,15 +1330,19 @@
1330 }
1331 if( needEscape ) blob_append_char(pBlob, cQuote);
1332 if( zIn[0]=='-' ){
1333 blob_append_char(pBlob, '.');
1334 blob_append_char(pBlob, cDirSep);
1335 #if defined(_WIN32)
1336 }else if( zIn[0]=='/' ){
1337 blob_append_char(pBlob, '.');
1338 #endif
1339 }
1340 #if defined(_WIN32)
1341 if( needEscape ){
1342 for(i=0; (c = zIn[i])!=0; i++){
1343 if( c==cQuote ) blob_append_char(pBlob, cDirSep);
1344 blob_append_char(pBlob, c);
1345 }
1346 }else{
1347 blob_append(pBlob, zIn, -1);
1348 }
@@ -1346,12 +1350,12 @@
1350 blob_append(pBlob, zIn, -1);
1351 #endif
1352 if( needEscape ){
1353 #if defined(_WIN32)
1354 /* NOTE: Trailing backslash must be doubled before final double quote. */
1355 if( pBlob->aData[pBlob->nUsed-1]==cDirSep ){
1356 blob_append_char(pBlob, cDirSep);
1357 }
1358 #endif
1359 blob_append_char(pBlob, cQuote);
1360 }
1361 }
1362

Keyboard Shortcuts

Open search /
Next entry (timeline) j
Previous entry (timeline) k
Open focused entry Enter
Show this help ?
Toggle theme Top nav button