summaryrefslogtreecommitdiff
path: root/UCoreWorkers.pas
diff options
context:
space:
mode:
Diffstat (limited to 'UCoreWorkers.pas')
-rw-r--r--UCoreWorkers.pas6
1 files changed, 6 insertions, 0 deletions
diff --git a/UCoreWorkers.pas b/UCoreWorkers.pas
index 6ea4268..507e2b7 100644
--- a/UCoreWorkers.pas
+++ b/UCoreWorkers.pas
@@ -1501,6 +1501,12 @@ begin
{ if DestEngine.ChangeDir(CurrPath) <> 0 then DebugMsg(['*** WARNING: Cannot change to the origin location, strange behaviour may occur.']);
if SrcEngine.ChangeDir(CurrPath) <> 0 then DebugMsg(['*** WARNING: Cannot change to the origin location, strange behaviour may occur.']); }
+
+ // For streaming type archives the list of files to copy strictly needs to be sorted globally according to inode_no
+ if (SrcEngine is TVFSEngine) and (SrcEngine as TVFSEngine).ArchiveMode and (SrcEngine as TVFSEngine).ArchiveStreamingType then begin
+ DebugMsg(['Archive type is streaming, performing global filelist sort...']);
+ FillDirFiles_sort(List);
+ end;
DebugWriteListSL(List);
SkipInaccessible := False;