From 22b008f72380b5853dadb353871df01fc62b09e7 Mon Sep 17 00:00:00 2001 From: coderb Date: Mon, 18 Dec 2017 09:51:24 -0500 Subject: [PATCH] rar5: unpack wip --- src/SharpCompress/Common/Rar/Headers/FileHeader.cs | 1 + .../Compressors/Rar/UnpackV2017/Unpack.cs | 13 +++++-------- 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/src/SharpCompress/Common/Rar/Headers/FileHeader.cs b/src/SharpCompress/Common/Rar/Headers/FileHeader.cs index b1c4137f..48d2f3e0 100644 --- a/src/SharpCompress/Common/Rar/Headers/FileHeader.cs +++ b/src/SharpCompress/Common/Rar/Headers/FileHeader.cs @@ -405,6 +405,7 @@ namespace SharpCompress.Common.Rar.Headers // 4 - good compression // 5 - best compression internal byte CompressionMethod { get; private set; } + internal bool IsStored { get { return CompressionMethod == 0; } } // eg (see DoUnpack()) //case 15: // rar 1.5 compression diff --git a/src/SharpCompress/Compressors/Rar/UnpackV2017/Unpack.cs b/src/SharpCompress/Compressors/Rar/UnpackV2017/Unpack.cs index f7c8f536..bbba9d8a 100644 --- a/src/SharpCompress/Compressors/Rar/UnpackV2017/Unpack.cs +++ b/src/SharpCompress/Compressors/Rar/UnpackV2017/Unpack.cs @@ -18,23 +18,20 @@ namespace SharpCompress.Compressors.Rar.UnpackV2017 this.fileHeader = fileHeader; this.readStream = readStream; this.writeStream = writeStream; -// if (!fileHeader.IsSolid) -// { -// Init(null); -// } -fileHeader. - Init(size_t WinSize, fileHeader.IsSolid) + if (!fileHeader.IsStored) { + Init(fileHeader.WindowSize, fileHeader.IsSolid); + } Suspended = false; DoUnpack(); } public void DoUnpack() { - if (this.fileHeader.CompressionMethod == 0) + if (this.fileHeader.IsStored) { UnstoreFile(); } else { - DoUnpack(uint Method,bool Solid); + DoUnpack(this.fileHeader.CompressionMethod, this.fileHeader.IsSolid); } }