From 4b1ea33102b27030f794b65ed0bfa54f3bbec865 Mon Sep 17 00:00:00 2001 From: Adam Hathcock Date: Mon, 8 Apr 2013 12:12:46 +0100 Subject: [PATCH 1/2] Removing .user files --- .gitignore | 1 + SharpCompress/SharpCompress.3.5.csproj.user | 6 ---- .../SharpCompress.Silverlight.csproj.user | 32 ------------------- SharpCompress/SharpCompress.WP7.csproj.user | 6 ---- SharpCompress/SharpCompress.WinRT.csproj.user | 6 ---- .../SharpCompress.WindowsStore.csproj.user | 6 ---- SharpCompress/SharpCompress.csproj.user | 6 ---- 7 files changed, 1 insertion(+), 62 deletions(-) delete mode 100644 SharpCompress/SharpCompress.3.5.csproj.user delete mode 100644 SharpCompress/SharpCompress.Silverlight.csproj.user delete mode 100644 SharpCompress/SharpCompress.WP7.csproj.user delete mode 100644 SharpCompress/SharpCompress.WinRT.csproj.user delete mode 100644 SharpCompress/SharpCompress.WindowsStore.csproj.user delete mode 100644 SharpCompress/SharpCompress.csproj.user diff --git a/.gitignore b/.gitignore index a1513dfd..06b0440f 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,4 @@ **/obj/* _ReSharper.SharpCompress/ bin/ +*.user diff --git a/SharpCompress/SharpCompress.3.5.csproj.user b/SharpCompress/SharpCompress.3.5.csproj.user deleted file mode 100644 index 76fe5a55..00000000 --- a/SharpCompress/SharpCompress.3.5.csproj.user +++ /dev/null @@ -1,6 +0,0 @@ - - - - ProjectFiles - - \ No newline at end of file diff --git a/SharpCompress/SharpCompress.Silverlight.csproj.user b/SharpCompress/SharpCompress.Silverlight.csproj.user deleted file mode 100644 index d2cc8df2..00000000 --- a/SharpCompress/SharpCompress.Silverlight.csproj.user +++ /dev/null @@ -1,32 +0,0 @@ - - - - ProjectFiles - - - - - - - - DynamicPage - True - False - False - - - - - - - - - True - - - True - - - - - \ No newline at end of file diff --git a/SharpCompress/SharpCompress.WP7.csproj.user b/SharpCompress/SharpCompress.WP7.csproj.user deleted file mode 100644 index 76fe5a55..00000000 --- a/SharpCompress/SharpCompress.WP7.csproj.user +++ /dev/null @@ -1,6 +0,0 @@ - - - - ProjectFiles - - \ No newline at end of file diff --git a/SharpCompress/SharpCompress.WinRT.csproj.user b/SharpCompress/SharpCompress.WinRT.csproj.user deleted file mode 100644 index 76fe5a55..00000000 --- a/SharpCompress/SharpCompress.WinRT.csproj.user +++ /dev/null @@ -1,6 +0,0 @@ - - - - ProjectFiles - - \ No newline at end of file diff --git a/SharpCompress/SharpCompress.WindowsStore.csproj.user b/SharpCompress/SharpCompress.WindowsStore.csproj.user deleted file mode 100644 index 566c009a..00000000 --- a/SharpCompress/SharpCompress.WindowsStore.csproj.user +++ /dev/null @@ -1,6 +0,0 @@ - - - - ShowAllFiles - - \ No newline at end of file diff --git a/SharpCompress/SharpCompress.csproj.user b/SharpCompress/SharpCompress.csproj.user deleted file mode 100644 index 76fe5a55..00000000 --- a/SharpCompress/SharpCompress.csproj.user +++ /dev/null @@ -1,6 +0,0 @@ - - - - ProjectFiles - - \ No newline at end of file From c5550aad2a2943ae9751f542c3e19ae9d712a75a Mon Sep 17 00:00:00 2001 From: Adam Hathcock Date: Mon, 8 Apr 2013 12:17:16 +0100 Subject: [PATCH 2/2] Fix LZMA2 with 1 byte of data --- SharpCompress.Test/SharpCompress.Test.csproj | 1 + SharpCompress.Test/Streams/StreamTests.cs | 21 ++++++++++++++++++++ SharpCompress/Compressor/LZMA/LzmaStream.cs | 12 ++++++----- 3 files changed, 29 insertions(+), 5 deletions(-) create mode 100644 SharpCompress.Test/Streams/StreamTests.cs diff --git a/SharpCompress.Test/SharpCompress.Test.csproj b/SharpCompress.Test/SharpCompress.Test.csproj index 9f619d39..b9ce86c8 100644 --- a/SharpCompress.Test/SharpCompress.Test.csproj +++ b/SharpCompress.Test/SharpCompress.Test.csproj @@ -57,6 +57,7 @@ + diff --git a/SharpCompress.Test/Streams/StreamTests.cs b/SharpCompress.Test/Streams/StreamTests.cs new file mode 100644 index 00000000..fe489e55 --- /dev/null +++ b/SharpCompress.Test/Streams/StreamTests.cs @@ -0,0 +1,21 @@ +using System.IO; +using Microsoft.VisualStudio.TestTools.UnitTesting; +using SharpCompress.Compressor.LZMA; + +namespace SharpCompress.Test.Streams +{ + [TestClass] + public class StreamTests + { + [TestMethod] + public void TestLzma2Decompress1Byte() + { + byte[] properties = new byte[] { 0x01 }; + byte[] compressedData = new byte[] { 0x01, 0x00, 0x00, 0x58, 0x00 }; + MemoryStream lzma2Stream = new MemoryStream(compressedData); + + LzmaStream decompressor = new LzmaStream(properties, lzma2Stream, 5, 1); + Assert.AreEqual('X', decompressor.ReadByte()); + } + } +} \ No newline at end of file diff --git a/SharpCompress/Compressor/LZMA/LzmaStream.cs b/SharpCompress/Compressor/LZMA/LzmaStream.cs index 9968ba2a..f9a8aeaf 100644 --- a/SharpCompress/Compressor/LZMA/LzmaStream.cs +++ b/SharpCompress/Compressor/LZMA/LzmaStream.cs @@ -179,13 +179,15 @@ namespace SharpCompress.Compressor.LZMA if (toProcess > availableBytes) toProcess = (int)availableBytes; + outWindow.SetLimit(toProcess); if (uncompressedChunk) - inputPosition += outWindow.CopyStream(inputStream, toProcess); - else { - outWindow.SetLimit(toProcess); - if (decoder.Code(dictionarySize, outWindow, rangeDecoder) && outputSize < 0) - availableBytes = outWindow.AvailableBytes; + inputPosition += outWindow.CopyStream(inputStream, toProcess); + } + else if (decoder.Code(dictionarySize, outWindow, rangeDecoder) + && outputSize < 0) + { + availableBytes = outWindow.AvailableBytes; } int read = outWindow.Read(buffer, offset, toProcess);