volume.cpp (unrarsrc-6.1.3) | : | volume.cpp (unrarsrc-6.1.4) | ||
---|---|---|---|---|
skipping to change at line 46 | skipping to change at line 46 | |||
wcsncpyz(NextName,Arc.FileName,ASIZE(NextName)); | wcsncpyz(NextName,Arc.FileName,ASIZE(NextName)); | |||
NextVolumeName(NextName,ASIZE(NextName),!Arc.NewNumbering); | NextVolumeName(NextName,ASIZE(NextName),!Arc.NewNumbering); | |||
#if !defined(SFX_MODULE) && !defined(RARDLL) | #if !defined(SFX_MODULE) && !defined(RARDLL) | |||
bool RecoveryDone=false; | bool RecoveryDone=false; | |||
#endif | #endif | |||
bool OldSchemeTested=false; | bool OldSchemeTested=false; | |||
bool FailedOpen=false; // No more next volume open attempts if true. | bool FailedOpen=false; // No more next volume open attempts if true. | |||
#if !defined(SILENT) | #if !defined(SILENT) | |||
if (Cmd->VolumePause) | // In -vp mode we force the pause before next volume even if it is present | |||
{ | // and even if we are on the hard disk. It is important when user does not | |||
// If next volume can't be opened exclusively, it might be still | // want to process partially downloaded volumes preliminary. | |||
// downloading, so in -vp mode user may prefer to pause until completion | // 2022.01.11: In WinRAR 6.10 beta versions we tried to ignore VolumePause | |||
// even if volume is exist. FMF_OPENEXCLUSIVE works in Windows only. | // if we could open the next volume with FMF_OPENEXCLUSIVE. But another | |||
File TestOpen; | // developer asked us to return the previous behavior and always prompt | |||
if (!TestOpen.Open(NextName,FMF_OPENEXCLUSIVE) && !uiAskNextVolume(NextName, | // for confirmation. They want to control when unrar continues, because | |||
ASIZE(NextName))) | // the next file might not be fully decoded yet. They write chunks of data | |||
FailedOpen=true; | // and then close the file again until the next chunk comes in. | |||
} | ||||
if (Cmd->VolumePause && !uiAskNextVolume(NextName,ASIZE(NextName))) | ||||
FailedOpen=true; | ||||
#endif | #endif | |||
uint OpenMode = Cmd->OpenShared ? FMF_OPENSHARED : 0; | uint OpenMode = Cmd->OpenShared ? FMF_OPENSHARED : 0; | |||
if (!FailedOpen) | if (!FailedOpen) | |||
while (!Arc.Open(NextName,OpenMode)) | while (!Arc.Open(NextName,OpenMode)) | |||
{ | { | |||
// We need to open a new volume which size was not calculated | // We need to open a new volume which size was not calculated | |||
// in total size before, so we cannot calculate the total progress | // in total size before, so we cannot calculate the total progress | |||
// anymore. Let's reset the total size to zero and stop | // anymore. Let's reset the total size to zero and stop | |||
End of changes. 1 change blocks. | ||||
10 lines changed or deleted | 12 lines changed or added |