@@ -175,11 +175,11 @@
175 175 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zName = mprintf("%s", zLinkFile);
176 176 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
177 177 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zName = zBuf;
178 178 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
memcpy(zName, zLinkFile, nName+1);
179 179 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
180 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- nName = file_simplify_name(zName, nName);
180 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ nName = file_simplify_name(zName, nName, 0);
181 181 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
for(i=1; i<nName; i++){
182 182 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( zName[i]=='/' ){
183 183 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zName[i] = 0;
184 184 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( file_mkdir(zName, 1) ){
185 185 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
fossil_fatal_recursive("unable to create directory %s", zName);
@@ -266,11 +266,11 @@
266 266 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int file_isdir(const char *zFilename){
267 267 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int rc;
268 268 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
269 269 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( zFilename ){
270 270 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
char *zFN = mprintf("%s", zFilename);
271 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- file_simplify_name(zFN, -1);
271 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ file_simplify_name(zFN, -1, 0);
272 272 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
rc = getStat(zFN, 0);
273 273 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
free(zFN);
274 274 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
275 275 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
rc = getStat(0, 0);
276 276 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
@@ -283,11 +283,11 @@
283 283 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int file_wd_isdir(const char *zFilename){
284 284 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int rc;
285 285 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
286 286 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( zFilename ){
287 287 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
char *zFN = mprintf("%s", zFilename);
288 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- file_simplify_name(zFN, -1);
288 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ file_simplify_name(zFN, -1, 0);
289 289 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
rc = getStat(zFN, 1);
290 290 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
free(zFN);
291 291 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
292 292 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
rc = getStat(0, 1);
293 293 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
@@ -321,11 +321,11 @@
321 321 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
fossil_free(z);
322 322 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
z = mprintf("%s-%s-%d", zBase, zSuffix, cnt++);
323 323 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
324 324 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( relFlag ){
325 325 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Blob x;
326 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- file_relative_name(z, &x);
326 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ file_relative_name(z, &x, 0);
327 327 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
fossil_free(z);
328 328 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
z = blob_str(&x);
329 329 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
330 330 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return z;
331 331 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
@@ -480,12 +480,14 @@
480 480 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** * removing any trailing and duplicate /
481 481 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** * removing /./
482 482 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** * removing /A/../
483 483 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
484 484 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Changes are made in-place. Return the new name length.
485 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** If the slash parameter is non-zero, the trailing slash, if any,
486 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** is retained.
485 487 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
486 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int file_simplify_name(char *z, int n){
488 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int file_simplify_name(char *z, int n, int slash){
487 489 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int i, j;
488 490 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( n<0 ) n = strlen(z);
489 491 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
490 492 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* On windows convert all \ characters to / */
491 493 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#if defined(_WIN32)
@@ -493,11 +495,13 @@
493 495 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( z[i]=='\\' ) z[i] = '/';
494 496 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
495 497 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
496 498 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
497 499 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Removing trailing "/" characters */
498 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- while( n>1 && z[n-1]=='/' ){ n--; }
500 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if ( !slash ){
501 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ while( n>1 && z[n-1]=='/' ){ n--; }
502 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
499 503 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
500 504 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Remove duplicate '/' characters. Except, two // at the beginning
501 505 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** of a pathname is allowed since this is important on windows. */
502 506 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
for(i=j=1; i<n; i++){
503 507 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
z[j++] = z[i];
@@ -547,11 +551,11 @@
547 551 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int i;
548 552 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
char *z;
549 553 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
for(i=2; i<g.argc; i++){
550 554 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
z = mprintf("%s", g.argv[i]);
551 555 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
fossil_print("[%s] -> ", z);
552 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- file_simplify_name(z, -1);
556 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ file_simplify_name(z, -1, 0);
553 557 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
fossil_print("[%s]\n", z);
554 558 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
fossil_free(z);
555 559 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
556 560 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
557 561 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@@ -613,12 +617,14 @@
613 617 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Compute a canonical pathname for a file or directory.
614 618 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Make the name absolute if it is relative.
615 619 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Remove redundant / characters
616 620 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Remove all /./ path elements.
617 621 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Convert /A/../ to just /
622 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** If the slash parameter is non-zero, the trailing slash, if any,
623 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** is retained.
618 624 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
619 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- void file_canonical_name(const char *zOrigName, Blob *pOut){
625 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ void file_canonical_name(const char *zOrigName, Blob *pOut, int slash){
620 626 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( file_is_absolute_path(zOrigName) ){
621 627 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#if defined(_WIN32)
622 628 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
char *zOut;
623 629 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
624 630 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
blob_set(pOut, zOrigName);
@@ -644,11 +650,12 @@
644 650 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
645 651 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
646 652 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
blob_zero(pOut);
647 653 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
blob_appendf(pOut, "%//%/", zPwd, zOrigName);
648 654 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
649 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- blob_resize(pOut, file_simplify_name(blob_buffer(pOut), blob_size(pOut)));
655 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ blob_resize(pOut, file_simplify_name(blob_buffer(pOut),
656 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ blob_size(pOut), slash));
650 657 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
651 658 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
652 659 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
653 660 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** COMMAND: test-canonical-name
654 661 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Usage: %fossil test-canonical-name FILENAME...
@@ -661,11 +668,11 @@
661 668 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Blob x;
662 669 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
blob_zero(&x);
663 670 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
for(i=2; i<g.argc; i++){
664 671 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
char zBuf[100];
665 672 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const char *zName = g.argv[i];
666 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- file_canonical_name(zName, &x);
673 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ file_canonical_name(zName, &x, 0);
667 674 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
fossil_print("[%s] -> [%s]\n", zName, blob_buffer(&x));
668 675 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
blob_reset(&x);
669 676 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3_snprintf(sizeof(zBuf), zBuf, "%lld", file_wd_size(zName));
670 677 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
fossil_print(" file_size = %s\n", zBuf);
671 678 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3_snprintf(sizeof(zBuf), zBuf, "%lld", file_wd_mtime(zName));
@@ -715,16 +722,18 @@
715 722 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return zIn;
716 723 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
717 724 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
718 725 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
719 726 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Compute a pathname for a file or directory that is relative
720 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** to the current directory.
727 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** to the current directory. If the slash parameter is non-zero,
728 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** the trailing slash, if any, is retained.
721 729 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
722 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- void file_relative_name(const char *zOrigName, Blob *pOut){
730 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ void file_relative_name(const char *zOrigName, Blob *pOut, int slash){
723 731 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
char *zPath;
724 732 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
blob_set(pOut, zOrigName);
725 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- blob_resize(pOut, file_simplify_name(blob_buffer(pOut), blob_size(pOut)));
733 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ blob_resize(pOut, file_simplify_name(blob_buffer(pOut),
734 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ blob_size(pOut), slash));
726 735 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zPath = file_without_drive_letter(blob_buffer(pOut));
727 736 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( zPath[0]=='/' ){
728 737 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int i, j;
729 738 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Blob tmp;
730 739 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
char *zPwd;
@@ -780,11 +789,11 @@
780 789 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
void cmd_test_relative_name(void){
781 790 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int i;
782 791 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Blob x;
783 792 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
blob_zero(&x);
784 793 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
for(i=2; i<g.argc; i++){
785 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- file_relative_name(g.argv[i], &x);
794 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ file_relative_name(g.argv[i], &x, 0);
786 795 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
fossil_print("%s\n", blob_buffer(&x));
787 796 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
blob_reset(&x);
788 797 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
789 798 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
790 799 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@@ -804,20 +813,15 @@
804 813 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int nFull;
805 814 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
char *zFull;
806 815 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
807 816 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
blob_zero(pOut);
808 817 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db_must_be_within_tree();
809 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- file_canonical_name(g.zLocalRoot, &localRoot);
818 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ file_canonical_name(g.zLocalRoot, &localRoot, 1);
810 819 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
nLocalRoot = blob_size(&localRoot);
811 820 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zLocalRoot = blob_buffer(&localRoot);
812 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if ( zLocalRoot[nLocalRoot-1]!='/' ){
813 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- blob_append(&localRoot, "/", 1);
814 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- nLocalRoot = blob_size(&localRoot);
815 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- zLocalRoot = blob_buffer(&localRoot);
816 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
817 821 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( nLocalRoot>0 && zLocalRoot[nLocalRoot-1]=='/' );
818 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- file_canonical_name(zOrigName, &full);
822 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ file_canonical_name(zOrigName, &full, 0);
819 823 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
nFull = blob_size(&full);
820 824 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zFull = blob_buffer(&full);
821 825 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
822 826 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Special case. zOrigName refers to g.zLocalRoot directory. */
823 827 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( nFull==nLocalRoot-1 && memcmp(zLocalRoot, zFull, nFull)==0 ){
824 828 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!