@@ -65,10 +65,12 @@
65 65 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int nFileAlloc; /* Slots allocated in aFile[] */
66 66 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
struct {
67 67 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
char *zName; /* Name of a file */
68 68 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
char *zUuid; /* UUID of the file */
69 69 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
char *zPerm; /* File permissions */
70 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ char *zPrior; /* Prior name if the name was changed */
71 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int iRename; /* index of renamed name in prior/next manifest */
70 72 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
} *aFile;
71 73 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int nParent; /* Number of parents */
72 74 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int nParentAlloc; /* Slots allocated in azParent[] */
73 75 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
char **azParent; /* UUIDs of parents */
74 76 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int nCChild; /* Number of cluster children */
@@ -300,10 +302,12 @@
300 302 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( zPriorName[0] ){
301 303 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
defossilize(zPriorName);
302 304 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( !file_is_simple_pathname(zPriorName) ){
303 305 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
goto manifest_syntax_error;
304 306 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
307 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else{
308 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ zPriorName = 0;
305 309 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
306 310 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( p->nFile>=p->nFileAlloc ){
307 311 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->nFileAlloc = p->nFileAlloc*2 + 10;
308 312 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->aFile = realloc(p->aFile, p->nFileAlloc*sizeof(p->aFile[0]) );
309 313 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( p->aFile==0 ) fossil_panic("out of memory");
@@ -310,10 +314,12 @@
310 314 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
311 315 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
i = p->nFile++;
312 316 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->aFile[i].zName = zName;
313 317 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->aFile[i].zUuid = zUuid;
314 318 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->aFile[i].zPerm = zPerm;
319 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ p->aFile[i].zPrior = zPriorName;
320 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ p->aFile[i].iRename = -1;
315 321 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( i>0 && strcmp(p->aFile[i-1].zName, zName)>=0 ){
316 322 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
goto manifest_syntax_error;
317 323 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
318 324 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
319 325 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
@@ -701,18 +707,28 @@
701 707 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
702 708 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
static void add_one_mlink(
703 709 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int mid, /* The record ID of the manifest */
704 710 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const char *zFromUuid, /* UUID for the mlink.pid field */
705 711 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const char *zToUuid, /* UUID for the mlink.fid field */
706 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- const char *zFilename /* Filename */
712 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ const char *zFilename, /* Filename */
713 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ const char *zPrior /* Previous filename. NULL if unchanged */
707 714 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
){
708 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int fnid, pid, fid;
715 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int fnid, pfnid, pid, fid;
709 716 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
710 717 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
fnid = db_int(0, "SELECT fnid FROM filename WHERE name=%Q", zFilename);
711 718 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( fnid==0 ){
712 719 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db_multi_exec("INSERT INTO filename(name) VALUES(%Q)", zFilename);
713 720 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
fnid = db_last_insert_rowid();
721 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
722 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( zPrior==0 ){
723 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pfnid = 0;
724 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else{
725 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pfnid = db_int(0, "SELECT fnid FROM filename WHERE name=%Q", zPrior);
726 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( pfnid==0 ){
727 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ db_multi_exec("INSERT INTO filename(name) VALUES(%Q)", zPrior);
728 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pfnid = db_last_insert_rowid();
729 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
714 730 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
715 731 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( zFromUuid==0 ){
716 732 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pid = 0;
717 733 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
718 734 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pid = uuid_to_rid(zFromUuid, 1);
@@ -721,22 +737,50 @@
721 737 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
fid = 0;
722 738 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
723 739 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
fid = uuid_to_rid(zToUuid, 1);
724 740 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
725 741 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db_multi_exec(
726 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- "INSERT INTO mlink(mid,pid,fid,fnid)"
727 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- "VALUES(%d,%d,%d,%d)", mid, pid, fid, fnid
742 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ "INSERT INTO mlink(mid,pid,fid,fnid,pfnid)"
743 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ "VALUES(%d,%d,%d,%d,%d)", mid, pid, fid, fnid, pfnid
728 744 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
);
729 745 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pid && fid ){
730 746 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
content_deltify(pid, fid, 0);
731 747 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
732 748 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
733 749 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
734 750 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
735 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** Add mlink table entries associated with manifest cid.
736 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** There is an mlink entry for every file that changed going
737 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** from pid to cid.
751 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Locate a file named zName in the aFile[] array of the given
752 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** manifest. We assume that filenames are in sorted order.
753 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Use a binary search. Return turn the index of the matching
754 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** entry. Or return -1 if not found.
755 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
756 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static int find_file_in_manifest(Manifest *p, const char *zName){
757 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int lwr, upr;
758 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int c;
759 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int i;
760 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ lwr = 0;
761 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ upr = p->nFile - 1;
762 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ while( lwr<=upr ){
763 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ i = (lwr+upr)/2;
764 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ c = strcmp(p->aFile[i].zName, zName);
765 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( c<0 ){
766 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ lwr = i+1;
767 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else if( c>0 ){
768 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ upr = i-1;
769 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else{
770 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return i;
771 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
772 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
773 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return -1;
774 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
775 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
776 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /*
777 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Add mlink table entries associated with manifest cid. The
778 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** parent manifest is pid.
779 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
780 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** A single mlink entry is added for every file that changed content
781 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** and/or name going from pid to cid.
738 782 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
739 783 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Deleted files have mlink.fid=0.
740 784 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Added files have mlink.pid=0.
741 785 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Edited files have both mlink.pid!=0 and mlink.fid!=0
742 786 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
@@ -757,33 +801,64 @@
757 801 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
content_get(cid, &otherContent);
758 802 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
759 803 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( blob_size(&otherContent)==0 ) return;
760 804 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( manifest_parse(&other, &otherContent)==0 ) return;
761 805 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
content_deltify(pid, cid, 0);
806 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
807 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* Use the iRename fields to find the cross-linkage between
808 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** renamed files. */
809 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ for(j=0; j<pChild->nFile; j++){
810 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ const char *zPrior = pChild->aFile[j].zPrior;
811 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( zPrior && zPrior[0] ){
812 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ i = find_file_in_manifest(pParent, zPrior);
813 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( i>=0 ){
814 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pChild->aFile[j].iRename = i;
815 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pParent->aFile[i].iRename = j;
816 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
817 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
818 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
819 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
820 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* Construct the mlink entries */
762 821 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
for(i=j=0; i<pParent->nFile && j<pChild->nFile; ){
763 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int c = strcmp(pParent->aFile[i].zName, pChild->aFile[j].zName);
764 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( c<0 ){
765 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- add_one_mlink(cid, pParent->aFile[i].zUuid, 0, pParent->aFile[i].zName);
822 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int c;
823 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( pParent->aFile[i].iRename>=0 ){
824 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ i++;
825 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else if( (c = strcmp(pParent->aFile[i].zName, pChild->aFile[j].zName))<0 ){
826 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ add_one_mlink(cid, pParent->aFile[i].zUuid,0,pParent->aFile[i].zName,0);
766 827 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
i++;
767 828 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else if( c>0 ){
768 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- add_one_mlink(cid, 0, pChild->aFile[j].zUuid, pChild->aFile[j].zName);
829 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int rn = pChild->aFile[j].iRename;
830 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( rn>=0 ){
831 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ add_one_mlink(cid, pParent->aFile[rn].zUuid, pChild->aFile[j].zUuid,
832 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pChild->aFile[j].zName, pParent->aFile[rn].zName);
833 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else{
834 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ add_one_mlink(cid, 0, pChild->aFile[j].zUuid, pChild->aFile[j].zName,0);
835 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
769 836 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
j++;
770 837 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
771 838 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( strcmp(pParent->aFile[i].zUuid, pChild->aFile[j].zUuid)!=0 ){
772 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- add_one_mlink(cid, pParent->aFile[i].zUuid, pChild->aFile[j].zUuid,
773 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pChild->aFile[j].zName);
839 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ add_one_mlink(cid, pParent->aFile[i].zUuid, pChild->aFile[j].zUuid,
840 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pChild->aFile[j].zName, 0);
774 841 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
775 842 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
i++;
776 843 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
j++;
777 844 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
778 845 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
779 846 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
while( i<pParent->nFile ){
780 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- add_one_mlink(cid, pParent->aFile[i].zUuid, 0, pParent->aFile[i].zName);
847 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( pParent->aFile[i].iRename<0 ){
848 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ add_one_mlink(cid, pParent->aFile[i].zUuid, 0, pParent->aFile[i].zName,0);
849 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
781 850 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
i++;
782 851 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
783 852 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
while( j<pChild->nFile ){
784 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- add_one_mlink(cid, 0, pChild->aFile[j].zUuid, pChild->aFile[j].zName);
853 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int rn = pChild->aFile[j].iRename;
854 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( rn>=0 ){
855 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ add_one_mlink(cid, pParent->aFile[rn].zUuid, pChild->aFile[j].zUuid,
856 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pChild->aFile[j].zName, pParent->aFile[rn].zName);
857 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else{
858 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ add_one_mlink(cid, 0, pChild->aFile[j].zUuid, pChild->aFile[j].zName,0);
859 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
785 860 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
j++;
786 861 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
787 862 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
manifest_clear(&other);
788 863 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
789 864 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
790 865 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!