From 7115566476c82daa65c534ed735def54bcc7c7cf Mon Sep 17 00:00:00 2001 From: Chris Moeller Date: Fri, 3 Oct 2014 00:36:52 -0700 Subject: [PATCH] Fixed handling Rar 5.x solid archives --- Frameworks/File_Extractor/File_Extractor/unrar/extract.cpp | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/Frameworks/File_Extractor/File_Extractor/unrar/extract.cpp b/Frameworks/File_Extractor/File_Extractor/unrar/extract.cpp index c1073005d..d2e0612af 100644 --- a/Frameworks/File_Extractor/File_Extractor/unrar/extract.cpp +++ b/Frameworks/File_Extractor/File_Extractor/unrar/extract.cpp @@ -62,17 +62,16 @@ unrar_err_t CmdExtract::ExtractCurrentFile( bool SkipSolid, bool check_compatibi Unp = new Unpack( &Arc ); if ( !Unp ) return unrar_err_memory; - - Unp->Init(Arc.FileHead.WinSize,Arc.FileHead.Solid); } + Unp->Init(Arc.FileHead.WinSize,Arc.FileHead.Solid); Unp->SetDestSize(Arc.FileHead.UnpSize); #ifndef SFX_MODULE - if (Arc.FileHead.UnpVer>=13 && Arc.FileHead.UnpVer<=15) + if (Arc.Format!=RARFMT50 && Arc.FileHead.UnpVer<=15) Unp->DoUnpack(15,FileCount>1 && Arc.Solid); else #endif - Unp->DoUnpack(Arc.FileHead.UnpVer,!!(Arc.FileHead.Flags & LHD_SOLID)); + Unp->DoUnpack(Arc.FileHead.UnpVer,Arc.FileHead.Solid); } // (no need to seek to next file)