<?xml version="1.0"?><?xml-stylesheet type="text/xsl" href="/rss.xsl"?><rss version="2.0"><channel><title>sharpcompress Issue Tracker Rss Feed</title><link>http://sharpcompress.codeplex.com/workitem/list/basic</link><description>sharpcompress Issue Tracker Rss Description</description><item><title>Commented Unassigned: Protect against double-disposal in Streams [36]</title><link>http://sharpcompress.codeplex.com/workitem/36</link><description>In certain situations it is possible to have the Dispose method of a stream called multiple times.  When this happens in the various compression streams in SharpCompress it can cause exceptions when the stream&amp;#39;s Dispose code tries to finalize the compression algorithm multiple times.&lt;br /&gt;&lt;br /&gt;For instance, in PpmdStream.cs&lt;br /&gt;&amp;#96;&amp;#96;&amp;#96;&lt;br /&gt;protected override void Dispose&amp;#40;bool isDisposing&amp;#41;&lt;br /&gt;&amp;#123;&lt;br /&gt;    if &amp;#40;isDisposing&amp;#41;&lt;br /&gt;    &amp;#123;&lt;br /&gt;        if &amp;#40;compress&amp;#41;&lt;br /&gt;            model.EncodeBlock&amp;#40;stream, new MemoryStream&amp;#40;&amp;#41;, true&amp;#41;&amp;#59;&lt;br /&gt;    &amp;#125;&lt;br /&gt;    base.Dispose&amp;#40;isDisposing&amp;#41;&amp;#59;&lt;br /&gt;&amp;#125;&lt;br /&gt;&amp;#96;&amp;#96;&amp;#96;&lt;br /&gt;&lt;br /&gt;If this is called twice, the model.EncodeBlock method will result in an exception deep in the model&amp;#39;s code, with no easy link back to the source of the exception.&lt;br /&gt;&lt;br /&gt;Either the compression stream classes or their models should check for the encoding process being finalized before trying to finalize it a second time.  A _disposed_ flag in the stream class for instance, or a flag in the model that is set when the encoding is finalized, with appropriate error messages for attempts to continue to use a finalized model.&lt;br /&gt;Comments: Thanks for the library &amp;#58;&amp;#41;</description><author>EMonk</author><pubDate>Tue, 21 May 2013 21:32:16 GMT</pubDate><guid isPermaLink="false">Commented Unassigned: Protect against double-disposal in Streams [36] 20130521093216P</guid></item><item><title>Commented Unassigned: Protect against double-disposal in Streams [36]</title><link>http://sharpcompress.codeplex.com/workitem/36</link><description>In certain situations it is possible to have the Dispose method of a stream called multiple times.  When this happens in the various compression streams in SharpCompress it can cause exceptions when the stream&amp;#39;s Dispose code tries to finalize the compression algorithm multiple times.&lt;br /&gt;&lt;br /&gt;For instance, in PpmdStream.cs&lt;br /&gt;&amp;#96;&amp;#96;&amp;#96;&lt;br /&gt;protected override void Dispose&amp;#40;bool isDisposing&amp;#41;&lt;br /&gt;&amp;#123;&lt;br /&gt;    if &amp;#40;isDisposing&amp;#41;&lt;br /&gt;    &amp;#123;&lt;br /&gt;        if &amp;#40;compress&amp;#41;&lt;br /&gt;            model.EncodeBlock&amp;#40;stream, new MemoryStream&amp;#40;&amp;#41;, true&amp;#41;&amp;#59;&lt;br /&gt;    &amp;#125;&lt;br /&gt;    base.Dispose&amp;#40;isDisposing&amp;#41;&amp;#59;&lt;br /&gt;&amp;#125;&lt;br /&gt;&amp;#96;&amp;#96;&amp;#96;&lt;br /&gt;&lt;br /&gt;If this is called twice, the model.EncodeBlock method will result in an exception deep in the model&amp;#39;s code, with no easy link back to the source of the exception.&lt;br /&gt;&lt;br /&gt;Either the compression stream classes or their models should check for the encoding process being finalized before trying to finalize it a second time.  A _disposed_ flag in the stream class for instance, or a flag in the model that is set when the encoding is finalized, with appropriate error messages for attempts to continue to use a finalized model.&lt;br /&gt;Comments: I will go over all the streams and do this.  Thanks for this catch.</description><author>adamhathcock</author><pubDate>Mon, 20 May 2013 08:15:04 GMT</pubDate><guid isPermaLink="false">Commented Unassigned: Protect against double-disposal in Streams [36] 20130520081504A</guid></item><item><title>Created Unassigned: Protect against double-disposal in Streams [36]</title><link>http://sharpcompress.codeplex.com/workitem/36</link><description>In certain situations it is possible to have the Dispose method of a stream called multiple times.  When this happens in the various compression streams in SharpCompress it can cause exceptions when the stream&amp;#39;s Dispose code tries to finalize the compression algorithm multiple times.&lt;br /&gt;&lt;br /&gt;For instance, in PpmdStream.cs&lt;br /&gt;&amp;#96;&amp;#96;&amp;#96;&lt;br /&gt;protected override void Dispose&amp;#40;bool isDisposing&amp;#41;&lt;br /&gt;&amp;#123;&lt;br /&gt;    if &amp;#40;isDisposing&amp;#41;&lt;br /&gt;    &amp;#123;&lt;br /&gt;        if &amp;#40;compress&amp;#41;&lt;br /&gt;            model.EncodeBlock&amp;#40;stream, new MemoryStream&amp;#40;&amp;#41;, true&amp;#41;&amp;#59;&lt;br /&gt;    &amp;#125;&lt;br /&gt;    base.Dispose&amp;#40;isDisposing&amp;#41;&amp;#59;&lt;br /&gt;&amp;#125;&lt;br /&gt;&amp;#96;&amp;#96;&amp;#96;&lt;br /&gt;&lt;br /&gt;If this is called twice, the model.EncodeBlock method will result in an exception deep in the model&amp;#39;s code, with no easy link back to the source of the exception.&lt;br /&gt;&lt;br /&gt;Either the compression stream classes or their models should check for the encoding process being finalized before trying to finalize it a second time.  A _disposed_ flag in the stream class for instance, or a flag in the model that is set when the encoding is finalized, with appropriate error messages for attempts to continue to use a finalized model.&lt;br /&gt;</description><author>EMonk</author><pubDate>Sun, 19 May 2013 03:54:09 GMT</pubDate><guid isPermaLink="false">Created Unassigned: Protect against double-disposal in Streams [36] 20130519035409A</guid></item><item><title>Commented Unassigned: Open tar archive from stream [35]</title><link>http://sharpcompress.codeplex.com/workitem/35</link><description>When I try to open tar archive from stream using method ArchiveFactory.Open&amp;#40;Stream, Options&amp;#41;, the archive is recognize as rar. In consequence, when I try to read archive entries I get InvalidFormatException &amp;#40;Invalid Rar Header&amp;#41;.&lt;br /&gt;Comments: Thanks a lot for a quick fix. &amp;#10;BTW. SharpCompress is very smart and useful library.</description><author>pjakobczyk</author><pubDate>Tue, 07 May 2013 16:33:46 GMT</pubDate><guid isPermaLink="false">Commented Unassigned: Open tar archive from stream [35] 20130507043346P</guid></item><item><title>Commented Unassigned: Open tar archive from stream [35]</title><link>http://sharpcompress.codeplex.com/workitem/35</link><description>When I try to open tar archive from stream using method ArchiveFactory.Open&amp;#40;Stream, Options&amp;#41;, the archive is recognize as rar. In consequence, when I try to read archive entries I get InvalidFormatException &amp;#40;Invalid Rar Header&amp;#41;.&lt;br /&gt;Comments: Fix for what you found&amp;#58; https&amp;#58;&amp;#47;&amp;#47;github.com&amp;#47;adamhathcock&amp;#47;sharpcompress&amp;#47;commit&amp;#47;483f2e564a49c5ac17a92f8ae97f00db3424a514</description><author>adamhathcock</author><pubDate>Tue, 07 May 2013 13:33:00 GMT</pubDate><guid isPermaLink="false">Commented Unassigned: Open tar archive from stream [35] 20130507013300P</guid></item><item><title>Commented Unassigned: Open tar archive from stream [35]</title><link>http://sharpcompress.codeplex.com/workitem/35</link><description>When I try to open tar archive from stream using method ArchiveFactory.Open&amp;#40;Stream, Options&amp;#41;, the archive is recognize as rar. In consequence, when I try to read archive entries I get InvalidFormatException &amp;#40;Invalid Rar Header&amp;#41;.&lt;br /&gt;Comments: I took a look at the problem closer. The problem is not with tar header but with method ArchiveFactory.Open taking Stream argument. ArchiveFactory.Open method which take FileInfo works fine. It seems that there is no LookForHeader option in RarArchive.IsRarFile invocation and the archive stream is recognized as rar.</description><author>pjakobczyk</author><pubDate>Tue, 07 May 2013 13:04:36 GMT</pubDate><guid isPermaLink="false">Commented Unassigned: Open tar archive from stream [35] 20130507010436P</guid></item><item><title>Commented Unassigned: Open tar archive from stream [35]</title><link>http://sharpcompress.codeplex.com/workitem/35</link><description>When I try to open tar archive from stream using method ArchiveFactory.Open&amp;#40;Stream, Options&amp;#41;, the archive is recognize as rar. In consequence, when I try to read archive entries I get InvalidFormatException &amp;#40;Invalid Rar Header&amp;#41;.&lt;br /&gt;Comments: Do you have a small example of a tar that does this&amp;#63;  There must be a tar header I&amp;#39;m missing or something.</description><author>adamhathcock</author><pubDate>Tue, 07 May 2013 12:24:46 GMT</pubDate><guid isPermaLink="false">Commented Unassigned: Open tar archive from stream [35] 20130507122446P</guid></item><item><title>Created Unassigned: Open tar archive from stream [35]</title><link>http://sharpcompress.codeplex.com/workitem/35</link><description>When I try to open tar archive from stream using method ArchiveFactory.Open&amp;#40;Stream, Options&amp;#41;, the archive is recognize as rar. In consequence, when I try to read archive entries I get InvalidFormatException &amp;#40;Invalid Rar Header&amp;#41;.&lt;br /&gt;</description><author>pjakobczyk</author><pubDate>Tue, 07 May 2013 10:43:21 GMT</pubDate><guid isPermaLink="false">Created Unassigned: Open tar archive from stream [35] 20130507104321A</guid></item><item><title>Closed Issue: Failed to decompress Lzma2 stream with only 1 byte of data [28]</title><link>http://sharpcompress.codeplex.com/workitem/28</link><description>Steps to reproduce&amp;#58;&lt;br /&gt;1. Compress a character &amp;#39;X&amp;#39; using Lzma2 &amp;#40;make sure it outputs an uncompressible chunk&amp;#41;&lt;br /&gt;2. Use LzmaStream decompress that 1 character&lt;br /&gt;3. The code hangs-up in a loop because CopyStream returns 0 &amp;#40;extra check&amp;#47;assert here&amp;#63;&amp;#41;&lt;br /&gt;&lt;br /&gt;Resolved by adding&lt;br /&gt;outWindow.SetLimit&amp;#40;toProcess&amp;#41;&amp;#59;&lt;br /&gt;somewhere on line LzmaStream.cs&amp;#58;184&lt;br /&gt;&lt;br /&gt;&amp;#9;&amp;#9;&amp;#9;&amp;#9;if &amp;#40;uncompressedChunk&amp;#41;&lt;br /&gt;&amp;#9;&amp;#9;&amp;#9;&amp;#9;&amp;#123;&lt;br /&gt;&amp;#9;&amp;#9;&amp;#9;&amp;#9;&amp;#9;outWindow.SetLimit&amp;#40;toProcess&amp;#41;&amp;#59; &amp;#47;&amp;#47; BUG&amp;#58; added this line&lt;br /&gt;&amp;#9;&amp;#9;&amp;#9;&amp;#9;&amp;#9;inputPosition &amp;#43;&amp;#61; outWindow.CopyStream&amp;#40;inputStream, toProcess&amp;#41;&amp;#59;&lt;br /&gt;&amp;#9;&amp;#9;&amp;#9;&amp;#9;&amp;#125;&lt;br /&gt;&amp;#9;&amp;#9;&amp;#9;&amp;#9;else&lt;br /&gt;&amp;#9;&amp;#9;&amp;#9;&amp;#9;&amp;#123;&lt;br /&gt;&amp;#9;&amp;#9;&amp;#9;&amp;#9;&amp;#9;outWindow.SetLimit&amp;#40;toProcess&amp;#41;&amp;#59;&lt;br /&gt;&amp;#9;&amp;#9;&amp;#9;&amp;#9;&amp;#9;if &amp;#40;decoder.Code&amp;#40;dictionarySize, outWindow, rangeDecoder&amp;#41; &amp;#38;&amp;#38; outputSize &amp;#60; 0&amp;#41;&lt;br /&gt;&amp;#9;&amp;#9;&amp;#9;&amp;#9;&amp;#9;&amp;#9;availableBytes &amp;#61; outWindow.AvailableBytes&amp;#59;&lt;br /&gt;&amp;#9;&amp;#9;&amp;#9;&amp;#9;&amp;#125;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;test code&amp;#58;&lt;br /&gt;&amp;#96;&amp;#96;&amp;#96;&lt;br /&gt;&amp;#91;TestMethod&amp;#93;&lt;br /&gt;&amp;#9;&amp;#9;public void TestLzma2Decompress1Byte&amp;#40;&amp;#41;&lt;br /&gt;&amp;#9;&amp;#9;&amp;#123;&lt;br /&gt;&amp;#9;&amp;#9;&amp;#9;byte&amp;#91;&amp;#93; properties &amp;#61; new byte&amp;#91;&amp;#93; &amp;#123; 0x01 &amp;#125;&amp;#59;&lt;br /&gt;&amp;#9;&amp;#9;&amp;#9;byte&amp;#91;&amp;#93; compressedData &amp;#61; new byte&amp;#91;&amp;#93; &amp;#123; 0x01, 0x00, 0x00, 0x58, 0x00 &amp;#125;&amp;#59;&lt;br /&gt;&amp;#9;&amp;#9;&amp;#9;MemoryStream lzma2Stream &amp;#61; new MemoryStream&amp;#40;compressedData&amp;#41;&amp;#59;&lt;br /&gt;&lt;br /&gt;&amp;#9;&amp;#9;&amp;#9;SharpCompress.Compressor.LZMA.LzmaStream decompressor &amp;#61; new SharpCompress.Compressor.LZMA.LzmaStream&amp;#40;properties, lzma2Stream, 5, 1&amp;#41;&amp;#59;&lt;br /&gt;&amp;#9;&amp;#9;&amp;#9;Assert.AreEqual&amp;#40;&amp;#39;X&amp;#39;, decompressor.ReadByte&amp;#40;&amp;#41;&amp;#41;&amp;#59;&lt;br /&gt;&amp;#9;&amp;#9;&amp;#125;&lt;br /&gt;&amp;#96;&amp;#96;&amp;#96;&lt;br /&gt;</description><author>adamhathcock</author><pubDate>Sun, 28 Apr 2013 10:34:27 GMT</pubDate><guid isPermaLink="false">Closed Issue: Failed to decompress Lzma2 stream with only 1 byte of data [28] 20130428103427A</guid></item><item><title>Closed Issue: Stops extracting rar archives after the first entry when reading from a network stream [29]</title><link>http://sharpcompress.codeplex.com/workitem/29</link><description>I&amp;#39;ve tried to decompress an incoming rar file in a WCF service method&amp;#58; the stream is created on the client side by opening a rar file for reading. Then this stream is passed to a wcf service. The service opens stream using ReaderFactory.Open&amp;#40;&amp;#41;. Unfortunately the decompression stopps after the first file is extracted from the archive. The reader.MoveToNextEntry&amp;#40;&amp;#41; returns false though the stream was not completely read yet and there is still a file left in the compressed stream. The code to reproduce this behavior and the test archive is included in the attached file.&lt;br /&gt;&lt;br /&gt;Thank you in advance&amp;#33;&lt;br /&gt;Comments: Works with BufferedStream</description><author>adamhathcock</author><pubDate>Sun, 28 Apr 2013 10:33:57 GMT</pubDate><guid isPermaLink="false">Closed Issue: Stops extracting rar archives after the first entry when reading from a network stream [29] 20130428103357A</guid></item><item><title>Commented Issue: Failed to decompress Lzma2 stream with only 1 byte of data [28]</title><link>http://sharpcompress.codeplex.com/workitem/28</link><description>Steps to reproduce&amp;#58;&lt;br /&gt;1. Compress a character &amp;#39;X&amp;#39; using Lzma2 &amp;#40;make sure it outputs an uncompressible chunk&amp;#41;&lt;br /&gt;2. Use LzmaStream decompress that 1 character&lt;br /&gt;3. The code hangs-up in a loop because CopyStream returns 0 &amp;#40;extra check&amp;#47;assert here&amp;#63;&amp;#41;&lt;br /&gt;&lt;br /&gt;Resolved by adding&lt;br /&gt;outWindow.SetLimit&amp;#40;toProcess&amp;#41;&amp;#59;&lt;br /&gt;somewhere on line LzmaStream.cs&amp;#58;184&lt;br /&gt;&lt;br /&gt;&amp;#9;&amp;#9;&amp;#9;&amp;#9;if &amp;#40;uncompressedChunk&amp;#41;&lt;br /&gt;&amp;#9;&amp;#9;&amp;#9;&amp;#9;&amp;#123;&lt;br /&gt;&amp;#9;&amp;#9;&amp;#9;&amp;#9;&amp;#9;outWindow.SetLimit&amp;#40;toProcess&amp;#41;&amp;#59; &amp;#47;&amp;#47; BUG&amp;#58; added this line&lt;br /&gt;&amp;#9;&amp;#9;&amp;#9;&amp;#9;&amp;#9;inputPosition &amp;#43;&amp;#61; outWindow.CopyStream&amp;#40;inputStream, toProcess&amp;#41;&amp;#59;&lt;br /&gt;&amp;#9;&amp;#9;&amp;#9;&amp;#9;&amp;#125;&lt;br /&gt;&amp;#9;&amp;#9;&amp;#9;&amp;#9;else&lt;br /&gt;&amp;#9;&amp;#9;&amp;#9;&amp;#9;&amp;#123;&lt;br /&gt;&amp;#9;&amp;#9;&amp;#9;&amp;#9;&amp;#9;outWindow.SetLimit&amp;#40;toProcess&amp;#41;&amp;#59;&lt;br /&gt;&amp;#9;&amp;#9;&amp;#9;&amp;#9;&amp;#9;if &amp;#40;decoder.Code&amp;#40;dictionarySize, outWindow, rangeDecoder&amp;#41; &amp;#38;&amp;#38; outputSize &amp;#60; 0&amp;#41;&lt;br /&gt;&amp;#9;&amp;#9;&amp;#9;&amp;#9;&amp;#9;&amp;#9;availableBytes &amp;#61; outWindow.AvailableBytes&amp;#59;&lt;br /&gt;&amp;#9;&amp;#9;&amp;#9;&amp;#9;&amp;#125;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;test code&amp;#58;&lt;br /&gt;&amp;#96;&amp;#96;&amp;#96;&lt;br /&gt;&amp;#91;TestMethod&amp;#93;&lt;br /&gt;&amp;#9;&amp;#9;public void TestLzma2Decompress1Byte&amp;#40;&amp;#41;&lt;br /&gt;&amp;#9;&amp;#9;&amp;#123;&lt;br /&gt;&amp;#9;&amp;#9;&amp;#9;byte&amp;#91;&amp;#93; properties &amp;#61; new byte&amp;#91;&amp;#93; &amp;#123; 0x01 &amp;#125;&amp;#59;&lt;br /&gt;&amp;#9;&amp;#9;&amp;#9;byte&amp;#91;&amp;#93; compressedData &amp;#61; new byte&amp;#91;&amp;#93; &amp;#123; 0x01, 0x00, 0x00, 0x58, 0x00 &amp;#125;&amp;#59;&lt;br /&gt;&amp;#9;&amp;#9;&amp;#9;MemoryStream lzma2Stream &amp;#61; new MemoryStream&amp;#40;compressedData&amp;#41;&amp;#59;&lt;br /&gt;&lt;br /&gt;&amp;#9;&amp;#9;&amp;#9;SharpCompress.Compressor.LZMA.LzmaStream decompressor &amp;#61; new SharpCompress.Compressor.LZMA.LzmaStream&amp;#40;properties, lzma2Stream, 5, 1&amp;#41;&amp;#59;&lt;br /&gt;&amp;#9;&amp;#9;&amp;#9;Assert.AreEqual&amp;#40;&amp;#39;X&amp;#39;, decompressor.ReadByte&amp;#40;&amp;#41;&amp;#41;&amp;#59;&lt;br /&gt;&amp;#9;&amp;#9;&amp;#125;&lt;br /&gt;&amp;#96;&amp;#96;&amp;#96;&lt;br /&gt;Comments: Awesome, you just made my day&amp;#33;</description><author>mattiasz</author><pubDate>Mon, 08 Apr 2013 13:48:20 GMT</pubDate><guid isPermaLink="false">Commented Issue: Failed to decompress Lzma2 stream with only 1 byte of data [28] 20130408014820P</guid></item><item><title>Commented Issue: Failed to decompress Lzma2 stream with only 1 byte of data [28]</title><link>http://sharpcompress.codeplex.com/workitem/28</link><description>Steps to reproduce&amp;#58;&lt;br /&gt;1. Compress a character &amp;#39;X&amp;#39; using Lzma2 &amp;#40;make sure it outputs an uncompressible chunk&amp;#41;&lt;br /&gt;2. Use LzmaStream decompress that 1 character&lt;br /&gt;3. The code hangs-up in a loop because CopyStream returns 0 &amp;#40;extra check&amp;#47;assert here&amp;#63;&amp;#41;&lt;br /&gt;&lt;br /&gt;Resolved by adding&lt;br /&gt;outWindow.SetLimit&amp;#40;toProcess&amp;#41;&amp;#59;&lt;br /&gt;somewhere on line LzmaStream.cs&amp;#58;184&lt;br /&gt;&lt;br /&gt;&amp;#9;&amp;#9;&amp;#9;&amp;#9;if &amp;#40;uncompressedChunk&amp;#41;&lt;br /&gt;&amp;#9;&amp;#9;&amp;#9;&amp;#9;&amp;#123;&lt;br /&gt;&amp;#9;&amp;#9;&amp;#9;&amp;#9;&amp;#9;outWindow.SetLimit&amp;#40;toProcess&amp;#41;&amp;#59; &amp;#47;&amp;#47; BUG&amp;#58; added this line&lt;br /&gt;&amp;#9;&amp;#9;&amp;#9;&amp;#9;&amp;#9;inputPosition &amp;#43;&amp;#61; outWindow.CopyStream&amp;#40;inputStream, toProcess&amp;#41;&amp;#59;&lt;br /&gt;&amp;#9;&amp;#9;&amp;#9;&amp;#9;&amp;#125;&lt;br /&gt;&amp;#9;&amp;#9;&amp;#9;&amp;#9;else&lt;br /&gt;&amp;#9;&amp;#9;&amp;#9;&amp;#9;&amp;#123;&lt;br /&gt;&amp;#9;&amp;#9;&amp;#9;&amp;#9;&amp;#9;outWindow.SetLimit&amp;#40;toProcess&amp;#41;&amp;#59;&lt;br /&gt;&amp;#9;&amp;#9;&amp;#9;&amp;#9;&amp;#9;if &amp;#40;decoder.Code&amp;#40;dictionarySize, outWindow, rangeDecoder&amp;#41; &amp;#38;&amp;#38; outputSize &amp;#60; 0&amp;#41;&lt;br /&gt;&amp;#9;&amp;#9;&amp;#9;&amp;#9;&amp;#9;&amp;#9;availableBytes &amp;#61; outWindow.AvailableBytes&amp;#59;&lt;br /&gt;&amp;#9;&amp;#9;&amp;#9;&amp;#9;&amp;#125;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;test code&amp;#58;&lt;br /&gt;&amp;#96;&amp;#96;&amp;#96;&lt;br /&gt;&amp;#91;TestMethod&amp;#93;&lt;br /&gt;&amp;#9;&amp;#9;public void TestLzma2Decompress1Byte&amp;#40;&amp;#41;&lt;br /&gt;&amp;#9;&amp;#9;&amp;#123;&lt;br /&gt;&amp;#9;&amp;#9;&amp;#9;byte&amp;#91;&amp;#93; properties &amp;#61; new byte&amp;#91;&amp;#93; &amp;#123; 0x01 &amp;#125;&amp;#59;&lt;br /&gt;&amp;#9;&amp;#9;&amp;#9;byte&amp;#91;&amp;#93; compressedData &amp;#61; new byte&amp;#91;&amp;#93; &amp;#123; 0x01, 0x00, 0x00, 0x58, 0x00 &amp;#125;&amp;#59;&lt;br /&gt;&amp;#9;&amp;#9;&amp;#9;MemoryStream lzma2Stream &amp;#61; new MemoryStream&amp;#40;compressedData&amp;#41;&amp;#59;&lt;br /&gt;&lt;br /&gt;&amp;#9;&amp;#9;&amp;#9;SharpCompress.Compressor.LZMA.LzmaStream decompressor &amp;#61; new SharpCompress.Compressor.LZMA.LzmaStream&amp;#40;properties, lzma2Stream, 5, 1&amp;#41;&amp;#59;&lt;br /&gt;&amp;#9;&amp;#9;&amp;#9;Assert.AreEqual&amp;#40;&amp;#39;X&amp;#39;, decompressor.ReadByte&amp;#40;&amp;#41;&amp;#41;&amp;#59;&lt;br /&gt;&amp;#9;&amp;#9;&amp;#125;&lt;br /&gt;&amp;#96;&amp;#96;&amp;#96;&lt;br /&gt;Comments: Added your fix here&amp;#58;https&amp;#58;&amp;#47;&amp;#47;sharpcompress.codeplex.com&amp;#47;SourceControl&amp;#47;changeset&amp;#47;fcca5e95eafd&amp;#10;&amp;#10;I&amp;#39;ll do another release soon as I want to move the source to github&amp;#10;&amp;#10;Thanks&amp;#33;</description><author>adamhathcock</author><pubDate>Mon, 08 Apr 2013 11:10:36 GMT</pubDate><guid isPermaLink="false">Commented Issue: Failed to decompress Lzma2 stream with only 1 byte of data [28] 20130408111036A</guid></item><item><title>Commented Issue: Failed to decompress Lzma2 stream with only 1 byte of data [28]</title><link>http://sharpcompress.codeplex.com/workitem/28</link><description>Steps to reproduce&amp;#58;&lt;br /&gt;1. Compress a character &amp;#39;X&amp;#39; using Lzma2 &amp;#40;make sure it outputs an uncompressible chunk&amp;#41;&lt;br /&gt;2. Use LzmaStream decompress that 1 character&lt;br /&gt;3. The code hangs-up in a loop because CopyStream returns 0 &amp;#40;extra check&amp;#47;assert here&amp;#63;&amp;#41;&lt;br /&gt;&lt;br /&gt;Resolved by adding&lt;br /&gt;outWindow.SetLimit&amp;#40;toProcess&amp;#41;&amp;#59;&lt;br /&gt;somewhere on line LzmaStream.cs&amp;#58;184&lt;br /&gt;&lt;br /&gt;&amp;#9;&amp;#9;&amp;#9;&amp;#9;if &amp;#40;uncompressedChunk&amp;#41;&lt;br /&gt;&amp;#9;&amp;#9;&amp;#9;&amp;#9;&amp;#123;&lt;br /&gt;&amp;#9;&amp;#9;&amp;#9;&amp;#9;&amp;#9;outWindow.SetLimit&amp;#40;toProcess&amp;#41;&amp;#59; &amp;#47;&amp;#47; BUG&amp;#58; added this line&lt;br /&gt;&amp;#9;&amp;#9;&amp;#9;&amp;#9;&amp;#9;inputPosition &amp;#43;&amp;#61; outWindow.CopyStream&amp;#40;inputStream, toProcess&amp;#41;&amp;#59;&lt;br /&gt;&amp;#9;&amp;#9;&amp;#9;&amp;#9;&amp;#125;&lt;br /&gt;&amp;#9;&amp;#9;&amp;#9;&amp;#9;else&lt;br /&gt;&amp;#9;&amp;#9;&amp;#9;&amp;#9;&amp;#123;&lt;br /&gt;&amp;#9;&amp;#9;&amp;#9;&amp;#9;&amp;#9;outWindow.SetLimit&amp;#40;toProcess&amp;#41;&amp;#59;&lt;br /&gt;&amp;#9;&amp;#9;&amp;#9;&amp;#9;&amp;#9;if &amp;#40;decoder.Code&amp;#40;dictionarySize, outWindow, rangeDecoder&amp;#41; &amp;#38;&amp;#38; outputSize &amp;#60; 0&amp;#41;&lt;br /&gt;&amp;#9;&amp;#9;&amp;#9;&amp;#9;&amp;#9;&amp;#9;availableBytes &amp;#61; outWindow.AvailableBytes&amp;#59;&lt;br /&gt;&amp;#9;&amp;#9;&amp;#9;&amp;#9;&amp;#125;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;test code&amp;#58;&lt;br /&gt;&amp;#96;&amp;#96;&amp;#96;&lt;br /&gt;&amp;#91;TestMethod&amp;#93;&lt;br /&gt;&amp;#9;&amp;#9;public void TestLzma2Decompress1Byte&amp;#40;&amp;#41;&lt;br /&gt;&amp;#9;&amp;#9;&amp;#123;&lt;br /&gt;&amp;#9;&amp;#9;&amp;#9;byte&amp;#91;&amp;#93; properties &amp;#61; new byte&amp;#91;&amp;#93; &amp;#123; 0x01 &amp;#125;&amp;#59;&lt;br /&gt;&amp;#9;&amp;#9;&amp;#9;byte&amp;#91;&amp;#93; compressedData &amp;#61; new byte&amp;#91;&amp;#93; &amp;#123; 0x01, 0x00, 0x00, 0x58, 0x00 &amp;#125;&amp;#59;&lt;br /&gt;&amp;#9;&amp;#9;&amp;#9;MemoryStream lzma2Stream &amp;#61; new MemoryStream&amp;#40;compressedData&amp;#41;&amp;#59;&lt;br /&gt;&lt;br /&gt;&amp;#9;&amp;#9;&amp;#9;SharpCompress.Compressor.LZMA.LzmaStream decompressor &amp;#61; new SharpCompress.Compressor.LZMA.LzmaStream&amp;#40;properties, lzma2Stream, 5, 1&amp;#41;&amp;#59;&lt;br /&gt;&amp;#9;&amp;#9;&amp;#9;Assert.AreEqual&amp;#40;&amp;#39;X&amp;#39;, decompressor.ReadByte&amp;#40;&amp;#41;&amp;#41;&amp;#59;&lt;br /&gt;&amp;#9;&amp;#9;&amp;#125;&lt;br /&gt;&amp;#96;&amp;#96;&amp;#96;&lt;br /&gt;Comments: The curly bracket in my last comment should of course be omitted..</description><author>mattiasz</author><pubDate>Mon, 08 Apr 2013 09:52:07 GMT</pubDate><guid isPermaLink="false">Commented Issue: Failed to decompress Lzma2 stream with only 1 byte of data [28] 20130408095207A</guid></item><item><title>Commented Issue: Failed to decompress Lzma2 stream with only 1 byte of data [28]</title><link>http://sharpcompress.codeplex.com/workitem/28</link><description>Steps to reproduce&amp;#58;&lt;br /&gt;1. Compress a character &amp;#39;X&amp;#39; using Lzma2 &amp;#40;make sure it outputs an uncompressible chunk&amp;#41;&lt;br /&gt;2. Use LzmaStream decompress that 1 character&lt;br /&gt;3. The code hangs-up in a loop because CopyStream returns 0 &amp;#40;extra check&amp;#47;assert here&amp;#63;&amp;#41;&lt;br /&gt;&lt;br /&gt;Resolved by adding&lt;br /&gt;outWindow.SetLimit&amp;#40;toProcess&amp;#41;&amp;#59;&lt;br /&gt;somewhere on line LzmaStream.cs&amp;#58;184&lt;br /&gt;&lt;br /&gt;&amp;#9;&amp;#9;&amp;#9;&amp;#9;if &amp;#40;uncompressedChunk&amp;#41;&lt;br /&gt;&amp;#9;&amp;#9;&amp;#9;&amp;#9;&amp;#123;&lt;br /&gt;&amp;#9;&amp;#9;&amp;#9;&amp;#9;&amp;#9;outWindow.SetLimit&amp;#40;toProcess&amp;#41;&amp;#59; &amp;#47;&amp;#47; BUG&amp;#58; added this line&lt;br /&gt;&amp;#9;&amp;#9;&amp;#9;&amp;#9;&amp;#9;inputPosition &amp;#43;&amp;#61; outWindow.CopyStream&amp;#40;inputStream, toProcess&amp;#41;&amp;#59;&lt;br /&gt;&amp;#9;&amp;#9;&amp;#9;&amp;#9;&amp;#125;&lt;br /&gt;&amp;#9;&amp;#9;&amp;#9;&amp;#9;else&lt;br /&gt;&amp;#9;&amp;#9;&amp;#9;&amp;#9;&amp;#123;&lt;br /&gt;&amp;#9;&amp;#9;&amp;#9;&amp;#9;&amp;#9;outWindow.SetLimit&amp;#40;toProcess&amp;#41;&amp;#59;&lt;br /&gt;&amp;#9;&amp;#9;&amp;#9;&amp;#9;&amp;#9;if &amp;#40;decoder.Code&amp;#40;dictionarySize, outWindow, rangeDecoder&amp;#41; &amp;#38;&amp;#38; outputSize &amp;#60; 0&amp;#41;&lt;br /&gt;&amp;#9;&amp;#9;&amp;#9;&amp;#9;&amp;#9;&amp;#9;availableBytes &amp;#61; outWindow.AvailableBytes&amp;#59;&lt;br /&gt;&amp;#9;&amp;#9;&amp;#9;&amp;#9;&amp;#125;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;test code&amp;#58;&lt;br /&gt;&amp;#96;&amp;#96;&amp;#96;&lt;br /&gt;&amp;#91;TestMethod&amp;#93;&lt;br /&gt;&amp;#9;&amp;#9;public void TestLzma2Decompress1Byte&amp;#40;&amp;#41;&lt;br /&gt;&amp;#9;&amp;#9;&amp;#123;&lt;br /&gt;&amp;#9;&amp;#9;&amp;#9;byte&amp;#91;&amp;#93; properties &amp;#61; new byte&amp;#91;&amp;#93; &amp;#123; 0x01 &amp;#125;&amp;#59;&lt;br /&gt;&amp;#9;&amp;#9;&amp;#9;byte&amp;#91;&amp;#93; compressedData &amp;#61; new byte&amp;#91;&amp;#93; &amp;#123; 0x01, 0x00, 0x00, 0x58, 0x00 &amp;#125;&amp;#59;&lt;br /&gt;&amp;#9;&amp;#9;&amp;#9;MemoryStream lzma2Stream &amp;#61; new MemoryStream&amp;#40;compressedData&amp;#41;&amp;#59;&lt;br /&gt;&lt;br /&gt;&amp;#9;&amp;#9;&amp;#9;SharpCompress.Compressor.LZMA.LzmaStream decompressor &amp;#61; new SharpCompress.Compressor.LZMA.LzmaStream&amp;#40;properties, lzma2Stream, 5, 1&amp;#41;&amp;#59;&lt;br /&gt;&amp;#9;&amp;#9;&amp;#9;Assert.AreEqual&amp;#40;&amp;#39;X&amp;#39;, decompressor.ReadByte&amp;#40;&amp;#41;&amp;#41;&amp;#59;&lt;br /&gt;&amp;#9;&amp;#9;&amp;#125;&lt;br /&gt;&amp;#96;&amp;#96;&amp;#96;&lt;br /&gt;Comments: I also had this problem when I was trying to decompress a 5 MB&amp;#43; LZMA2 stream. Solved it by applying TuboZakacate&amp;#39;s solution. I can confirm that this solution works on all 163 different streams that I have tried so far.&amp;#10;&amp;#10;Also extracted the proposed solution from the if statement to save one line of code&amp;#58;&amp;#10;&amp;#10;&amp;#96;&amp;#96;&amp;#96;&amp;#10;outWindow.SetLimit&amp;#40;toProcess&amp;#41;&amp;#59;&amp;#10;if &amp;#40;uncompressedChunk&amp;#41;&amp;#10;    inputPosition &amp;#43;&amp;#61; outWindow.CopyStream&amp;#40;inputStream, toProcess&amp;#41;&amp;#59;&amp;#10;else if &amp;#40;decoder.Code&amp;#40;dictionarySize, outWindow, rangeDecoder&amp;#41; &amp;#38;&amp;#38; outputSize &amp;#60; 0&amp;#41;&amp;#10;    availableBytes &amp;#61; outWindow.AvailableBytes&amp;#59;&amp;#10;&amp;#125;&amp;#10;&amp;#96;&amp;#96;&amp;#96;&amp;#10;&amp;#10;It would be awesome if this solution got into the source code so I can use this wonderful library directly from NuGet.</description><author>mattiasz</author><pubDate>Mon, 08 Apr 2013 09:49:07 GMT</pubDate><guid isPermaLink="false">Commented Issue: Failed to decompress Lzma2 stream with only 1 byte of data [28] 20130408094907A</guid></item><item><title>Commented Issue: How can I make SharpCompress preserve file execution settings? [34]</title><link>http://sharpcompress.codeplex.com/workitem/34</link><description>Hi,&lt;br /&gt;&lt;br /&gt;Thanks for a great library. I&amp;#39;m using SharpCompress for creating and extracting tar.gz files. When doing so I can&amp;#39;t seem to have the extract part preserve the exec flag on the extracted files. Is there an option I&amp;#39;m missing here&amp;#63;&lt;br /&gt;&lt;br /&gt;This is the code I&amp;#39;m using to extract files&amp;#58;&lt;br /&gt;&lt;br /&gt;&amp;#9;public static void Decompress&amp;#40;string directory, string archiveFile&amp;#41; &amp;#123;&lt;br /&gt;&amp;#9;&amp;#9;using &amp;#40;Stream gz &amp;#61; File.Open&amp;#40;archiveFile, FileMode.Open&amp;#41;&amp;#41; &amp;#123;&lt;br /&gt;&amp;#9;            using &amp;#40;var gzArchive &amp;#61; ArchiveFactory.Open&amp;#40;gz&amp;#41;&amp;#41; &amp;#123;&lt;br /&gt;&amp;#9;                var tarEntry &amp;#61; gzArchive.Entries.First&amp;#40;&amp;#41;&amp;#59;&lt;br /&gt;&amp;#9;                using &amp;#40;var tar &amp;#61; new MemoryStream&amp;#40;&amp;#41;&amp;#41; &amp;#123;&lt;br /&gt;&amp;#9;                &amp;#9;tarEntry.WriteTo&amp;#40;tar&amp;#41;&amp;#59;&lt;br /&gt;&amp;#9;                &amp;#9;using &amp;#40;var tarArchive &amp;#61; ArchiveFactory.Open&amp;#40;tar&amp;#41;&amp;#41; &amp;#123;&lt;br /&gt;&amp;#9;                &amp;#9;&amp;#9;foreach &amp;#40;var entry in tarArchive.Entries.Where&amp;#40;entry &amp;#61;&amp;#62; &amp;#33;entry.IsDirectory&amp;#41;&amp;#41; &amp;#123;&lt;br /&gt;&amp;#9;&amp;#9;                        entry.WriteToDirectory&amp;#40;&lt;br /&gt;&amp;#9;&amp;#9;                        &amp;#9;directory,&lt;br /&gt;&amp;#9;&amp;#9;                            ExtractOptions.ExtractFullPath &amp;#124; ExtractOptions.Overwrite&amp;#41;&amp;#59;&lt;br /&gt;&amp;#9;&amp;#9;                    &amp;#125;&lt;br /&gt;&amp;#9;                &amp;#9;&amp;#125;&lt;br /&gt;&amp;#9;                &amp;#125;&lt;br /&gt;&amp;#9;            &amp;#125;&lt;br /&gt;&amp;#9;        &amp;#125;&lt;br /&gt;&amp;#9;&amp;#125;&lt;br /&gt;&lt;br /&gt;-Svein Arne&lt;br /&gt;Comments: My Tar code doesn&amp;#39;t write the file attributes out as they are in the Tar specification currently.  </description><author>adamhathcock</author><pubDate>Tue, 02 Apr 2013 09:31:45 GMT</pubDate><guid isPermaLink="false">Commented Issue: How can I make SharpCompress preserve file execution settings? [34] 20130402093145A</guid></item><item><title>Created Issue: How can I make SharpCompress preserve file execution settings? [34]</title><link>http://sharpcompress.codeplex.com/workitem/34</link><description>Hi,&lt;br /&gt;&lt;br /&gt;Thanks for a great library. I&amp;#39;m using SharpCompress for creating and extracting tar.gz files. When doing so I can&amp;#39;t seem to have the extract part preserve the exec flag on the extracted files. Is there an option I&amp;#39;m missing here&amp;#63;&lt;br /&gt;&lt;br /&gt;This is the code I&amp;#39;m using to extract files&amp;#58;&lt;br /&gt;&lt;br /&gt;&amp;#9;public static void Decompress&amp;#40;string directory, string archiveFile&amp;#41; &amp;#123;&lt;br /&gt;&amp;#9;&amp;#9;using &amp;#40;Stream gz &amp;#61; File.Open&amp;#40;archiveFile, FileMode.Open&amp;#41;&amp;#41; &amp;#123;&lt;br /&gt;&amp;#9;            using &amp;#40;var gzArchive &amp;#61; ArchiveFactory.Open&amp;#40;gz&amp;#41;&amp;#41; &amp;#123;&lt;br /&gt;&amp;#9;                var tarEntry &amp;#61; gzArchive.Entries.First&amp;#40;&amp;#41;&amp;#59;&lt;br /&gt;&amp;#9;                using &amp;#40;var tar &amp;#61; new MemoryStream&amp;#40;&amp;#41;&amp;#41; &amp;#123;&lt;br /&gt;&amp;#9;                &amp;#9;tarEntry.WriteTo&amp;#40;tar&amp;#41;&amp;#59;&lt;br /&gt;&amp;#9;                &amp;#9;using &amp;#40;var tarArchive &amp;#61; ArchiveFactory.Open&amp;#40;tar&amp;#41;&amp;#41; &amp;#123;&lt;br /&gt;&amp;#9;                &amp;#9;&amp;#9;foreach &amp;#40;var entry in tarArchive.Entries.Where&amp;#40;entry &amp;#61;&amp;#62; &amp;#33;entry.IsDirectory&amp;#41;&amp;#41; &amp;#123;&lt;br /&gt;&amp;#9;&amp;#9;                        entry.WriteToDirectory&amp;#40;&lt;br /&gt;&amp;#9;&amp;#9;                        &amp;#9;directory,&lt;br /&gt;&amp;#9;&amp;#9;                            ExtractOptions.ExtractFullPath &amp;#124; ExtractOptions.Overwrite&amp;#41;&amp;#59;&lt;br /&gt;&amp;#9;&amp;#9;                    &amp;#125;&lt;br /&gt;&amp;#9;                &amp;#9;&amp;#125;&lt;br /&gt;&amp;#9;                &amp;#125;&lt;br /&gt;&amp;#9;            &amp;#125;&lt;br /&gt;&amp;#9;        &amp;#125;&lt;br /&gt;&amp;#9;&amp;#125;&lt;br /&gt;&lt;br /&gt;-Svein Arne&lt;br /&gt;</description><author>ackenpacken</author><pubDate>Mon, 01 Apr 2013 10:58:34 GMT</pubDate><guid isPermaLink="false">Created Issue: How can I make SharpCompress preserve file execution settings? [34] 20130401105834A</guid></item><item><title>Commented Issue: WinRT support [3]</title><link>http://sharpcompress.codeplex.com/workitem/3</link><description>Have you made any progress on WinRT support&amp;#63;  I forked your project and changed your &amp;#34;NotImplementedExceptions&amp;#40;&amp;#41;&amp;#34; to return default&amp;#40;DateTimeOffset&amp;#41; instead, but still get an exception saying that it is not implemented.  I am testing from a Metro Javascript project.&lt;br /&gt;&lt;br /&gt;I probably need to add the projects to my JS solution &amp;#40;I had just been adding the compiled winmd file&amp;#41; and try to step into the C&amp;#35; code, although I&amp;#39;m not sure if you can step into C&amp;#35; from JS.&lt;br /&gt;&lt;br /&gt;My next avenue is to strip out all references to System.IO as that seems to be a problem with compiling in Release mode &amp;#40;if stepping into the C&amp;#35; and finding the problem doesn&amp;#39;t work&amp;#41;.  But I was wondering if you had done any more testing yourself&amp;#63;  I have tested with ZIP and RAR files, and get the same problem.&lt;br /&gt;Comments: Any plans for WinRT support&amp;#63; The built-in ZipArchive does not support reading password protected files.</description><author>igorkulman</author><pubDate>Tue, 19 Mar 2013 13:24:53 GMT</pubDate><guid isPermaLink="false">Commented Issue: WinRT support [3] 20130319012453P</guid></item><item><title>Commented Issue: Recognize Anti-Items in 7zip archives [33]</title><link>http://sharpcompress.codeplex.com/workitem/33</link><description>Right now, there does not seem to be a way to recognize anti-items in 7zip files.&lt;br /&gt;&lt;br /&gt;Please add a field to IArchiveEntry that indicates whether an item is an anti-item.&lt;br /&gt;Comments: Thank you for the quick reply&amp;#33;&amp;#10;&amp;#10;Personally, I do not need them right now, but I think others would be interested. I think adding a bool IsAnti to ArchiveEntry would solve this in a flexible manner &amp;#40;in a backwards-compatible way, even&amp;#41;.</description><author>mafutrct</author><pubDate>Sun, 17 Mar 2013 20:36:09 GMT</pubDate><guid isPermaLink="false">Commented Issue: Recognize Anti-Items in 7zip archives [33] 20130317083609P</guid></item><item><title>Edited Issue: Endless loop in SeekableZipHeaderFactory on broken archives [31]</title><link>http://sharpcompress.codeplex.com/workitem/31</link><description>When reading from a corrupt zip file, SeekableZipHeaderFactory, ReadSeekableHeader performs an endless do&amp;#47;while loop &amp;#40;applicable to 0.8.2&amp;#41;&amp;#58;&lt;br /&gt;&lt;br /&gt;&amp;#96;&amp;#96;&amp;#96;&lt;br /&gt;do&lt;br /&gt;            &amp;#123;&lt;br /&gt;                if &amp;#40;&amp;#40;stream.Length &amp;#43; offset&amp;#41; - 4 &amp;#60; 0&amp;#41;&lt;br /&gt;                &amp;#123;&lt;br /&gt;                    throw new ArchiveException&amp;#40;&amp;#34;Failed to locate the Zip Header&amp;#34;&amp;#41;&amp;#59;&lt;br /&gt;                &amp;#125;&lt;br /&gt;                stream.Seek&amp;#40;offset - 4, SeekOrigin.End&amp;#41;&amp;#59;&lt;br /&gt;                signature &amp;#61; reader.ReadUInt32&amp;#40;&amp;#41;&amp;#59;&lt;br /&gt;                offset--&amp;#59;&lt;br /&gt;                &amp;#47;&amp;#47;i&amp;#43;&amp;#43;&amp;#59;&lt;br /&gt;                &amp;#47;&amp;#47;if &amp;#40;i &amp;#62; 1000&amp;#41; throw new ArchiveException&amp;#40;&amp;#34;Archive damaged. Endless Loop in ReadSeekableHeader detected.&amp;#34;&amp;#41;&amp;#59;&lt;br /&gt;                &lt;br /&gt;            &amp;#125; while &amp;#40;signature &amp;#33;&amp;#61; DIRECTORY_END_HEADER_BYTES&amp;#41;&amp;#59;&lt;br /&gt;&amp;#96;&amp;#96;&amp;#96;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;From what I observed, the usual number of iterations here is 19. But when the corrupted file is processed, it never ends. I did the ugly quick-fix, setting the max iterations to 1000 and then throwing an exception, otherwise the whole application hangs up forever.  If it&amp;#39;s possible to fix the problem in any other way, it would be much appreciated.&lt;br /&gt;&lt;br /&gt;Since the zip file is too big for Codeplex. I uploaded it here&amp;#58;  http&amp;#58;&amp;#47;&amp;#47;www.sendspace.com&amp;#47;file&amp;#47;d6vwj6&lt;br /&gt;</description><author>adamhathcock</author><pubDate>Sun, 17 Mar 2013 18:03:36 GMT</pubDate><guid isPermaLink="false">Edited Issue: Endless loop in SeekableZipHeaderFactory on broken archives [31] 20130317060336P</guid></item><item><title>Commented Issue: Recognize Anti-Items in 7zip archives [33]</title><link>http://sharpcompress.codeplex.com/workitem/33</link><description>Right now, there does not seem to be a way to recognize anti-items in 7zip files.&lt;br /&gt;&lt;br /&gt;Please add a field to IArchiveEntry that indicates whether an item is an anti-item.&lt;br /&gt;Comments: Would it be better to just hide the entries or do you want to have them&amp;#63;</description><author>adamhathcock</author><pubDate>Sun, 17 Mar 2013 18:02:09 GMT</pubDate><guid isPermaLink="false">Commented Issue: Recognize Anti-Items in 7zip archives [33] 20130317060209P</guid></item></channel></rss>