From dbbc7c81321e7e3e20f5d610a005f8dfbadd1e65 Mon Sep 17 00:00:00 2001 From: blokyk Date: Wed, 24 Apr 2024 03:13:13 +0200 Subject: [PATCH 01/65] fix(tar): prevent infinite loop when reading corrupted archive --- src/SharpCompress/Archives/Tar/TarArchive.cs | 2 ++ tests/SharpCompress.Test/Tar/TarReaderTests.cs | 15 +++++++++++++++ tests/TestArchives/Archives/TarCorrupted.tar | Bin 0 -> 962560 bytes 3 files changed, 17 insertions(+) create mode 100644 tests/TestArchives/Archives/TarCorrupted.tar diff --git a/src/SharpCompress/Archives/Tar/TarArchive.cs b/src/SharpCompress/Archives/Tar/TarArchive.cs index 3b9a45ed..de37df89 100644 --- a/src/SharpCompress/Archives/Tar/TarArchive.cs +++ b/src/SharpCompress/Archives/Tar/TarArchive.cs @@ -189,6 +189,8 @@ public class TarArchive : AbstractWritableArchive CompressionType.None ); } + } else { + throw new IncompleteArchiveException("Failed to read TAR header"); } } } diff --git a/tests/SharpCompress.Test/Tar/TarReaderTests.cs b/tests/SharpCompress.Test/Tar/TarReaderTests.cs index bb10db98..3b6a6a88 100644 --- a/tests/SharpCompress.Test/Tar/TarReaderTests.cs +++ b/tests/SharpCompress.Test/Tar/TarReaderTests.cs @@ -183,6 +183,21 @@ public class TarReaderTests : ReaderTests Assert.Throws(() => reader.MoveToNextEntry()); } + [Fact] + public void Tar_Corrupted() + { + var archiveFullPath = Path.Combine(TEST_ARCHIVES_PATH, "TarCorrupted.tar"); + using Stream stream = File.OpenRead(archiveFullPath); + using var reader = ReaderFactory.Open(stream); + var memoryStream = new MemoryStream(); + + Assert.True(reader.MoveToNextEntry()); + Assert.True(reader.MoveToNextEntry()); + reader.WriteEntryTo(memoryStream); + stream.Close(); + Assert.Throws(() => reader.MoveToNextEntry()); + } + #if !NETFRAMEWORK [Fact] public void Tar_GZip_With_Symlink_Entries() diff --git a/tests/TestArchives/Archives/TarCorrupted.tar b/tests/TestArchives/Archives/TarCorrupted.tar new file mode 100644 index 0000000000000000000000000000000000000000..a21c4fe53e7631fdf5fe59d82b6d550219c7072f GIT binary patch literal 962560 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æN~8dSl6Xiy~sqCpi6 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

N?c)Yuqp{@2Xd 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� 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 Date: Wed, 24 Apr 2024 09:17:42 +0100 Subject: [PATCH 02/65] fmt --- src/SharpCompress/Archives/Tar/TarArchive.cs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/SharpCompress/Archives/Tar/TarArchive.cs b/src/SharpCompress/Archives/Tar/TarArchive.cs index de37df89..fdf8cd42 100644 --- a/src/SharpCompress/Archives/Tar/TarArchive.cs +++ b/src/SharpCompress/Archives/Tar/TarArchive.cs @@ -189,7 +189,9 @@ public class TarArchive : AbstractWritableArchive CompressionType.None ); } - } else { + } + else + { throw new IncompleteArchiveException("Failed to read TAR header"); } } From 49ce17b7598466e7bb56200461dfbfe91c175f52 Mon Sep 17 00:00:00 2001 From: Adam Hathcock Date: Thu, 25 Apr 2024 08:35:52 +0100 Subject: [PATCH 03/65] update zstdsharp.port and net8 is only trimmable --- Directory.Packages.props | 5 +- src/SharpCompress/SharpCompress.csproj | 11 ++- src/SharpCompress/packages.lock.json | 82 ++++++++++----------- tests/SharpCompress.Test/packages.lock.json | 34 +++++---- 4 files changed, 68 insertions(+), 64 deletions(-) diff --git a/Directory.Packages.props b/Directory.Packages.props index 6bc10b2c..59eb5567 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -3,6 +3,7 @@ + @@ -12,6 +13,6 @@ - + - + \ No newline at end of file diff --git a/src/SharpCompress/SharpCompress.csproj b/src/SharpCompress/SharpCompress.csproj index a21d1726..39b19e0e 100644 --- a/src/SharpCompress/SharpCompress.csproj +++ b/src/SharpCompress/SharpCompress.csproj @@ -21,24 +21,29 @@ true true snupkg - true latest true README.md - + + true + + - + + + + diff --git a/src/SharpCompress/packages.lock.json b/src/SharpCompress/packages.lock.json index e6e0a13d..d2ca0eec 100644 --- a/src/SharpCompress/packages.lock.json +++ b/src/SharpCompress/packages.lock.json @@ -2,6 +2,15 @@ "version": 2, "dependencies": { ".NETFramework,Version=v4.6.2": { + "Microsoft.Bcl.AsyncInterfaces": { + "type": "Direct", + "requested": "[8.0.0, )", + "resolved": "8.0.0", + "contentHash": "3WA9q9yVqJp222P3x1wYIGDAkpjAku0TMUaaQV22g6L67AI0LdOIrVS7Ht2vJfLHGSPVuqN94vIr15qn+HEkHw==", + "dependencies": { + "System.Threading.Tasks.Extensions": "4.5.4" + } + }, "Microsoft.NETFramework.ReferenceAssemblies": { "type": "Direct", "requested": "[1.0.3, )", @@ -44,22 +53,14 @@ }, "ZstdSharp.Port": { "type": "Direct", - "requested": "[0.7.6, )", - "resolved": "0.7.6", - "contentHash": "opRgjMeBTNpZQyJaZOWCHGGpQ+d9T2Eg3q8JPeBj65srJBf1F3JidO2h7sYkK2s0Mcga+skrqypQY39CF8kcfA==", + "requested": "[0.8.0, )", + "resolved": "0.8.0", + "contentHash": "Z62eNBIu8E8YtbqlMy57tK3dV1+m2b9NhPeaYovB5exmLKvrGCqOhJTzrEUH5VyUWU6vwX3c1XHJGhW5HVs8dA==", "dependencies": { "Microsoft.Bcl.AsyncInterfaces": "5.0.0", "System.Memory": "4.5.5" } }, - "Microsoft.Bcl.AsyncInterfaces": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "W8DPQjkMScOMTtJbPwmPyj9c3zYSFGawDW3jwlBOOsnY+EzZFLgNQ/UMkK35JmkNOVPdCyPr2Tw7Vv9N+KA3ZQ==", - "dependencies": { - "System.Threading.Tasks.Extensions": "4.5.4" - } - }, "Microsoft.Build.Tasks.Git": { "type": "Transitive", "resolved": "8.0.0", @@ -100,6 +101,15 @@ } }, ".NETStandard,Version=v2.0": { + "Microsoft.Bcl.AsyncInterfaces": { + "type": "Direct", + "requested": "[8.0.0, )", + "resolved": "8.0.0", + "contentHash": "3WA9q9yVqJp222P3x1wYIGDAkpjAku0TMUaaQV22g6L67AI0LdOIrVS7Ht2vJfLHGSPVuqN94vIr15qn+HEkHw==", + "dependencies": { + "System.Threading.Tasks.Extensions": "4.5.4" + } + }, "Microsoft.SourceLink.GitHub": { "type": "Direct", "requested": "[8.0.0, )", @@ -142,22 +152,14 @@ }, "ZstdSharp.Port": { "type": "Direct", - "requested": "[0.7.6, )", - "resolved": "0.7.6", - "contentHash": "opRgjMeBTNpZQyJaZOWCHGGpQ+d9T2Eg3q8JPeBj65srJBf1F3JidO2h7sYkK2s0Mcga+skrqypQY39CF8kcfA==", + "requested": "[0.8.0, )", + "resolved": "0.8.0", + "contentHash": "Z62eNBIu8E8YtbqlMy57tK3dV1+m2b9NhPeaYovB5exmLKvrGCqOhJTzrEUH5VyUWU6vwX3c1XHJGhW5HVs8dA==", "dependencies": { "Microsoft.Bcl.AsyncInterfaces": "5.0.0", "System.Memory": "4.5.5" } }, - "Microsoft.Bcl.AsyncInterfaces": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "W8DPQjkMScOMTtJbPwmPyj9c3zYSFGawDW3jwlBOOsnY+EzZFLgNQ/UMkK35JmkNOVPdCyPr2Tw7Vv9N+KA3ZQ==", - "dependencies": { - "System.Threading.Tasks.Extensions": "4.5.4" - } - }, "Microsoft.Build.Tasks.Git": { "type": "Transitive", "resolved": "8.0.0", @@ -198,6 +200,12 @@ } }, ".NETStandard,Version=v2.1": { + "Microsoft.Bcl.AsyncInterfaces": { + "type": "Direct", + "requested": "[8.0.0, )", + "resolved": "8.0.0", + "contentHash": "3WA9q9yVqJp222P3x1wYIGDAkpjAku0TMUaaQV22g6L67AI0LdOIrVS7Ht2vJfLHGSPVuqN94vIr15qn+HEkHw==" + }, "Microsoft.SourceLink.GitHub": { "type": "Direct", "requested": "[8.0.0, )", @@ -220,9 +228,9 @@ }, "ZstdSharp.Port": { "type": "Direct", - "requested": "[0.7.6, )", - "resolved": "0.7.6", - "contentHash": "opRgjMeBTNpZQyJaZOWCHGGpQ+d9T2Eg3q8JPeBj65srJBf1F3JidO2h7sYkK2s0Mcga+skrqypQY39CF8kcfA==", + "requested": "[0.8.0, )", + "resolved": "0.8.0", + "contentHash": "Z62eNBIu8E8YtbqlMy57tK3dV1+m2b9NhPeaYovB5exmLKvrGCqOhJTzrEUH5VyUWU6vwX3c1XHJGhW5HVs8dA==", "dependencies": { "System.Runtime.CompilerServices.Unsafe": "6.0.0" } @@ -265,18 +273,6 @@ } }, "net6.0": { - "Microsoft.NET.ILLink.Analyzers": { - "type": "Direct", - "requested": "[7.0.100-1.23211.1, )", - "resolved": "7.0.100-1.23211.1", - "contentHash": "0GvbEgDGcUQA9KuWcQU1WwYHXt1tBzNr1Nls/M57rM7NA/AndFwCaCEoJpJkmxRY7xLlPDBnmGp8h5+FNqUngg==" - }, - "Microsoft.NET.ILLink.Tasks": { - "type": "Direct", - "requested": "[7.0.100-1.23211.1, )", - "resolved": "7.0.100-1.23211.1", - "contentHash": "tvG8XZYLjT0o3WicCyKBZysVWo1jC9HdCFmNRmddx3WbAz0UCsd0qKZqpiEo99VLA8Re+FzWK51OcRldQPbt2Q==" - }, "Microsoft.SourceLink.GitHub": { "type": "Direct", "requested": "[8.0.0, )", @@ -289,9 +285,9 @@ }, "ZstdSharp.Port": { "type": "Direct", - "requested": "[0.7.6, )", - "resolved": "0.7.6", - "contentHash": "opRgjMeBTNpZQyJaZOWCHGGpQ+d9T2Eg3q8JPeBj65srJBf1F3JidO2h7sYkK2s0Mcga+skrqypQY39CF8kcfA==" + "requested": "[0.8.0, )", + "resolved": "0.8.0", + "contentHash": "Z62eNBIu8E8YtbqlMy57tK3dV1+m2b9NhPeaYovB5exmLKvrGCqOhJTzrEUH5VyUWU6vwX3c1XHJGhW5HVs8dA==" }, "Microsoft.Build.Tasks.Git": { "type": "Transitive", @@ -323,9 +319,9 @@ }, "ZstdSharp.Port": { "type": "Direct", - "requested": "[0.7.6, )", - "resolved": "0.7.6", - "contentHash": "opRgjMeBTNpZQyJaZOWCHGGpQ+d9T2Eg3q8JPeBj65srJBf1F3JidO2h7sYkK2s0Mcga+skrqypQY39CF8kcfA==" + "requested": "[0.8.0, )", + "resolved": "0.8.0", + "contentHash": "Z62eNBIu8E8YtbqlMy57tK3dV1+m2b9NhPeaYovB5exmLKvrGCqOhJTzrEUH5VyUWU6vwX3c1XHJGhW5HVs8dA==" }, "Microsoft.Build.Tasks.Git": { "type": "Transitive", diff --git a/tests/SharpCompress.Test/packages.lock.json b/tests/SharpCompress.Test/packages.lock.json index a7d04fce..4ef26a3c 100644 --- a/tests/SharpCompress.Test/packages.lock.json +++ b/tests/SharpCompress.Test/packages.lock.json @@ -59,14 +59,6 @@ "xunit.extensibility.execution": "2.4.0" } }, - "Microsoft.Bcl.AsyncInterfaces": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "W8DPQjkMScOMTtJbPwmPyj9c3zYSFGawDW3jwlBOOsnY+EzZFLgNQ/UMkK35JmkNOVPdCyPr2Tw7Vv9N+KA3ZQ==", - "dependencies": { - "System.Threading.Tasks.Extensions": "4.5.4" - } - }, "Microsoft.Build.Tasks.Git": { "type": "Transitive", "resolved": "8.0.0", @@ -179,10 +171,20 @@ "sharpcompress": { "type": "Project", "dependencies": { + "Microsoft.Bcl.AsyncInterfaces": "[8.0.0, )", "Microsoft.SourceLink.GitHub": "[8.0.0, )", "System.Memory": "[4.5.5, )", "System.Text.Encoding.CodePages": "[8.0.0, )", - "ZstdSharp.Port": "[0.7.6, )" + "ZstdSharp.Port": "[0.8.0, )" + } + }, + "Microsoft.Bcl.AsyncInterfaces": { + "type": "CentralTransitive", + "requested": "[8.0.0, )", + "resolved": "8.0.0", + "contentHash": "3WA9q9yVqJp222P3x1wYIGDAkpjAku0TMUaaQV22g6L67AI0LdOIrVS7Ht2vJfLHGSPVuqN94vIr15qn+HEkHw==", + "dependencies": { + "System.Threading.Tasks.Extensions": "4.5.4" } }, "Microsoft.SourceLink.GitHub": { @@ -218,9 +220,9 @@ }, "ZstdSharp.Port": { "type": "CentralTransitive", - "requested": "[0.7.6, )", - "resolved": "0.7.6", - "contentHash": "opRgjMeBTNpZQyJaZOWCHGGpQ+d9T2Eg3q8JPeBj65srJBf1F3JidO2h7sYkK2s0Mcga+skrqypQY39CF8kcfA==", + "requested": "[0.8.0, )", + "resolved": "0.8.0", + "contentHash": "Z62eNBIu8E8YtbqlMy57tK3dV1+m2b9NhPeaYovB5exmLKvrGCqOhJTzrEUH5VyUWU6vwX3c1XHJGhW5HVs8dA==", "dependencies": { "Microsoft.Bcl.AsyncInterfaces": "5.0.0", "System.Memory": "4.5.5" @@ -384,7 +386,7 @@ "type": "Project", "dependencies": { "Microsoft.SourceLink.GitHub": "[8.0.0, )", - "ZstdSharp.Port": "[0.7.6, )" + "ZstdSharp.Port": "[0.8.0, )" } }, "Microsoft.SourceLink.GitHub": { @@ -399,9 +401,9 @@ }, "ZstdSharp.Port": { "type": "CentralTransitive", - "requested": "[0.7.6, )", - "resolved": "0.7.6", - "contentHash": "opRgjMeBTNpZQyJaZOWCHGGpQ+d9T2Eg3q8JPeBj65srJBf1F3JidO2h7sYkK2s0Mcga+skrqypQY39CF8kcfA==" + "requested": "[0.8.0, )", + "resolved": "0.8.0", + "contentHash": "Z62eNBIu8E8YtbqlMy57tK3dV1+m2b9NhPeaYovB5exmLKvrGCqOhJTzrEUH5VyUWU6vwX3c1XHJGhW5HVs8dA==" } } } From 1393629bc5db0b806c7033a062670a5bb7a4ae80 Mon Sep 17 00:00:00 2001 From: Adam Hathcock Date: Sat, 27 Apr 2024 06:15:29 +0100 Subject: [PATCH 04/65] Mark sourcelink as PrivateAssets="All" --- Directory.Packages.props | 4 ++-- src/SharpCompress/packages.lock.json | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Directory.Packages.props b/Directory.Packages.props index 59eb5567..af422ec8 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -5,7 +5,7 @@ - + @@ -15,4 +15,4 @@ - \ No newline at end of file + diff --git a/src/SharpCompress/packages.lock.json b/src/SharpCompress/packages.lock.json index d2ca0eec..b06d9c98 100644 --- a/src/SharpCompress/packages.lock.json +++ b/src/SharpCompress/packages.lock.json @@ -303,9 +303,9 @@ "net8.0": { "Microsoft.NET.ILLink.Tasks": { "type": "Direct", - "requested": "[8.0.2, )", - "resolved": "8.0.2", - "contentHash": "hKTrehpfVzOhAz0mreaTAZgbz0DrMEbWq4n3hAo8Ks6WdxdqQhNPvzOqn9VygKuWf1bmxPdraqzTaXriO/sn0A==" + "requested": "[8.0.4, )", + "resolved": "8.0.4", + "contentHash": "PZb5nfQ+U19nhnmnR9T1jw+LTmozhuG2eeuzuW5A7DqxD/UXW2ucjmNJqnqOuh8rdPzM3MQXoF8AfFCedJdCUw==" }, "Microsoft.SourceLink.GitHub": { "type": "Direct", From c635f008990cce07ec86514a69470b97bd42f295 Mon Sep 17 00:00:00 2001 From: Adam Hathcock Date: Sat, 27 Apr 2024 09:12:17 +0100 Subject: [PATCH 05/65] mark as 0.37.1 --- src/SharpCompress/SharpCompress.csproj | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/SharpCompress/SharpCompress.csproj b/src/SharpCompress/SharpCompress.csproj index 39b19e0e..fd6ab0a6 100644 --- a/src/SharpCompress/SharpCompress.csproj +++ b/src/SharpCompress/SharpCompress.csproj @@ -2,9 +2,9 @@ SharpCompress - Pure C# Decompression/Compression en-US - 0.37.0 - 0.37.0 - 0.37.0 + 0.37.1 + 0.37.1 + 0.37.1 Adam Hathcock net462;netstandard2.0;netstandard2.1;net6.0;net8.0 SharpCompress From 446852c7d0796e7ce375ebf136a05bbda47ee237 Mon Sep 17 00:00:00 2001 From: Adam Hathcock Date: Sat, 27 Apr 2024 09:34:05 +0100 Subject: [PATCH 06/65] really fix source link and central usage --- Directory.Packages.props | 2 +- build/build.csproj | 2 +- build/packages.lock.json | 4 +- src/SharpCompress/SharpCompress.csproj | 4 +- tests/SharpCompress.Test/packages.lock.json | 42 --------------------- 5 files changed, 7 insertions(+), 47 deletions(-) diff --git a/Directory.Packages.props b/Directory.Packages.props index af422ec8..e128f52f 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -5,7 +5,7 @@ - + diff --git a/build/build.csproj b/build/build.csproj index 8e837d3a..e0dffc7f 100644 --- a/build/build.csproj +++ b/build/build.csproj @@ -2,7 +2,7 @@ Exe - net7.0 + net8.0 diff --git a/build/packages.lock.json b/build/packages.lock.json index 52565140..8a8fa2c0 100644 --- a/build/packages.lock.json +++ b/build/packages.lock.json @@ -1,7 +1,7 @@ { - "version": 1, + "version": 2, "dependencies": { - "net7.0": { + "net8.0": { "Bullseye": { "type": "Direct", "requested": "[5.0.0, )", diff --git a/src/SharpCompress/SharpCompress.csproj b/src/SharpCompress/SharpCompress.csproj index fd6ab0a6..ceb80a08 100644 --- a/src/SharpCompress/SharpCompress.csproj +++ b/src/SharpCompress/SharpCompress.csproj @@ -30,7 +30,9 @@ true - + + all + diff --git a/tests/SharpCompress.Test/packages.lock.json b/tests/SharpCompress.Test/packages.lock.json index 4ef26a3c..baeef64f 100644 --- a/tests/SharpCompress.Test/packages.lock.json +++ b/tests/SharpCompress.Test/packages.lock.json @@ -59,11 +59,6 @@ "xunit.extensibility.execution": "2.4.0" } }, - "Microsoft.Build.Tasks.Git": { - "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "bZKfSIKJRXLTuSzLudMFte/8CempWjVamNUR5eHJizsy+iuOuO/k2gnh7W0dHJmYY0tBf+gUErfluCv5mySAOQ==" - }, "Microsoft.CodeCoverage": { "type": "Transitive", "resolved": "17.9.0", @@ -74,11 +69,6 @@ "resolved": "1.0.3", "contentHash": "IzAV30z22ESCeQfxP29oVf4qEo8fBGXLXSU6oacv/9Iqe6PzgHDKCaWfwMBak7bSJQM0F5boXWoZS+kChztRIQ==" }, - "Microsoft.SourceLink.Common": { - "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "dk9JPxTCIevS75HyEQ0E4OVAFhB2N+V9ShCXf8Q6FkUQZDkgLI12y679Nym1YqsiSysuQskT7Z+6nUf3yab6Vw==" - }, "Microsoft.TestPlatform.ObjectModel": { "type": "Transitive", "resolved": "17.9.0", @@ -172,7 +162,6 @@ "type": "Project", "dependencies": { "Microsoft.Bcl.AsyncInterfaces": "[8.0.0, )", - "Microsoft.SourceLink.GitHub": "[8.0.0, )", "System.Memory": "[4.5.5, )", "System.Text.Encoding.CodePages": "[8.0.0, )", "ZstdSharp.Port": "[0.8.0, )" @@ -187,16 +176,6 @@ "System.Threading.Tasks.Extensions": "4.5.4" } }, - "Microsoft.SourceLink.GitHub": { - "type": "CentralTransitive", - "requested": "[8.0.0, )", - "resolved": "8.0.0", - "contentHash": "G5q7OqtwIyGTkeIOAc3u2ZuV/kicQaec5EaRnc0pIeSnh9LUjj+PYQrJYBURvDt7twGl2PKA7nSN0kz1Zw5bnQ==", - "dependencies": { - "Microsoft.Build.Tasks.Git": "8.0.0", - "Microsoft.SourceLink.Common": "8.0.0" - } - }, "System.Memory": { "type": "CentralTransitive", "requested": "[4.5.5, )", @@ -282,21 +261,11 @@ "xunit.extensibility.execution": "2.4.0" } }, - "Microsoft.Build.Tasks.Git": { - "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "bZKfSIKJRXLTuSzLudMFte/8CempWjVamNUR5eHJizsy+iuOuO/k2gnh7W0dHJmYY0tBf+gUErfluCv5mySAOQ==" - }, "Microsoft.CodeCoverage": { "type": "Transitive", "resolved": "17.9.0", "contentHash": "RGD37ZSrratfScYXm7M0HjvxMxZyWZL4jm+XgMZbkIY1UPgjUpbNA/t+WTGj/rC/0Hm9A3IrH3ywbKZkOCnoZA==" }, - "Microsoft.SourceLink.Common": { - "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "dk9JPxTCIevS75HyEQ0E4OVAFhB2N+V9ShCXf8Q6FkUQZDkgLI12y679Nym1YqsiSysuQskT7Z+6nUf3yab6Vw==" - }, "Microsoft.TestPlatform.ObjectModel": { "type": "Transitive", "resolved": "17.9.0", @@ -385,20 +354,9 @@ "sharpcompress": { "type": "Project", "dependencies": { - "Microsoft.SourceLink.GitHub": "[8.0.0, )", "ZstdSharp.Port": "[0.8.0, )" } }, - "Microsoft.SourceLink.GitHub": { - "type": "CentralTransitive", - "requested": "[8.0.0, )", - "resolved": "8.0.0", - "contentHash": "G5q7OqtwIyGTkeIOAc3u2ZuV/kicQaec5EaRnc0pIeSnh9LUjj+PYQrJYBURvDt7twGl2PKA7nSN0kz1Zw5bnQ==", - "dependencies": { - "Microsoft.Build.Tasks.Git": "8.0.0", - "Microsoft.SourceLink.Common": "8.0.0" - } - }, "ZstdSharp.Port": { "type": "CentralTransitive", "requested": "[0.8.0, )", From 6fc4b045fde70c42df738d203c453082354e9558 Mon Sep 17 00:00:00 2001 From: Adam Hathcock Date: Sat, 27 Apr 2024 09:34:32 +0100 Subject: [PATCH 07/65] mark for 0.37.2 --- src/SharpCompress/SharpCompress.csproj | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/SharpCompress/SharpCompress.csproj b/src/SharpCompress/SharpCompress.csproj index ceb80a08..cbceba12 100644 --- a/src/SharpCompress/SharpCompress.csproj +++ b/src/SharpCompress/SharpCompress.csproj @@ -2,9 +2,9 @@ SharpCompress - Pure C# Decompression/Compression en-US - 0.37.1 - 0.37.1 - 0.37.1 + 0.37.2 + 0.37.2 + 0.37.2 Adam Hathcock net462;netstandard2.0;netstandard2.1;net6.0;net8.0 SharpCompress From a9601ef8482ca9c9241adea67af16d503bb8202f Mon Sep 17 00:00:00 2001 From: Daniel Nash Date: Mon, 3 Jun 2024 12:41:11 -0400 Subject: [PATCH 08/65] Tar: Add processing for the LongLink header type Fixes #846 --- .../Common/Tar/Headers/TarHeader.cs | 72 ++++++++++++------- 1 file changed, 47 insertions(+), 25 deletions(-) diff --git a/src/SharpCompress/Common/Tar/Headers/TarHeader.cs b/src/SharpCompress/Common/Tar/Headers/TarHeader.cs index 68a72e8a..e9aa343c 100644 --- a/src/SharpCompress/Common/Tar/Headers/TarHeader.cs +++ b/src/SharpCompress/Common/Tar/Headers/TarHeader.cs @@ -101,57 +101,79 @@ internal sealed class TarHeader internal bool Read(BinaryReader reader) { - var buffer = ReadBlock(reader); - if (buffer.Length == 0) - { - return false; - } + string? longName = null; + string? longLinkName = null; + var hasLongValue = true; + byte[] buffer; + EntryType entryType; - // for symlinks, additionally read the linkname - if (ReadEntryType(buffer) == EntryType.SymLink) + do { - LinkName = ArchiveEncoding.Decode(buffer, 157, 100).TrimNulls(); - } - - if (ReadEntryType(buffer) == EntryType.LongName) - { - Name = ReadLongName(reader, buffer); buffer = ReadBlock(reader); - } - else - { - Name = ArchiveEncoding.Decode(buffer, 0, 100).TrimNulls(); - } - EntryType = ReadEntryType(buffer); + if (buffer.Length == 0) + { + return false; + } + + entryType = ReadEntryType(buffer); + + // LongName and LongLink headers can follow each other and need + // to apply to the header that follows them. + if (entryType == EntryType.LongName) + { + longName = ReadLongName(reader, buffer); + continue; + } + else if (entryType == EntryType.LongLink) + { + longLinkName = ReadLongName(reader, buffer); + continue; + } + + hasLongValue = false; + } while (hasLongValue); + + Name = longName ?? ArchiveEncoding.Decode(buffer, 0, 100).TrimNulls(); + EntryType = entryType; Size = ReadSize(buffer); + // for symlinks, additionally read the linkname + if (entryType == EntryType.SymLink || entryType == EntryType.HardLink) + { + LinkName = longLinkName ?? ArchiveEncoding.Decode(buffer, 157, 100).TrimNulls(); + } + Mode = ReadAsciiInt64Base8(buffer, 100, 7); - if (EntryType == EntryType.Directory) + + if (entryType == EntryType.Directory) { Mode |= 0b1_000_000_000; } UserId = ReadAsciiInt64Base8oldGnu(buffer, 108, 7); GroupId = ReadAsciiInt64Base8oldGnu(buffer, 116, 7); - var unixTimeStamp = ReadAsciiInt64Base8(buffer, 136, 11); - LastModifiedTime = EPOCH.AddSeconds(unixTimeStamp).ToLocalTime(); + var unixTimeStamp = ReadAsciiInt64Base8(buffer, 136, 11); + + LastModifiedTime = EPOCH.AddSeconds(unixTimeStamp).ToLocalTime(); Magic = ArchiveEncoding.Decode(buffer, 257, 6).TrimNulls(); if (!string.IsNullOrEmpty(Magic) && "ustar".Equals(Magic)) { - var namePrefix = ArchiveEncoding.Decode(buffer, 345, 157); - namePrefix = namePrefix.TrimNulls(); + var namePrefix = ArchiveEncoding.Decode(buffer, 345, 157).TrimNulls(); + if (!string.IsNullOrEmpty(namePrefix)) { Name = namePrefix + "/" + Name; } } - if (EntryType != EntryType.LongName && Name.Length == 0) + + if (entryType != EntryType.LongName && Name.Length == 0) { return false; } + return true; } From 525b309d37d920c606eeae279a9ed3101ef19904 Mon Sep 17 00:00:00 2001 From: Morilli <35152647+Morilli@users.noreply.github.com> Date: Tue, 4 Jun 2024 10:33:32 +0200 Subject: [PATCH 09/65] Add failing test --- tests/SharpCompress.Test/GZip/GZipArchiveTests.cs | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/tests/SharpCompress.Test/GZip/GZipArchiveTests.cs b/tests/SharpCompress.Test/GZip/GZipArchiveTests.cs index 80a9a9a1..a8e215f7 100644 --- a/tests/SharpCompress.Test/GZip/GZipArchiveTests.cs +++ b/tests/SharpCompress.Test/GZip/GZipArchiveTests.cs @@ -4,6 +4,7 @@ using System.Linq; using SharpCompress.Archives; using SharpCompress.Archives.GZip; using SharpCompress.Archives.Tar; +using SharpCompress.Common; using Xunit; namespace SharpCompress.Test.GZip; @@ -106,7 +107,7 @@ public class GZipArchiveTests : ArchiveTests } [Fact] - public void TestGzCrcWithMostSignificaltBitNotNegative() + public void TestGzCrcWithMostSignificantBitNotNegative() { using var stream = File.OpenRead(Path.Combine(TEST_ARCHIVES_PATH, "Tar.tar.gz")); using var archive = GZipArchive.Open(stream); @@ -116,4 +117,12 @@ public class GZipArchiveTests : ArchiveTests Assert.InRange(entry.Crc, 0L, 0xFFFFFFFFL); } } + + [Fact] + public void TestGzArchiveTypeGzip() + { + using var stream = File.OpenRead(Path.Combine(TEST_ARCHIVES_PATH, "Tar.tar.gz")); + using var archive = GZipArchive.Open(stream); + Assert.Equal(archive.Type, ArchiveType.GZip); + } } From 49f5ceaa9b548040779caa21e6cbb485dd1e2747 Mon Sep 17 00:00:00 2001 From: Morilli <35152647+Morilli@users.noreply.github.com> Date: Tue, 4 Jun 2024 10:34:06 +0200 Subject: [PATCH 10/65] Fix GZipArchive getting Type set to ArchiveType.Tar --- src/SharpCompress/Archives/GZip/GZipArchive.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/SharpCompress/Archives/GZip/GZipArchive.cs b/src/SharpCompress/Archives/GZip/GZipArchive.cs index cec2f640..ea46e8d0 100644 --- a/src/SharpCompress/Archives/GZip/GZipArchive.cs +++ b/src/SharpCompress/Archives/GZip/GZipArchive.cs @@ -101,7 +101,7 @@ public class GZipArchive : AbstractWritableArchive /// /// private GZipArchive(SourceStream sourceStream) - : base(ArchiveType.Tar, sourceStream) { } + : base(ArchiveType.GZip, sourceStream) { } protected override IEnumerable LoadVolumes(SourceStream sourceStream) { From 5c1149aa8b470826c70d154c0285d8d79e1b0e8e Mon Sep 17 00:00:00 2001 From: Lars Vahlenberg Date: Sat, 8 Jun 2024 17:22:20 +0200 Subject: [PATCH 11/65] #844 --- src/SharpCompress/Common/Rar/RarVolume.cs | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/SharpCompress/Common/Rar/RarVolume.cs b/src/SharpCompress/Common/Rar/RarVolume.cs index f3d55393..d05e16c2 100644 --- a/src/SharpCompress/Common/Rar/RarVolume.cs +++ b/src/SharpCompress/Common/Rar/RarVolume.cs @@ -61,9 +61,8 @@ public abstract class RarVolume : Volume var fh = (FileHeader)header; if (fh.FileName == "CMT") { - var part = CreateFilePart(lastMarkHeader!, fh); var buffer = new byte[fh.CompressedSize]; - part.GetCompressedStream().Read(buffer, 0, buffer.Length); + fh.PackedStream.Read(buffer, 0, buffer.Length); Comment = Encoding.UTF8.GetString(buffer, 0, buffer.Length - 1); } } From 33dd519f5630c54425e06b8264995eb5ad6d5682 Mon Sep 17 00:00:00 2001 From: Lars Vahlenberg Date: Sat, 8 Jun 2024 18:26:12 +0200 Subject: [PATCH 12/65] Throw exception when bzip2 is corrupt --- .../Compressors/BZip2/CBZip2InputStream.cs | 9 +++++--- .../BZip2/BZip2ReaderTests.cs | 21 +++++++++++++++++++ 2 files changed, 27 insertions(+), 3 deletions(-) create mode 100644 tests/SharpCompress.Test/BZip2/BZip2ReaderTests.cs diff --git a/src/SharpCompress/Compressors/BZip2/CBZip2InputStream.cs b/src/SharpCompress/Compressors/BZip2/CBZip2InputStream.cs index a541a04d..a467942f 100644 --- a/src/SharpCompress/Compressors/BZip2/CBZip2InputStream.cs +++ b/src/SharpCompress/Compressors/BZip2/CBZip2InputStream.cs @@ -1,4 +1,4 @@ -#nullable disable +#nullable disable using System; using System.IO; @@ -42,14 +42,17 @@ internal class CBZip2InputStream : Stream private static void Cadvise() { //System.out.Println("CRC Error"); - //throw new CCoruptionError(); + throw new InvalidOperationException("BZip2 error"); } private static void BadBGLengths() => Cadvise(); private static void BitStreamEOF() => Cadvise(); - private static void CompressedStreamEOF() => Cadvise(); + private static void CompressedStreamEOF() + { + throw new InvalidOperationException("BZip2 compressed file ends unexpectedly"); + } private void MakeMaps() { diff --git a/tests/SharpCompress.Test/BZip2/BZip2ReaderTests.cs b/tests/SharpCompress.Test/BZip2/BZip2ReaderTests.cs new file mode 100644 index 00000000..e0fa0583 --- /dev/null +++ b/tests/SharpCompress.Test/BZip2/BZip2ReaderTests.cs @@ -0,0 +1,21 @@ +using System; +using System.IO; +using SharpCompress.Common; +using SharpCompress.IO; +using SharpCompress.Readers; +using SharpCompress.Readers.GZip; +using Xunit; + +namespace SharpCompress.Test.BZip2; + +public class BZip2ReaderTests : ReaderTests +{ + [Fact] + public void BZip2_Reader_Factory() + { + Stream stream = new MemoryStream( + new byte[] { 0x42, 0x5a, 0x68, 0x34, 0x31, 0x41, 0x59, 0x26, 0x53, 0x59, 0x35 } + ); + Assert.Throws(typeof(InvalidOperationException), () => ReaderFactory.Open(stream)); + } +} From b7b78edaa311ad25409092d1168e25f4a99799d1 Mon Sep 17 00:00:00 2001 From: Pat Hartl Date: Sat, 22 Jun 2024 00:09:25 -0500 Subject: [PATCH 13/65] Fixed extractions after first ZIP64 entry is read from stream --- .../Common/Zip/StreamingZipHeaderFactory.cs | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/SharpCompress/Common/Zip/StreamingZipHeaderFactory.cs b/src/SharpCompress/Common/Zip/StreamingZipHeaderFactory.cs index c0af5408..c165211e 100644 --- a/src/SharpCompress/Common/Zip/StreamingZipHeaderFactory.cs +++ b/src/SharpCompress/Common/Zip/StreamingZipHeaderFactory.cs @@ -49,7 +49,17 @@ internal class StreamingZipHeaderFactory : ZipHeaderFactory reader = ((StreamingZipFilePart)_lastEntryHeader.Part).FixStreamedFileLocation( ref rewindableStream ); + var pos = rewindableStream.CanSeek ? (long?)rewindableStream.Position : null; + + headerBytes = reader.ReadUInt32(); + + var version = reader.ReadUInt16(); + var flags = (HeaderFlags)reader.ReadUInt16(); + var compressionMethod = (ZipCompressionMethod)reader.ReadUInt16(); + var lastModifiedTime = reader.ReadUInt16(); + var lastModifiedDate = reader.ReadUInt16(); + var crc = reader.ReadUInt32(); if (crc == POST_DATA_DESCRIPTOR) { @@ -62,7 +72,6 @@ internal class StreamingZipHeaderFactory : ZipHeaderFactory var uncompressed_size = reader.ReadUInt32(); // Check if we have header or 64bit DataDescriptor - headerBytes = reader.ReadUInt32(); var test_header = !(headerBytes == 0x04034b50 || headerBytes == 0x02014b50); var test_64bit = ((long)uncompressed_size << 32) | compressed_size; @@ -80,6 +89,9 @@ internal class StreamingZipHeaderFactory : ZipHeaderFactory if (pos.HasValue) { _lastEntryHeader.DataStartPosition = pos - _lastEntryHeader.CompressedSize; + + // 4 = First 4 bytes of the entry header (i.e. 50 4B 03 04) + rewindableStream.Position = pos.Value + 4; } } else From eee518b7fad11f04b1bc8c0938f27e622ae7b14d Mon Sep 17 00:00:00 2001 From: Pat Hartl Date: Sun, 23 Jun 2024 22:29:33 -0500 Subject: [PATCH 14/65] Reworked ZIP64 handling to separate block The last commit made in this branch messed up some ZIP reading and caused a bunch of tests to fail. These changes branch off ZIP64 logic into its own block so that data is read correctly for 64 and non-64 entries. --- .../Common/Zip/StreamingZipHeaderFactory.cs | 52 ++++++++++++++++--- 1 file changed, 44 insertions(+), 8 deletions(-) diff --git a/src/SharpCompress/Common/Zip/StreamingZipHeaderFactory.cs b/src/SharpCompress/Common/Zip/StreamingZipHeaderFactory.cs index c165211e..6e786560 100644 --- a/src/SharpCompress/Common/Zip/StreamingZipHeaderFactory.cs +++ b/src/SharpCompress/Common/Zip/StreamingZipHeaderFactory.cs @@ -34,13 +34,7 @@ internal class StreamingZipHeaderFactory : ZipHeaderFactory ZipHeader? header; var reader = new BinaryReader(rewindableStream); uint headerBytes = 0; - if ( - _lastEntryHeader != null - && ( - FlagUtility.HasFlag(_lastEntryHeader.Flags, HeaderFlags.UsePostDataDescriptor) - || _lastEntryHeader.IsZip64 - ) - ) + if (_lastEntryHeader != null && FlagUtility.HasFlag(_lastEntryHeader.Flags, HeaderFlags.UsePostDataDescriptor)) { if (_lastEntryHeader.Part is null) { @@ -52,15 +46,57 @@ internal class StreamingZipHeaderFactory : ZipHeaderFactory var pos = rewindableStream.CanSeek ? (long?)rewindableStream.Position : null; + var crc = reader.ReadUInt32(); + if (crc == POST_DATA_DESCRIPTOR) + { + crc = reader.ReadUInt32(); + } + _lastEntryHeader.Crc = crc; + + // The DataDescriptor can be either 64bit or 32bit + var compressed_size = reader.ReadUInt32(); + var uncompressed_size = reader.ReadUInt32(); + + // Check if we have header or 64bit DataDescriptor + headerBytes = reader.ReadUInt32(); + var test_header = !(headerBytes == 0x04034b50 || headerBytes == 0x02014b50); + + var test_64bit = ((long)uncompressed_size << 32) | compressed_size; + if (test_64bit == _lastEntryHeader.CompressedSize && test_header) + { + _lastEntryHeader.UncompressedSize = + ((long)reader.ReadUInt32() << 32) | headerBytes; + headerBytes = reader.ReadUInt32(); + } + else + { + _lastEntryHeader.UncompressedSize = uncompressed_size; + } + + if (pos.HasValue) + { + _lastEntryHeader.DataStartPosition = pos - _lastEntryHeader.CompressedSize; + } + } + else if (_lastEntryHeader != null && _lastEntryHeader.IsZip64) + { + if (_lastEntryHeader.Part is null) + continue; + + reader = ((StreamingZipFilePart)_lastEntryHeader.Part).FixStreamedFileLocation(ref rewindableStream); + + var pos = rewindableStream.CanSeek ? (long?)rewindableStream.Position : null; + headerBytes = reader.ReadUInt32(); var version = reader.ReadUInt16(); var flags = (HeaderFlags)reader.ReadUInt16(); var compressionMethod = (ZipCompressionMethod)reader.ReadUInt16(); - var lastModifiedTime = reader.ReadUInt16(); var lastModifiedDate = reader.ReadUInt16(); + var lastModifiedTime = reader.ReadUInt16(); var crc = reader.ReadUInt32(); + if (crc == POST_DATA_DESCRIPTOR) { crc = reader.ReadUInt32(); From 9bc0a1d7c7fac9457abc6721a672dbc82bced811 Mon Sep 17 00:00:00 2001 From: Pat Hartl Date: Sun, 23 Jun 2024 22:30:34 -0500 Subject: [PATCH 15/65] Null reference checking Reorders this null reference check to avoid throwing a null reference exception. --- src/SharpCompress/Common/Zip/ZipHeaderFactory.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/SharpCompress/Common/Zip/ZipHeaderFactory.cs b/src/SharpCompress/Common/Zip/ZipHeaderFactory.cs index 40fe178f..4c7c6a93 100644 --- a/src/SharpCompress/Common/Zip/ZipHeaderFactory.cs +++ b/src/SharpCompress/Common/Zip/ZipHeaderFactory.cs @@ -56,11 +56,11 @@ internal class ZipHeaderFactory case POST_DATA_DESCRIPTOR: { if ( + _lastEntryHeader != null && FlagUtility.HasFlag( _lastEntryHeader.NotNull().Flags, HeaderFlags.UsePostDataDescriptor ) - && _lastEntryHeader != null ) { _lastEntryHeader.Crc = reader.ReadUInt32(); From b89de6caadc4c044737a7bc1ec5239729c15e899 Mon Sep 17 00:00:00 2001 From: Pat Hartl Date: Mon, 24 Jun 2024 17:19:53 -0500 Subject: [PATCH 16/65] Fix formatting --- .../Common/Zip/StreamingZipHeaderFactory.cs | 9 +++++++-- src/SharpCompress/Common/Zip/ZipHeaderFactory.cs | 4 ++-- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/src/SharpCompress/Common/Zip/StreamingZipHeaderFactory.cs b/src/SharpCompress/Common/Zip/StreamingZipHeaderFactory.cs index 6e786560..508dfd1a 100644 --- a/src/SharpCompress/Common/Zip/StreamingZipHeaderFactory.cs +++ b/src/SharpCompress/Common/Zip/StreamingZipHeaderFactory.cs @@ -34,7 +34,10 @@ internal class StreamingZipHeaderFactory : ZipHeaderFactory ZipHeader? header; var reader = new BinaryReader(rewindableStream); uint headerBytes = 0; - if (_lastEntryHeader != null && FlagUtility.HasFlag(_lastEntryHeader.Flags, HeaderFlags.UsePostDataDescriptor)) + if ( + _lastEntryHeader != null + && FlagUtility.HasFlag(_lastEntryHeader.Flags, HeaderFlags.UsePostDataDescriptor) + ) { if (_lastEntryHeader.Part is null) { @@ -83,7 +86,9 @@ internal class StreamingZipHeaderFactory : ZipHeaderFactory if (_lastEntryHeader.Part is null) continue; - reader = ((StreamingZipFilePart)_lastEntryHeader.Part).FixStreamedFileLocation(ref rewindableStream); + reader = ((StreamingZipFilePart)_lastEntryHeader.Part).FixStreamedFileLocation( + ref rewindableStream + ); var pos = rewindableStream.CanSeek ? (long?)rewindableStream.Position : null; diff --git a/src/SharpCompress/Common/Zip/ZipHeaderFactory.cs b/src/SharpCompress/Common/Zip/ZipHeaderFactory.cs index 4c7c6a93..45869ff6 100644 --- a/src/SharpCompress/Common/Zip/ZipHeaderFactory.cs +++ b/src/SharpCompress/Common/Zip/ZipHeaderFactory.cs @@ -56,8 +56,8 @@ internal class ZipHeaderFactory case POST_DATA_DESCRIPTOR: { if ( - _lastEntryHeader != null && - FlagUtility.HasFlag( + _lastEntryHeader != null + && FlagUtility.HasFlag( _lastEntryHeader.NotNull().Flags, HeaderFlags.UsePostDataDescriptor ) From 061273be227e6846638b564f92046ec9c7b942f1 Mon Sep 17 00:00:00 2001 From: GordonJ Date: Tue, 25 Jun 2024 11:35:11 -0500 Subject: [PATCH 17/65] Added Export and (un)Reduce to sharpCompress --- src/SharpCompress/Common/CompressionType.cs | 7 +- .../Common/Zip/ZipCompressionMethod.cs | 5 + src/SharpCompress/Common/Zip/ZipEntry.cs | 5 + src/SharpCompress/Common/Zip/ZipFilePart.cs | 27 + .../Compressors/Explode/ExplodeStream.cs | 746 ++++++++++++++++++ .../Compressors/Explode/HuftTree.cs | 269 +++++++ .../Compressors/Reduce/ReduceStream.cs | 249 ++++++ 7 files changed, 1307 insertions(+), 1 deletion(-) create mode 100644 src/SharpCompress/Compressors/Explode/ExplodeStream.cs create mode 100644 src/SharpCompress/Compressors/Explode/HuftTree.cs create mode 100644 src/SharpCompress/Compressors/Reduce/ReduceStream.cs diff --git a/src/SharpCompress/Common/CompressionType.cs b/src/SharpCompress/Common/CompressionType.cs index 20f166c4..927c1e7a 100644 --- a/src/SharpCompress/Common/CompressionType.cs +++ b/src/SharpCompress/Common/CompressionType.cs @@ -16,5 +16,10 @@ public enum CompressionType Unknown, Deflate64, Shrink, - Lzw + Lzw, + Reduce1, + Reduce2, + Reduce3, + Reduce4, + Explode } diff --git a/src/SharpCompress/Common/Zip/ZipCompressionMethod.cs b/src/SharpCompress/Common/Zip/ZipCompressionMethod.cs index a98ed667..b4147eee 100644 --- a/src/SharpCompress/Common/Zip/ZipCompressionMethod.cs +++ b/src/SharpCompress/Common/Zip/ZipCompressionMethod.cs @@ -4,6 +4,11 @@ internal enum ZipCompressionMethod { None = 0, Shrink = 1, + Reduce1 = 2, + Reduce2 = 3, + Reduce3 = 4, + Reduce4 = 5, + Explode = 6, Deflate = 8, Deflate64 = 9, BZip2 = 12, diff --git a/src/SharpCompress/Common/Zip/ZipEntry.cs b/src/SharpCompress/Common/Zip/ZipEntry.cs index c2cecf39..2700e005 100644 --- a/src/SharpCompress/Common/Zip/ZipEntry.cs +++ b/src/SharpCompress/Common/Zip/ZipEntry.cs @@ -31,6 +31,11 @@ public class ZipEntry : Entry ZipCompressionMethod.PPMd => CompressionType.PPMd, ZipCompressionMethod.None => CompressionType.None, ZipCompressionMethod.Shrink => CompressionType.Shrink, + ZipCompressionMethod.Reduce1 => CompressionType.Reduce1, + ZipCompressionMethod.Reduce2 => CompressionType.Reduce2, + ZipCompressionMethod.Reduce3 => CompressionType.Reduce3, + ZipCompressionMethod.Reduce4 => CompressionType.Reduce4, + ZipCompressionMethod.Explode => CompressionType.Explode, _ => CompressionType.Unknown }; diff --git a/src/SharpCompress/Common/Zip/ZipFilePart.cs b/src/SharpCompress/Common/Zip/ZipFilePart.cs index e8516150..5d0a69c3 100644 --- a/src/SharpCompress/Common/Zip/ZipFilePart.cs +++ b/src/SharpCompress/Common/Zip/ZipFilePart.cs @@ -11,6 +11,8 @@ using SharpCompress.Compressors.LZMA; using SharpCompress.Compressors.PPMd; using SharpCompress.Compressors.Shrink; using SharpCompress.Compressors.Xz; +using SharpCompress.Compressors.Reduce; +using SharpCompress.Compressors.Explode; using SharpCompress.IO; using ZstdSharp; @@ -89,6 +91,27 @@ internal abstract class ZipFilePart : FilePart Header.UncompressedSize ); } + case ZipCompressionMethod.Reduce1: + { + return new ReduceStream(stream, Header.CompressedSize, Header.UncompressedSize, 1); + } + case ZipCompressionMethod.Reduce2: + { + return new ReduceStream(stream, Header.CompressedSize, Header.UncompressedSize, 2); + } + case ZipCompressionMethod.Reduce3: + { + return new ReduceStream(stream, Header.CompressedSize, Header.UncompressedSize, 3); + } + case ZipCompressionMethod.Reduce4: + { + return new ReduceStream(stream, Header.CompressedSize, Header.UncompressedSize, 4); + } + case ZipCompressionMethod.Explode: + { + return new ExplodeStream(stream, Header.CompressedSize, Header.UncompressedSize, Header.Flags); + } + case ZipCompressionMethod.Deflate: { return new DeflateStream(stream, CompressionMode.Decompress); @@ -203,6 +226,10 @@ internal abstract class ZipFilePart : FilePart { case ZipCompressionMethod.None: case ZipCompressionMethod.Shrink: + case ZipCompressionMethod.Reduce1: + case ZipCompressionMethod.Reduce2: + case ZipCompressionMethod.Reduce3: + case ZipCompressionMethod.Reduce4: case ZipCompressionMethod.Deflate: case ZipCompressionMethod.Deflate64: case ZipCompressionMethod.BZip2: diff --git a/src/SharpCompress/Compressors/Explode/ExplodeStream.cs b/src/SharpCompress/Compressors/Explode/ExplodeStream.cs new file mode 100644 index 00000000..a68353ce --- /dev/null +++ b/src/SharpCompress/Compressors/Explode/ExplodeStream.cs @@ -0,0 +1,746 @@ +using System; +using System.IO; +using SharpCompress.Common.Zip.Headers; + +namespace SharpCompress.Compressors.Explode; + +public class ExplodeStream : Stream +{ + private const int INVALID_CODE = 99; + private const int WSIZE = 64 * 1024; + + private readonly long unCompressedSize; + private readonly int compressedSize; + private readonly HeaderFlags generalPurposeBitFlag; + private readonly Stream inStream; + + private huftNode[]? hufLiteralCodeTable; /* literal code table */ + private huftNode[] hufLengthCodeTable = []; /* length code table */ + private huftNode[] hufDistanceCodeTable = []; /* distance code table */ + + private int bitsForLiteralCodeTable; + private int bitsForLengthCodeTable; + private int bitsForDistanceCodeTable; + private int numOfUncodedLowerDistanceBits; /* number of uncoded lower distance bits */ + + private ulong bitBuffer; + private int bitBufferCount; + + private readonly byte[] windowsBuffer; + private uint maskForLiteralCodeTable; + private uint maskForLengthCodeTable; + private uint maskForDistanceCodeTable; + private uint maskForDistanceLowBits; + private long outBytesCount; + + private int windowIndex; + private int distance; + private int length; + + internal ExplodeStream( + Stream inStr, + long compressedSize, + long uncompressedSize, + HeaderFlags generalPurposeBitFlag + ) + { + inStream = inStr; + this.compressedSize = (int)compressedSize; + unCompressedSize = (long)uncompressedSize; + this.generalPurposeBitFlag = generalPurposeBitFlag; + explode_SetTables(); + + windowsBuffer = new byte[WSIZE]; + explode_var_init(); + } + + public override void Flush() + { + throw new NotImplementedException(); + } + + public override long Seek(long offset, SeekOrigin origin) + { + throw new NotImplementedException(); + } + + public override void SetLength(long value) + { + throw new NotImplementedException(); + } + + public override void Write(byte[] buffer, int offset, int count) + { + throw new NotImplementedException(); + } + + public override bool CanRead => true; + public override bool CanSeek => false; + public override bool CanWrite => false; + public override long Length => unCompressedSize; + public override long Position + { + get => outBytesCount; + set { } + } + + static uint[] mask_bits = new uint[] + { + 0x0000, + 0x0001, + 0x0003, + 0x0007, + 0x000f, + 0x001f, + 0x003f, + 0x007f, + 0x00ff, + 0x01ff, + 0x03ff, + 0x07ff, + 0x0fff, + 0x1fff, + 0x3fff, + 0x7fff, + 0xffff + }; + + /* Tables for length and distance */ + static int[] cplen2 = new int[] + { + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65 + }; + + static int[] cplen3 = new int[] + { + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66 + }; + + static int[] extra = new int[] + { + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 8 + }; + + static int[] cpdist4 = new int[] + { + 1, + 65, + 129, + 193, + 257, + 321, + 385, + 449, + 513, + 577, + 641, + 705, + 769, + 833, + 897, + 961, + 1025, + 1089, + 1153, + 1217, + 1281, + 1345, + 1409, + 1473, + 1537, + 1601, + 1665, + 1729, + 1793, + 1857, + 1921, + 1985, + 2049, + 2113, + 2177, + 2241, + 2305, + 2369, + 2433, + 2497, + 2561, + 2625, + 2689, + 2753, + 2817, + 2881, + 2945, + 3009, + 3073, + 3137, + 3201, + 3265, + 3329, + 3393, + 3457, + 3521, + 3585, + 3649, + 3713, + 3777, + 3841, + 3905, + 3969, + 4033 + }; + + static int[] cpdist8 = new int[] + { + 1, + 129, + 257, + 385, + 513, + 641, + 769, + 897, + 1025, + 1153, + 1281, + 1409, + 1537, + 1665, + 1793, + 1921, + 2049, + 2177, + 2305, + 2433, + 2561, + 2689, + 2817, + 2945, + 3073, + 3201, + 3329, + 3457, + 3585, + 3713, + 3841, + 3969, + 4097, + 4225, + 4353, + 4481, + 4609, + 4737, + 4865, + 4993, + 5121, + 5249, + 5377, + 5505, + 5633, + 5761, + 5889, + 6017, + 6145, + 6273, + 6401, + 6529, + 6657, + 6785, + 6913, + 7041, + 7169, + 7297, + 7425, + 7553, + 7681, + 7809, + 7937, + 8065 + }; + + private int get_tree(int[] arrBitLengths, int numberExpected) + /* Get the bit lengths for a code representation from the compressed + stream. If get_tree() returns 4, then there is an error in the data. + Otherwise zero is returned. */ + { + /* get bit lengths */ + int inIndex = inStream.ReadByte() + 1; /* length/count pairs to read */ + int outIndex = 0; /* next code */ + do + { + int nextByte = inStream.ReadByte(); + int bitLengthOfCodes = (nextByte & 0xf) + 1; /* bits in code (1..16) */ + int numOfCodes = ((nextByte & 0xf0) >> 4) + 1; /* codes with those bits (1..16) */ + if (outIndex + numOfCodes > numberExpected) + return 4; /* don't overflow arrBitLengths[] */ + do + { + arrBitLengths[outIndex++] = bitLengthOfCodes; + } while ((--numOfCodes) != 0); + } while ((--inIndex) != 0); + + return outIndex != numberExpected ? 4 : 0; /* should have read numberExpected of them */ + } + + private int explode_SetTables() + { + int returnCode; /* return codes */ + int[] arrBitLengthsForCodes = new int[256]; /* bit lengths for codes */ + + bitsForLiteralCodeTable = 0; /* bits for tb */ + bitsForLengthCodeTable = 7; + bitsForDistanceCodeTable = (compressedSize) > 200000 ? 8 : 7; + + if ((generalPurposeBitFlag & HeaderFlags.Bit2) != 0) + /* With literal tree--minimum match length is 3 */ + { + bitsForLiteralCodeTable = 9; /* base table size for literals */ + if ((returnCode = get_tree(arrBitLengthsForCodes, 256)) != 0) + return returnCode; + + if ( + ( + returnCode = HuftTree.huftbuid( + arrBitLengthsForCodes, + 256, + 256, + [], + [], + out hufLiteralCodeTable, + ref bitsForLiteralCodeTable + ) + ) != 0 + ) + return returnCode; + + if ((returnCode = get_tree(arrBitLengthsForCodes, 64)) != 0) + return returnCode; + + if ( + ( + returnCode = HuftTree.huftbuid( + arrBitLengthsForCodes, + 64, + 0, + cplen3, + extra, + out hufLengthCodeTable, + ref bitsForLengthCodeTable + ) + ) != 0 + ) + return returnCode; + } + else + /* No literal tree--minimum match length is 2 */ + { + if ((returnCode = get_tree(arrBitLengthsForCodes, 64)) != 0) + return returnCode; + + hufLiteralCodeTable = null; + + if ( + ( + returnCode = HuftTree.huftbuid( + arrBitLengthsForCodes, + 64, + 0, + cplen2, + extra, + out hufLengthCodeTable, + ref bitsForLengthCodeTable + ) + ) != 0 + ) + return returnCode; + } + + if ((returnCode = get_tree(arrBitLengthsForCodes, 64)) != 0) + return (int)returnCode; + + if ((generalPurposeBitFlag & HeaderFlags.Bit1) != 0) /* true if 8K */ + { + numOfUncodedLowerDistanceBits = 7; + returnCode = HuftTree.huftbuid( + arrBitLengthsForCodes, + 64, + 0, + cpdist8, + extra, + out hufDistanceCodeTable, + ref bitsForDistanceCodeTable + ); + } + else /* else 4K */ + { + numOfUncodedLowerDistanceBits = 6; + returnCode = HuftTree.huftbuid( + arrBitLengthsForCodes, + 64, + 0, + cpdist4, + extra, + out hufDistanceCodeTable, + ref bitsForDistanceCodeTable + ); + } + + return returnCode; + } + + private void NeedBits(int numberOfBits) + { + while (bitBufferCount < (numberOfBits)) + { + bitBuffer |= (uint)inStream.ReadByte() << bitBufferCount; + bitBufferCount += 8; + } + } + + private void DumpBits(int numberOfBits) + { + bitBuffer >>= numberOfBits; + bitBufferCount -= numberOfBits; + } + + int DecodeHuft(huftNode[] htab, int bits, uint mask, out huftNode huftPointer, out int e) + { + NeedBits(bits); + + int tabOffset = (int)(~bitBuffer & mask); + huftPointer = htab[tabOffset]; + + while (true) + { + DumpBits(huftPointer.NumberOfBitsUsed); + e = huftPointer.NumberOfExtraBits; + if (e <= 32) + break; + if (e == INVALID_CODE) + return 1; + + e &= 31; + NeedBits(e); + + tabOffset = (int)(~bitBuffer & mask_bits[e]); + huftPointer = huftPointer.ChildNodes[tabOffset]; + } + + return 0; + } + + private void explode_var_init() + { + /* explode the coded data */ + bitBuffer = 0; + bitBufferCount = 0; + maskForLiteralCodeTable = mask_bits[bitsForLiteralCodeTable]; //only used in explode_lit + maskForLengthCodeTable = mask_bits[bitsForLengthCodeTable]; + maskForDistanceCodeTable = mask_bits[bitsForDistanceCodeTable]; + maskForDistanceLowBits = mask_bits[numOfUncodedLowerDistanceBits]; + outBytesCount = 0; + + windowIndex = 0; /* initialize bit buffer, window */ + } + + public override int Read(byte[] buffer, int offset, int count) + { + int countIndex = 0; + while (countIndex < count && outBytesCount < unCompressedSize) /* do until unCompressedSize bytes uncompressed */ + { + if (length == 0) + { + NeedBits(1); + bool literal = (bitBuffer & 1) == 1; + DumpBits(1); + + huftNode huftPointer; + if (literal) /* then literal--decode it */ + { + byte nextByte; + if (hufLiteralCodeTable != null) + { + /* get coded literal */ + if ( + DecodeHuft( + hufLiteralCodeTable, + bitsForLiteralCodeTable, + maskForLiteralCodeTable, + out huftPointer, + out _ + ) != 0 + ) + throw new Exception("Error decoding literal value"); + + nextByte = (byte)huftPointer.Value; + } + else + { + NeedBits(8); + nextByte = (byte)bitBuffer; + DumpBits(8); + } + + buffer[offset + (countIndex++)] = nextByte; + windowsBuffer[windowIndex++] = nextByte; + outBytesCount++; + + if (windowIndex == WSIZE) + windowIndex = 0; + + continue; + } + + NeedBits(numOfUncodedLowerDistanceBits); /* get distance low bits */ + distance = (int)(bitBuffer & maskForDistanceLowBits); + DumpBits(numOfUncodedLowerDistanceBits); + + /* get coded distance high bits */ + if ( + DecodeHuft( + hufDistanceCodeTable, + bitsForDistanceCodeTable, + maskForDistanceCodeTable, + out huftPointer, + out _ + ) != 0 + ) + throw new Exception("Error decoding distance high bits"); + + distance = windowIndex - (distance + huftPointer.Value); /* construct offset */ + + /* get coded length */ + if ( + DecodeHuft( + hufLengthCodeTable, + bitsForLengthCodeTable, + maskForLengthCodeTable, + out huftPointer, + out int extraBitLength + ) != 0 + ) + throw new Exception("Error decoding coded length"); + + length = huftPointer.Value; + + if (extraBitLength != 0) /* get length extra bits */ + { + NeedBits(8); + length += (int)(bitBuffer & 0xff); + DumpBits(8); + } + + if (length > (unCompressedSize - outBytesCount)) + length = (int)(unCompressedSize - outBytesCount); + + distance &= WSIZE - 1; + } + + while (length != 0 && countIndex < count) + { + byte nextByte = windowsBuffer[distance++]; + buffer[offset + (countIndex++)] = nextByte; + windowsBuffer[windowIndex++] = nextByte; + outBytesCount++; + + if (distance == WSIZE) + distance = 0; + + if (windowIndex == WSIZE) + windowIndex = 0; + + length--; + } + } + + return countIndex; + } +} diff --git a/src/SharpCompress/Compressors/Explode/HuftTree.cs b/src/SharpCompress/Compressors/Explode/HuftTree.cs new file mode 100644 index 00000000..caa1a141 --- /dev/null +++ b/src/SharpCompress/Compressors/Explode/HuftTree.cs @@ -0,0 +1,269 @@ +/* + * This code has been converted to C# based on the original huft_tree code found in + * inflate.c -- by Mark Adler version c17e, 30 Mar 2007 + */ + +namespace SharpCompress.Compressors.Explode; + +public class huftNode +{ + public int NumberOfExtraBits; /* number of extra bits or operation */ + public int NumberOfBitsUsed; /* number of bits in this code or subcode */ + public int Value; /* literal, length base, or distance base */ + public huftNode[] ChildNodes = []; /* next level of table */ +} + +public static class HuftTree +{ + private const int INVALID_CODE = 99; + + /* If BMAX needs to be larger than 16, then h and x[] should be ulg. */ + private const int BMAX = 16; /* maximum bit length of any code (16 for explode) */ + private const int N_MAX = 288; /* maximum number of codes in any set */ + + public static int huftbuid( + int[] arrBitLengthForCodes, + int numberOfCodes, + int numberOfSimpleValueCodes, + int[] arrBaseValuesForNonSimpleCodes, + int[] arrExtraBitsForNonSimpleCodes, + out huftNode[] outHufTable, + ref int outBitsForTable + ) + /* Given a list of code lengths and a maximum table size, make a set of + tables to decode that set of codes. Return zero on success, one if + the given code set is incomplete (the tables are still built in this + case), two if the input is invalid (all zero length codes or an + oversubscribed set of lengths), and three if not enough memory. + The code with value 256 is special, and the tables are constructed + so that no bits beyond that code are fetched when that code is + decoded. */ + { + outHufTable = []; + + /* Generate counts for each bit length */ + int lengthOfEOBcode = numberOfCodes > 256 ? arrBitLengthForCodes[256] : BMAX; /* set length of EOB code, if any */ + + int[] arrBitLengthCount = new int[BMAX + 1]; + for (int i = 0; i < BMAX + 1; i++) + arrBitLengthCount[i] = 0; + + int pIndex = 0; + int counterCurrentCode = numberOfCodes; + do + { + arrBitLengthCount[arrBitLengthForCodes[pIndex]]++; + pIndex++; /* assume all entries <= BMAX */ + } while ((--counterCurrentCode) != 0); + + if (arrBitLengthCount[0] == numberOfCodes) /* null input--all zero length codes */ + { + return 0; + } + + /* Find minimum and maximum length, bound *outBitsForTable by those */ + int counter; + for (counter = 1; counter <= BMAX; counter++) + if (arrBitLengthCount[counter] != 0) + break; + + int numberOfBitsInCurrentCode = counter; /* minimum code length */ + if (outBitsForTable < counter) + outBitsForTable = counter; + + for (counterCurrentCode = BMAX; counterCurrentCode != 0; counterCurrentCode--) + if (arrBitLengthCount[counterCurrentCode] != 0) + break; + + int maximumCodeLength = counterCurrentCode; /* maximum code length */ + if (outBitsForTable > counterCurrentCode) + outBitsForTable = counterCurrentCode; + + /* Adjust last length count to fill out codes, if needed */ + int numberOfDummyCodesAdded; + for ( + numberOfDummyCodesAdded = 1 << counter; + counter < counterCurrentCode; + counter++, numberOfDummyCodesAdded <<= 1 + ) + if ((numberOfDummyCodesAdded -= arrBitLengthCount[counter]) < 0) + return 2; /* bad input: more codes than bits */ + + if ((numberOfDummyCodesAdded -= arrBitLengthCount[counterCurrentCode]) < 0) + return 2; + + arrBitLengthCount[counterCurrentCode] += numberOfDummyCodesAdded; + + /* Generate starting offsets into the value table for each length */ + int[] bitOffset = new int[BMAX + 1]; + bitOffset[1] = 0; + counter = 0; + pIndex = 1; + int xIndex = 2; + while ((--counterCurrentCode) != 0) + { /* note that i == g from above */ + bitOffset[xIndex++] = (counter += arrBitLengthCount[pIndex++]); + } + + /* Make a table of values in order of bit lengths */ + int[] arrValuesInOrderOfBitLength = new int[N_MAX]; + for (int i = 0; i < N_MAX; i++) + arrValuesInOrderOfBitLength[i] = 0; + + pIndex = 0; + counterCurrentCode = 0; + do + { + if ((counter = arrBitLengthForCodes[pIndex++]) != 0) + arrValuesInOrderOfBitLength[bitOffset[counter]++] = counterCurrentCode; + } while (++counterCurrentCode < numberOfCodes); + + numberOfCodes = bitOffset[maximumCodeLength]; /* set numberOfCodes to length of v */ + + /* Generate the Huffman codes and for each, make the table entries */ + bitOffset[0] = counterCurrentCode = 0; /* first Huffman code is zero */ + pIndex = 0; /* grab values in bit order */ + int tableLevel = -1; /* no tables yet--level -1 */ + int bitsBeforeThisTable = 0; + int[] arrLX = new int[BMAX + 1]; + int stackOfBitsPerTable = 1; /* stack of bits per table */ + arrLX[stackOfBitsPerTable - 1] = 0; /* no bits decoded yet */ + + huftNode[][] arrHufTableStack = new huftNode[BMAX][]; + huftNode[] pointerToCurrentTable = []; + int numberOfEntriesInCurrentTable = 0; + + bool first = true; + + /* go through the bit lengths (k already is bits in shortest code) */ + for (; numberOfBitsInCurrentCode <= maximumCodeLength; numberOfBitsInCurrentCode++) + { + int counterForCodes = arrBitLengthCount[numberOfBitsInCurrentCode]; + while ((counterForCodes--) != 0) + { + /* here i is the Huffman code of length k bits for value *p */ + /* make tables up to required level */ + while ( + numberOfBitsInCurrentCode + > bitsBeforeThisTable + arrLX[stackOfBitsPerTable + tableLevel] + ) + { + bitsBeforeThisTable += arrLX[stackOfBitsPerTable + (tableLevel++)]; /* add bits already decoded */ + + /* compute minimum size table less than or equal to *outBitsForTable bits */ + numberOfEntriesInCurrentTable = + (numberOfEntriesInCurrentTable = maximumCodeLength - bitsBeforeThisTable) + > outBitsForTable + ? outBitsForTable + : numberOfEntriesInCurrentTable; /* upper limit */ + int fBitCounter1 = + 1 << (counter = numberOfBitsInCurrentCode - bitsBeforeThisTable); + if (fBitCounter1 > counterForCodes + 1) /* try a k-w bit table */ + { /* too few codes for k-w bit table */ + fBitCounter1 -= counterForCodes + 1; /* deduct codes from patterns left */ + xIndex = numberOfBitsInCurrentCode; + while (++counter < numberOfEntriesInCurrentTable) /* try smaller tables up to z bits */ + { + if ((fBitCounter1 <<= 1) <= arrBitLengthCount[++xIndex]) + break; /* enough codes to use up j bits */ + fBitCounter1 -= arrBitLengthCount[xIndex]; /* else deduct codes from patterns */ + } + } + if ( + bitsBeforeThisTable + counter > lengthOfEOBcode + && bitsBeforeThisTable < lengthOfEOBcode + ) + counter = lengthOfEOBcode - bitsBeforeThisTable; /* make EOB code end at table */ + + numberOfEntriesInCurrentTable = 1 << counter; /* table entries for j-bit table */ + arrLX[stackOfBitsPerTable + tableLevel] = counter; /* set table size in stack */ + + /* allocate and link in new table */ + pointerToCurrentTable = new huftNode[numberOfEntriesInCurrentTable]; + + // set the pointer, pointed to by *outHufTable to the second huft in pointertoCurrentTable + if (first) + { + outHufTable = pointerToCurrentTable; /* link to list for huft_free() */ + first = false; + } + + arrHufTableStack[tableLevel] = pointerToCurrentTable; /* table starts after link */ + + /* connect to last table, if there is one */ + if (tableLevel != 0) + { + bitOffset[tableLevel] = counterCurrentCode; /* save pattern for backing up */ + + huftNode vHuft = new huftNode + { + NumberOfBitsUsed = arrLX[stackOfBitsPerTable + tableLevel - 1], /* bits to dump before this table */ + NumberOfExtraBits = 32 + counter, /* bits in this table */ + ChildNodes = pointerToCurrentTable /* pointer to this table */ + }; + + counter = + (counterCurrentCode & ((1 << bitsBeforeThisTable) - 1)) + >> (bitsBeforeThisTable - arrLX[stackOfBitsPerTable + tableLevel - 1]); + arrHufTableStack[tableLevel - 1][counter] = vHuft; /* connect to last table */ + } + } + + /* set up table entry in r */ + huftNode vHuft1 = new huftNode + { + NumberOfBitsUsed = numberOfBitsInCurrentCode - bitsBeforeThisTable + }; + + if (pIndex >= numberOfCodes) + vHuft1.NumberOfExtraBits = INVALID_CODE; /* out of values--invalid code */ + else if (arrValuesInOrderOfBitLength[pIndex] < numberOfSimpleValueCodes) + { + vHuft1.NumberOfExtraBits = ( + arrValuesInOrderOfBitLength[pIndex] < 256 ? 32 : 31 + ); /* 256 is end-of-block code */ + vHuft1.Value = arrValuesInOrderOfBitLength[pIndex++]; /* simple code is just the value */ + } + else + { + vHuft1.NumberOfExtraBits = arrExtraBitsForNonSimpleCodes[ + arrValuesInOrderOfBitLength[pIndex] - numberOfSimpleValueCodes + ]; /* non-simple--look up in lists */ + vHuft1.Value = arrBaseValuesForNonSimpleCodes[ + arrValuesInOrderOfBitLength[pIndex++] - numberOfSimpleValueCodes + ]; + } + + /* fill code-like entries with r */ + int fBitCounter2 = 1 << (numberOfBitsInCurrentCode - bitsBeforeThisTable); + for ( + counter = counterCurrentCode >> bitsBeforeThisTable; + counter < numberOfEntriesInCurrentTable; + counter += fBitCounter2 + ) + pointerToCurrentTable[counter] = vHuft1; + + /* backwards increment the k-bit code i */ + for ( + counter = 1 << (numberOfBitsInCurrentCode - 1); + (counterCurrentCode & counter) != 0; + counter >>= 1 + ) + counterCurrentCode ^= counter; + counterCurrentCode ^= counter; + + /* backup over finished tables */ + while ( + (counterCurrentCode & ((1 << bitsBeforeThisTable) - 1)) != bitOffset[tableLevel] + ) + bitsBeforeThisTable -= arrLX[stackOfBitsPerTable + (--tableLevel)]; + } + } + + /* return actual size of base table */ + outBitsForTable = arrLX[stackOfBitsPerTable]; + + /* Return true (1) if we were given an incomplete table */ + return (numberOfDummyCodesAdded != 0 && maximumCodeLength != 1) ? 1 : 0; + } +} diff --git a/src/SharpCompress/Compressors/Reduce/ReduceStream.cs b/src/SharpCompress/Compressors/Reduce/ReduceStream.cs new file mode 100644 index 00000000..2ebc20ab --- /dev/null +++ b/src/SharpCompress/Compressors/Reduce/ReduceStream.cs @@ -0,0 +1,249 @@ +using System; +using System.IO; + +namespace SharpCompress.Compressors.Reduce; + +public class ReduceStream : Stream +{ + private readonly long unCompressedSize; + private readonly long compressedSize; + private readonly Stream inStream; + + private long inByteCount; + private const int EOF = 1234; + + private readonly int factor; + private readonly int distanceMask; + private readonly int lengthMask; + + private long outBytesCount; + + private readonly byte[] windowsBuffer; + private int windowIndex; + private int length; + private int distance; + + public ReduceStream(Stream inStr, long compsize, long unCompSize, int factor) + { + inStream = inStr; + compressedSize = compsize; + unCompressedSize = unCompSize; + inByteCount = 0; + outBytesCount = 0; + + this.factor = factor; + distanceMask = (int)mask_bits[factor] << 8; + lengthMask = 0xff >> factor; + + windowIndex = 0; + length = 0; + distance = 0; + + windowsBuffer = new byte[WSIZE]; + + outByte = 0; + + LoadBitLengthTable(); + LoadNextByteTable(); + } + + public override void Flush() + { + throw new NotImplementedException(); + } + + public override long Seek(long offset, SeekOrigin origin) + { + throw new NotImplementedException(); + } + + public override void SetLength(long value) + { + throw new NotImplementedException(); + } + + public override void Write(byte[] buffer, int offset, int count) + { + throw new NotImplementedException(); + } + + public override bool CanRead => true; + public override bool CanSeek => false; + public override bool CanWrite => false; + public override long Length => unCompressedSize; + public override long Position + { + get => outBytesCount; + set { } + } + + private const int RunLengthCode = 144; + private const int WSIZE = 0x4000; + + private readonly uint[] mask_bits = new uint[] + { + 0x0000, + 0x0001, + 0x0003, + 0x0007, + 0x000f, + 0x001f, + 0x003f, + 0x007f, + 0x00ff, + 0x01ff, + 0x03ff, + 0x07ff, + 0x0fff, + 0x1fff, + 0x3fff, + 0x7fff, + 0xffff + }; + + private int bitBufferCount; + private ulong bitBuffer; + + private int NEXTBYTE() + { + if (inByteCount == compressedSize) + return EOF; + inByteCount++; + return inStream.ReadByte(); + } + + private void READBITS(int nbits, out byte zdest) + { + if (nbits > bitBufferCount) + { + int temp; + while (bitBufferCount <= 8 * (int)(4 - 1) && (temp = NEXTBYTE()) != EOF) + { + bitBuffer |= (ulong)temp << bitBufferCount; + bitBufferCount += 8; + } + } + zdest = (byte)(bitBuffer & (ulong)mask_bits[nbits]); + bitBuffer >>= nbits; + bitBufferCount -= nbits; + } + + private byte[] bitCountTable = []; + + private void LoadBitLengthTable() + { + byte[] bitPos = { 0, 2, 4, 8, 16, 32, 64, 128, 255 }; + bitCountTable = new byte[256]; + + for (byte i = 1; i <= 8; i++) + { + int vMin = bitPos[i - 1] + 1; + int vMax = bitPos[i]; + for (int j = vMin; j <= vMax; j++) + { + bitCountTable[j] = i; + } + } + } + + private byte[][] nextByteTable = []; + + private void LoadNextByteTable() + { + nextByteTable = new byte[256][]; + for (int x = 255; x >= 0; x--) + { + READBITS(6, out byte Slen); + nextByteTable[x] = new byte[Slen]; + for (int i = 0; i < Slen; i++) + { + READBITS(8, out nextByteTable[x][i]); + } + } + } + + private byte outByte; + + private byte GetNextByte() + { + if (nextByteTable[outByte].Length == 0) + { + READBITS(8, out outByte); + return outByte; + } + READBITS(1, out byte nextBit); + if (nextBit == 1) + { + READBITS(8, out outByte); + return outByte; + } + READBITS(bitCountTable[nextByteTable[outByte].Length], out byte nextByteIndex); + outByte = nextByteTable[outByte][nextByteIndex]; + return outByte; + } + + public override int Read(byte[] buffer, int offset, int count) + { + int countIndex = 0; + while (countIndex < count && outBytesCount < unCompressedSize) + { + if (length == 0) + { + byte nextByte = GetNextByte(); + if (nextByte != RunLengthCode) + { + buffer[offset + (countIndex++)] = nextByte; + windowsBuffer[windowIndex++] = nextByte; + outBytesCount++; + if (windowIndex == WSIZE) + windowIndex = 0; + + continue; + } + + nextByte = GetNextByte(); + if (nextByte == 0) + { + buffer[offset + (countIndex++)] = RunLengthCode; + windowsBuffer[windowIndex++] = RunLengthCode; + outBytesCount++; + if (windowIndex == WSIZE) + windowIndex = 0; + + continue; + } + + int lengthDistanceByte = nextByte; + length = lengthDistanceByte & lengthMask; + if (length == lengthMask) + { + length += GetNextByte(); + } + length += 3; + + int distanceHighByte = (lengthDistanceByte << factor) & distanceMask; + distance = windowIndex - (distanceHighByte + GetNextByte() + 1); + + distance &= WSIZE - 1; + } + + while (length != 0 && countIndex < count) + { + byte nextByte = windowsBuffer[distance++]; + buffer[offset + (countIndex++)] = nextByte; + windowsBuffer[windowIndex++] = nextByte; + outBytesCount++; + + if (distance == WSIZE) + distance = 0; + + if (windowIndex == WSIZE) + windowIndex = 0; + + length--; + } + } + + return countIndex; + } +} From e42d953f47e2339c03e663cdff5015d61873dcea Mon Sep 17 00:00:00 2001 From: Lars Vahlenberg Date: Wed, 10 Jul 2024 19:53:32 +0200 Subject: [PATCH 18/65] Check crc on tar header --- .../Common/Tar/Headers/TarHeader.cs | 7 +++++++ tests/SharpCompress.Test/Tar/TarArchiveTests.cs | 11 +++++++++-- tests/TestArchives/Archives/false.positive.tar | Bin 0 -> 1024 bytes 3 files changed, 16 insertions(+), 2 deletions(-) create mode 100644 tests/TestArchives/Archives/false.positive.tar diff --git a/src/SharpCompress/Common/Tar/Headers/TarHeader.cs b/src/SharpCompress/Common/Tar/Headers/TarHeader.cs index e9aa343c..510d38a0 100644 --- a/src/SharpCompress/Common/Tar/Headers/TarHeader.cs +++ b/src/SharpCompress/Common/Tar/Headers/TarHeader.cs @@ -134,6 +134,13 @@ internal sealed class TarHeader hasLongValue = false; } while (hasLongValue); + var crc = ReadAsciiInt64Base8(buffer, 148, 7); + + if (crc != RecalculateChecksum(buffer)) + { + return false; + } + Name = longName ?? ArchiveEncoding.Decode(buffer, 0, 100).TrimNulls(); EntryType = entryType; Size = ReadSize(buffer); diff --git a/tests/SharpCompress.Test/Tar/TarArchiveTests.cs b/tests/SharpCompress.Test/Tar/TarArchiveTests.cs index bbf96c00..6a8f3294 100644 --- a/tests/SharpCompress.Test/Tar/TarArchiveTests.cs +++ b/tests/SharpCompress.Test/Tar/TarArchiveTests.cs @@ -217,8 +217,7 @@ public class TarArchiveTests : ArchiveTests { var archiveFullPath = Path.Combine(TEST_ARCHIVES_PATH, "Tar.Empty.tar"); using Stream stream = File.OpenRead(archiveFullPath); - using var archive = ArchiveFactory.Open(stream); - Assert.True(archive.Type == ArchiveType.Tar); + Assert.Throws(() => ArchiveFactory.Open(stream)); } [Theory] @@ -287,4 +286,12 @@ public class TarArchiveTests : ArchiveTests Assert.Equal(2, numberOfEntries); } + + [Fact] + public void Tar_Detect_Test() + { + var isTar = TarArchive.IsTarFile(Path.Combine(TEST_ARCHIVES_PATH, "false.positive.tar")); + + Assert.False(isTar); + } } diff --git a/tests/TestArchives/Archives/false.positive.tar b/tests/TestArchives/Archives/false.positive.tar new file mode 100644 index 0000000000000000000000000000000000000000..db91a2ff2657cb03d7538bb306d0b9816837fb6a GIT binary patch literal 1024 zcmdmZ+NXzsfq{V=L@+Qg%&j(MU}RumP=)eAY!H)^g@NHB0|Nsy11p1#7)S(y`571( zyqFjm*ch1OAR@FQS((|uZbP;K=00SxQ8w`*AjiPKz{ Date: Thu, 11 Jul 2024 19:52:33 +0200 Subject: [PATCH 19/65] Handle special case, empty file --- .../Common/Tar/Headers/TarHeader.cs | 42 +++++++++++++++++-- .../SharpCompress.Test/Tar/TarArchiveTests.cs | 3 +- 2 files changed, 41 insertions(+), 4 deletions(-) diff --git a/src/SharpCompress/Common/Tar/Headers/TarHeader.cs b/src/SharpCompress/Common/Tar/Headers/TarHeader.cs index 510d38a0..9231833d 100644 --- a/src/SharpCompress/Common/Tar/Headers/TarHeader.cs +++ b/src/SharpCompress/Common/Tar/Headers/TarHeader.cs @@ -2,6 +2,7 @@ using System; using System.Buffers.Binary; using System.IO; using System.Text; +using ZstdSharp.Unsafe; namespace SharpCompress.Common.Tar.Headers; @@ -134,9 +135,8 @@ internal sealed class TarHeader hasLongValue = false; } while (hasLongValue); - var crc = ReadAsciiInt64Base8(buffer, 148, 7); - - if (crc != RecalculateChecksum(buffer)) + // Check header checksum + if (!checkChecksum(buffer)) { return false; } @@ -318,6 +318,42 @@ internal sealed class TarHeader (byte)' ' }; + internal static bool checkChecksum(byte[] buf) + { + const int eightSpacesChksum = 256; + var buffer = new Span(buf).Slice(0, 512); + int posix_sum = eightSpacesChksum; + int sun_sum = eightSpacesChksum; + + foreach (byte b in buffer) + { + posix_sum += b; + sun_sum += unchecked((sbyte)b); + } + + // Special case, empty file header + if (posix_sum == eightSpacesChksum) + { + return true; + } + + // Remove current checksum from calculation + foreach (byte b in buffer.Slice(148, 8)) + { + posix_sum -= b; + sun_sum -= unchecked((sbyte)b); + } + + // Read and compare checksum for header + var crc = ReadAsciiInt64Base8(buf, 148, 7); + if (crc != posix_sum && crc != sun_sum) + { + return false; + } + + return true; + } + internal static int RecalculateChecksum(byte[] buf) { // Set default value for checksum. That is 8 spaces. diff --git a/tests/SharpCompress.Test/Tar/TarArchiveTests.cs b/tests/SharpCompress.Test/Tar/TarArchiveTests.cs index 6a8f3294..1024e945 100644 --- a/tests/SharpCompress.Test/Tar/TarArchiveTests.cs +++ b/tests/SharpCompress.Test/Tar/TarArchiveTests.cs @@ -217,7 +217,8 @@ public class TarArchiveTests : ArchiveTests { var archiveFullPath = Path.Combine(TEST_ARCHIVES_PATH, "Tar.Empty.tar"); using Stream stream = File.OpenRead(archiveFullPath); - Assert.Throws(() => ArchiveFactory.Open(stream)); + using var archive = ArchiveFactory.Open(stream); + Assert.True(archive.Type == ArchiveType.Tar); } [Theory] From 9515350f52a40cb54627c029a4fc7b6fe7ffc939 Mon Sep 17 00:00:00 2001 From: Lars Vahlenberg Date: Thu, 11 Jul 2024 19:56:46 +0200 Subject: [PATCH 20/65] Remove using directive --- src/SharpCompress/Common/Tar/Headers/TarHeader.cs | 1 - 1 file changed, 1 deletion(-) diff --git a/src/SharpCompress/Common/Tar/Headers/TarHeader.cs b/src/SharpCompress/Common/Tar/Headers/TarHeader.cs index 9231833d..72c83612 100644 --- a/src/SharpCompress/Common/Tar/Headers/TarHeader.cs +++ b/src/SharpCompress/Common/Tar/Headers/TarHeader.cs @@ -2,7 +2,6 @@ using System; using System.Buffers.Binary; using System.IO; using System.Text; -using ZstdSharp.Unsafe; namespace SharpCompress.Common.Tar.Headers; From 188a426ddea1979ab0400c248056ab97dedb36fe Mon Sep 17 00:00:00 2001 From: Alex Prabhat Bara <50404684+alexprabhat99@users.noreply.github.com> Date: Tue, 16 Jul 2024 16:20:04 +0530 Subject: [PATCH 21/65] fix for missing empty directories when using ExtractToDirectory --- src/SharpCompress/Archives/IArchiveExtensions.cs | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/src/SharpCompress/Archives/IArchiveExtensions.cs b/src/SharpCompress/Archives/IArchiveExtensions.cs index 382c3ddf..b47f3394 100644 --- a/src/SharpCompress/Archives/IArchiveExtensions.cs +++ b/src/SharpCompress/Archives/IArchiveExtensions.cs @@ -54,14 +54,23 @@ public static class IArchiveExtensions var entry = entries.Entry; if (entry.IsDirectory) { + var dirPath = Path.Combine(destination, entry.Key.NotNull("Entry Key is null")); + if (Path.GetDirectoryName(dirPath + "/") is { } emptyDirectory && seenDirectories.Add(dirPath)) + { + Directory.CreateDirectory(emptyDirectory); + } continue; } - // Create each directory + // Create each directory if not already created var path = Path.Combine(destination, entry.Key.NotNull("Entry Key is null")); - if (Path.GetDirectoryName(path) is { } directory && seenDirectories.Add(path)) + if (Path.GetDirectoryName(path) is { } directory) { - Directory.CreateDirectory(directory); + if (!Directory.Exists(directory) && !seenDirectories.Contains(directory)) + { + Directory.CreateDirectory(directory); + seenDirectories.Add(directory); + } } // Write file From 004e0941d572da081d9542d181aa25188babee4e Mon Sep 17 00:00:00 2001 From: Alex Prabhat Bara <50404684+alexprabhat99@users.noreply.github.com> Date: Tue, 16 Jul 2024 20:12:01 +0530 Subject: [PATCH 22/65] code formatted using csharpier --- src/SharpCompress/Archives/IArchiveExtensions.cs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/SharpCompress/Archives/IArchiveExtensions.cs b/src/SharpCompress/Archives/IArchiveExtensions.cs index b47f3394..4cba5463 100644 --- a/src/SharpCompress/Archives/IArchiveExtensions.cs +++ b/src/SharpCompress/Archives/IArchiveExtensions.cs @@ -55,7 +55,10 @@ public static class IArchiveExtensions if (entry.IsDirectory) { var dirPath = Path.Combine(destination, entry.Key.NotNull("Entry Key is null")); - if (Path.GetDirectoryName(dirPath + "/") is { } emptyDirectory && seenDirectories.Add(dirPath)) + if ( + Path.GetDirectoryName(dirPath + "/") is { } emptyDirectory + && seenDirectories.Add(dirPath) + ) { Directory.CreateDirectory(emptyDirectory); } From 3545693999a601872f343b1e8530fc9b7263e644 Mon Sep 17 00:00:00 2001 From: GordonJ Date: Tue, 23 Jul 2024 14:05:07 -0500 Subject: [PATCH 23/65] Added Tests and supporting Files. --- .../SharpCompress.Test/Zip/ZipArchiveTests.cs | 51 +++++++++++++++--- tests/TestArchives/Archives/Zip.implode.zip | Bin 0 -> 63534 bytes tests/TestArchives/Archives/Zip.reduce1.zip | Bin 0 -> 67014 bytes tests/TestArchives/Archives/Zip.reduce2.zip | Bin 0 -> 66505 bytes tests/TestArchives/Archives/Zip.reduce3.zip | Bin 0 -> 66364 bytes tests/TestArchives/Archives/Zip.reduce4.zip | Bin 0 -> 66161 bytes 6 files changed, 43 insertions(+), 8 deletions(-) create mode 100644 tests/TestArchives/Archives/Zip.implode.zip create mode 100644 tests/TestArchives/Archives/Zip.reduce1.zip create mode 100644 tests/TestArchives/Archives/Zip.reduce2.zip create mode 100644 tests/TestArchives/Archives/Zip.reduce3.zip create mode 100644 tests/TestArchives/Archives/Zip.reduce4.zip diff --git a/tests/SharpCompress.Test/Zip/ZipArchiveTests.cs b/tests/SharpCompress.Test/Zip/ZipArchiveTests.cs index 494e02c9..dfeecadd 100644 --- a/tests/SharpCompress.Test/Zip/ZipArchiveTests.cs +++ b/tests/SharpCompress.Test/Zip/ZipArchiveTests.cs @@ -16,14 +16,7 @@ public class ZipArchiveTests : ArchiveTests { public ZipArchiveTests() => UseExtensionInsteadOfNameToVerify = true; - [Fact] - public void Zip_Shrink_ArchiveStreamRead() - { - UseExtensionInsteadOfNameToVerify = true; - UseCaseInsensitiveToVerify = true; - ArchiveStreamRead("Zip.shrink.zip"); - } - + [Fact] public void Zip_ZipX_ArchiveStreamRead() => ArchiveStreamRead("Zip.zipx"); @@ -183,6 +176,48 @@ public class ZipArchiveTests : ArchiveTests [Fact] public void Zip_Zip64_ArchiveFileRead() => ArchiveFileRead("Zip.zip64.zip"); + [Fact] + public void Zip_Shrink_ArchiveStreamRead() + { + UseExtensionInsteadOfNameToVerify = true; + UseCaseInsensitiveToVerify = true; + ArchiveStreamRead("Zip.shrink.zip"); + } + [Fact] + public void Zip_Implode_ArchiveStreamRead() + { + UseExtensionInsteadOfNameToVerify = true; + UseCaseInsensitiveToVerify = true; + ArchiveStreamRead("Zip.implode.zip"); + } + [Fact] + public void Zip_Reduce1_ArchiveStreamRead() + { + UseExtensionInsteadOfNameToVerify = true; + UseCaseInsensitiveToVerify = true; + ArchiveStreamRead("Zip.reduce1.zip"); + } + [Fact] + public void Zip_Reduce2_ArchiveStreamRead() + { + UseExtensionInsteadOfNameToVerify = true; + UseCaseInsensitiveToVerify = true; + ArchiveStreamRead("Zip.reduce2.zip"); + } + [Fact] + public void Zip_Reduce3_ArchiveStreamRead() + { + UseExtensionInsteadOfNameToVerify = true; + UseCaseInsensitiveToVerify = true; + ArchiveStreamRead("Zip.reduce3.zip"); + } + [Fact] + public void Zip_Reduce4_ArchiveStreamRead() + { + UseExtensionInsteadOfNameToVerify = true; + UseCaseInsensitiveToVerify = true; + ArchiveStreamRead("Zip.reduce4.zip"); + } [Fact] public void Zip_Random_Write_Remove() { diff --git a/tests/TestArchives/Archives/Zip.implode.zip b/tests/TestArchives/Archives/Zip.implode.zip new file mode 100644 index 0000000000000000000000000000000000000000..bd4354f0d04063d4e06fdc908d7d618eaab4eb5c GIT binary patch literal 63534 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

1zo>mSXU*}|Mn}$E>U>cYvvQG|PuE5h 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 I>30wh040`sy8r+H literal 0 HcmV?d00001 diff --git a/tests/TestArchives/Archives/Zip.reduce1.zip b/tests/TestArchives/Archives/Zip.reduce1.zip new file mode 100644 index 0000000000000000000000000000000000000000..61af465bbd917f88f62873c2b2f51bb2908fec00 GIT binary patch literal 67014 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 Y-mGjO>zNst85S`xFz~T5GB7Xz01pd@qyPW_ literal 0 HcmV?d00001 diff --git a/tests/TestArchives/Archives/Zip.reduce2.zip b/tests/TestArchives/Archives/Zip.reduce2.zip new file mode 100644 index 0000000000000000000000000000000000000000..c1bb8fdc4a94ab390a742e9cbd76612ed6456ea8 GIT binary patch literal 66505 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

?|T2z#z++^7#MO!z_!= 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 literal 0 HcmV?d00001 diff --git a/tests/TestArchives/Archives/Zip.reduce3.zip b/tests/TestArchives/Archives/Zip.reduce3.zip new file mode 100644 index 0000000000000000000000000000000000000000..41773e57464eb4c87896cc00d2fd70af5a097e37 GIT binary patch literal 66364 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%0A1LXEDF!wYC5D{gZb7jLGaW(>r!y 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

~Q2WL!|?~jQV)8wr)kj8`skimRv1;Dq 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 S%)rdBh=GA&CnF;R0|Nk89Ys?B literal 0 HcmV?d00001 From baf66db9dcb5ec8d8e295f18265c3de956cf868c Mon Sep 17 00:00:00 2001 From: Adam Hathcock Date: Wed, 24 Jul 2024 08:31:44 +0100 Subject: [PATCH 24/65] format --- src/SharpCompress/Common/Zip/ZipFilePart.cs | 11 ++++++++--- tests/SharpCompress.Test/Zip/ZipArchiveTests.cs | 7 ++++++- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/src/SharpCompress/Common/Zip/ZipFilePart.cs b/src/SharpCompress/Common/Zip/ZipFilePart.cs index 5d0a69c3..85b566d9 100644 --- a/src/SharpCompress/Common/Zip/ZipFilePart.cs +++ b/src/SharpCompress/Common/Zip/ZipFilePart.cs @@ -7,12 +7,12 @@ using SharpCompress.Compressors; using SharpCompress.Compressors.BZip2; using SharpCompress.Compressors.Deflate; using SharpCompress.Compressors.Deflate64; +using SharpCompress.Compressors.Explode; using SharpCompress.Compressors.LZMA; using SharpCompress.Compressors.PPMd; +using SharpCompress.Compressors.Reduce; using SharpCompress.Compressors.Shrink; using SharpCompress.Compressors.Xz; -using SharpCompress.Compressors.Reduce; -using SharpCompress.Compressors.Explode; using SharpCompress.IO; using ZstdSharp; @@ -109,7 +109,12 @@ internal abstract class ZipFilePart : FilePart } case ZipCompressionMethod.Explode: { - return new ExplodeStream(stream, Header.CompressedSize, Header.UncompressedSize, Header.Flags); + return new ExplodeStream( + stream, + Header.CompressedSize, + Header.UncompressedSize, + Header.Flags + ); } case ZipCompressionMethod.Deflate: diff --git a/tests/SharpCompress.Test/Zip/ZipArchiveTests.cs b/tests/SharpCompress.Test/Zip/ZipArchiveTests.cs index dfeecadd..34de7422 100644 --- a/tests/SharpCompress.Test/Zip/ZipArchiveTests.cs +++ b/tests/SharpCompress.Test/Zip/ZipArchiveTests.cs @@ -16,7 +16,6 @@ public class ZipArchiveTests : ArchiveTests { public ZipArchiveTests() => UseExtensionInsteadOfNameToVerify = true; - [Fact] public void Zip_ZipX_ArchiveStreamRead() => ArchiveStreamRead("Zip.zipx"); @@ -183,6 +182,7 @@ public class ZipArchiveTests : ArchiveTests UseCaseInsensitiveToVerify = true; ArchiveStreamRead("Zip.shrink.zip"); } + [Fact] public void Zip_Implode_ArchiveStreamRead() { @@ -190,6 +190,7 @@ public class ZipArchiveTests : ArchiveTests UseCaseInsensitiveToVerify = true; ArchiveStreamRead("Zip.implode.zip"); } + [Fact] public void Zip_Reduce1_ArchiveStreamRead() { @@ -197,6 +198,7 @@ public class ZipArchiveTests : ArchiveTests UseCaseInsensitiveToVerify = true; ArchiveStreamRead("Zip.reduce1.zip"); } + [Fact] public void Zip_Reduce2_ArchiveStreamRead() { @@ -204,6 +206,7 @@ public class ZipArchiveTests : ArchiveTests UseCaseInsensitiveToVerify = true; ArchiveStreamRead("Zip.reduce2.zip"); } + [Fact] public void Zip_Reduce3_ArchiveStreamRead() { @@ -211,6 +214,7 @@ public class ZipArchiveTests : ArchiveTests UseCaseInsensitiveToVerify = true; ArchiveStreamRead("Zip.reduce3.zip"); } + [Fact] public void Zip_Reduce4_ArchiveStreamRead() { @@ -218,6 +222,7 @@ public class ZipArchiveTests : ArchiveTests UseCaseInsensitiveToVerify = true; ArchiveStreamRead("Zip.reduce4.zip"); } + [Fact] public void Zip_Random_Write_Remove() { From 2d10df8b87540cab47c4644df10769074b7a5584 Mon Sep 17 00:00:00 2001 From: Dinesh Solanki <15937452+DineshSolanki@users.noreply.github.com> Date: Fri, 26 Jul 2024 00:16:44 +0530 Subject: [PATCH 25/65] Fix #858 - Replaces invalid filename characters Added a method to replace invalid characters in file names with underscores during file extraction. This prevents errors related to invalid file names. --- src/SharpCompress/Common/ExtractionMethods.cs | 1 + src/SharpCompress/Utility.cs | 14 ++++++++++++++ 2 files changed, 15 insertions(+) diff --git a/src/SharpCompress/Common/ExtractionMethods.cs b/src/SharpCompress/Common/ExtractionMethods.cs index 27d41648..799d47b3 100644 --- a/src/SharpCompress/Common/ExtractionMethods.cs +++ b/src/SharpCompress/Common/ExtractionMethods.cs @@ -37,6 +37,7 @@ internal static class ExtractionMethods options ??= new ExtractionOptions() { Overwrite = true }; var file = Path.GetFileName(entry.Key.NotNull("Entry Key is null")).NotNull("File is null"); + file = Utility.ReplaceInvalidFileNameChars(file); if (options.ExtractFullPath) { var folder = Path.GetDirectoryName(entry.Key.NotNull("Entry Key is null")) diff --git a/src/SharpCompress/Utility.cs b/src/SharpCompress/Utility.cs index bcecafb4..47da1fef 100644 --- a/src/SharpCompress/Utility.cs +++ b/src/SharpCompress/Utility.cs @@ -2,6 +2,7 @@ using System; using System.Buffers; using System.Collections.Generic; using System.IO; +using System.Text; using SharpCompress.Readers; namespace SharpCompress; @@ -434,4 +435,17 @@ public static class Utility buffer[offset + 2] = (byte)(number >> 8); buffer[offset + 3] = (byte)number; } + + public static string ReplaceInvalidFileNameChars(string fileName) + { + var invalidChars = new HashSet(Path.GetInvalidFileNameChars()); + var sb = new StringBuilder(fileName.Length); + foreach (var c in fileName) + { + var newChar = invalidChars.Contains(c) ? '_' : c; + sb.Append(newChar); + } + + return sb.ToString(); + } } From 704a0cb35d6b6abecc516b91185f6fb30e21cafd Mon Sep 17 00:00:00 2001 From: Victor Nova Date: Fri, 2 Aug 2024 23:57:25 -0700 Subject: [PATCH 26/65] added support for 7zip SFX archives by handling ReaderOptions.LookForHeader --- src/SharpCompress/Archives/ArchiveFactory.cs | 2 + .../Archives/AutoArchiveFactory.cs | 27 ++++++++++++ .../Archives/SevenZip/SevenZipArchive.cs | 2 +- .../Common/SevenZip/ArchiveReader.cs | 39 ++++++++++++++---- tests/SharpCompress.Test/ArchiveTests.cs | 37 ++++++++++++++--- .../SevenZip/SevenZipArchiveTests.cs | 9 ++++ tests/TestArchives/Archives/7Zip.LZMA2.exe | Bin 0 -> 272971 bytes 7 files changed, 101 insertions(+), 15 deletions(-) create mode 100644 src/SharpCompress/Archives/AutoArchiveFactory.cs create mode 100644 tests/TestArchives/Archives/7Zip.LZMA2.exe diff --git a/src/SharpCompress/Archives/ArchiveFactory.cs b/src/SharpCompress/Archives/ArchiveFactory.cs index 3f479327..02c10699 100644 --- a/src/SharpCompress/Archives/ArchiveFactory.cs +++ b/src/SharpCompress/Archives/ArchiveFactory.cs @@ -239,4 +239,6 @@ public static class ArchiveFactory } } } + + public static IArchiveFactory AutoFactory { get; } = new AutoArchiveFactory(); } diff --git a/src/SharpCompress/Archives/AutoArchiveFactory.cs b/src/SharpCompress/Archives/AutoArchiveFactory.cs new file mode 100644 index 00000000..14038ea1 --- /dev/null +++ b/src/SharpCompress/Archives/AutoArchiveFactory.cs @@ -0,0 +1,27 @@ +using System; +using System.Collections.Generic; +using System.IO; +using SharpCompress.Common; +using SharpCompress.Readers; + +namespace SharpCompress.Archives; + +class AutoArchiveFactory : IArchiveFactory +{ + public string Name => nameof(AutoArchiveFactory); + + public ArchiveType? KnownArchiveType => null; + + public IEnumerable GetSupportedExtensions() => throw new NotSupportedException(); + + public bool IsArchive(Stream stream, string? password = null) => + throw new NotSupportedException(); + + public FileInfo? GetFilePart(int index, FileInfo part1) => throw new NotSupportedException(); + + public IArchive Open(Stream stream, ReaderOptions? readerOptions = null) => + ArchiveFactory.Open(stream, readerOptions); + + public IArchive Open(FileInfo fileInfo, ReaderOptions? readerOptions = null) => + ArchiveFactory.Open(fileInfo, readerOptions); +} diff --git a/src/SharpCompress/Archives/SevenZip/SevenZipArchive.cs b/src/SharpCompress/Archives/SevenZip/SevenZipArchive.cs index ee165982..88a85e96 100644 --- a/src/SharpCompress/Archives/SevenZip/SevenZipArchive.cs +++ b/src/SharpCompress/Archives/SevenZip/SevenZipArchive.cs @@ -163,7 +163,7 @@ public class SevenZipArchive : AbstractArchive([0x37, 0x7A, 0xBC, 0xAF, 0x27, 0x1C]) + ) + { + break; + } + + if (canScan == 0) + { + throw new InvalidFormatException("Unable to find 7z signature"); + } + + canScan--; + stream.Position = ++_streamOrigin; } _stream = stream; diff --git a/tests/SharpCompress.Test/ArchiveTests.cs b/tests/SharpCompress.Test/ArchiveTests.cs index 7d94b29d..29903efe 100644 --- a/tests/SharpCompress.Test/ArchiveTests.cs +++ b/tests/SharpCompress.Test/ArchiveTests.cs @@ -73,27 +73,45 @@ public class ArchiveTests : ReaderTests } } - protected void ArchiveStreamRead(string testArchive, ReaderOptions? readerOptions = null) + protected void ArchiveStreamRead(string testArchive, ReaderOptions? readerOptions = null) => + ArchiveStreamRead(ArchiveFactory.AutoFactory, testArchive, readerOptions); + + protected void ArchiveStreamRead( + IArchiveFactory archiveFactory, + string testArchive, + ReaderOptions? readerOptions = null + ) { testArchive = Path.Combine(TEST_ARCHIVES_PATH, testArchive); - ArchiveStreamRead(readerOptions, testArchive); + ArchiveStreamRead(archiveFactory, readerOptions, testArchive); } protected void ArchiveStreamRead( ReaderOptions? readerOptions = null, params string[] testArchives + ) => ArchiveStreamRead(ArchiveFactory.AutoFactory, readerOptions, testArchives); + + protected void ArchiveStreamRead( + IArchiveFactory archiveFactory, + ReaderOptions? readerOptions = null, + params string[] testArchives ) => ArchiveStreamRead( + archiveFactory, readerOptions, testArchives.Select(x => Path.Combine(TEST_ARCHIVES_PATH, x)) ); - protected void ArchiveStreamRead(ReaderOptions? readerOptions, IEnumerable testArchives) + protected void ArchiveStreamRead( + IArchiveFactory archiveFactory, + ReaderOptions? readerOptions, + IEnumerable testArchives + ) { foreach (var path in testArchives) { using (var stream = NonDisposingStream.Create(File.OpenRead(path), true)) - using (var archive = ArchiveFactory.Open(stream, readerOptions)) + using (var archive = archiveFactory.Open(stream, readerOptions)) { try { @@ -218,10 +236,14 @@ public class ArchiveTests : ReaderTests } } - protected void ArchiveFileRead(string testArchive, ReaderOptions? readerOptions = null) + protected void ArchiveFileRead( + IArchiveFactory archiveFactory, + string testArchive, + ReaderOptions? readerOptions = null + ) { testArchive = Path.Combine(TEST_ARCHIVES_PATH, testArchive); - using (var archive = ArchiveFactory.Open(testArchive, readerOptions)) + using (var archive = archiveFactory.Open(new FileInfo(testArchive), readerOptions)) { foreach (var entry in archive.Entries.Where(entry => !entry.IsDirectory)) { @@ -234,6 +256,9 @@ public class ArchiveTests : ReaderTests VerifyFiles(); } + protected void ArchiveFileRead(string testArchive, ReaderOptions? readerOptions = null) => + ArchiveFileRead(ArchiveFactory.AutoFactory, testArchive, readerOptions); + protected void ArchiveFileSkip( string testArchive, string fileOrder, diff --git a/tests/SharpCompress.Test/SevenZip/SevenZipArchiveTests.cs b/tests/SharpCompress.Test/SevenZip/SevenZipArchiveTests.cs index 32d978a2..544741ef 100644 --- a/tests/SharpCompress.Test/SevenZip/SevenZipArchiveTests.cs +++ b/tests/SharpCompress.Test/SevenZip/SevenZipArchiveTests.cs @@ -4,6 +4,7 @@ using System.Linq; using SharpCompress.Archives; using SharpCompress.Archives.SevenZip; using SharpCompress.Common; +using SharpCompress.Factories; using SharpCompress.Readers; using Xunit; @@ -54,6 +55,14 @@ public class SevenZipArchiveTests : ArchiveTests [Fact] public void SevenZipArchive_LZMA2_PathRead() => ArchiveFileRead("7Zip.LZMA2.7z"); + [Fact] + public void SevenZipArchive_LZMA2_EXE_StreamRead() => + ArchiveStreamRead(new SevenZipFactory(), "7Zip.LZMA2.exe", new() { LookForHeader = true }); + + [Fact] + public void SevenZipArchive_LZMA2_EXE_PathRead() => + ArchiveFileRead(new SevenZipFactory(), "7Zip.LZMA2.exe", new() { LookForHeader = true }); + [Fact] public void SevenZipArchive_LZMA2AES_StreamRead() => ArchiveStreamRead("7Zip.LZMA2.Aes.7z", new ReaderOptions { Password = "testpassword" }); diff --git a/tests/TestArchives/Archives/7Zip.LZMA2.exe b/tests/TestArchives/Archives/7Zip.LZMA2.exe new file mode 100644 index 0000000000000000000000000000000000000000..889c8318e0860ea48c44e69b4cfcf380906c819e GIT binary patch literal 272971 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

|EILC^bcbH)jXlvBdZt?- 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ೖSwRnPD}(9)UiEs~d*XuSRmKch{^0j;+M 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 aRAy#mWQ}DIU|`^B_{7C{zx>i`1_l71xmWW5 literal 0 HcmV?d00001 From df4eab67dc6ecf7777af1af9f3e362fced0b96ee Mon Sep 17 00:00:00 2001 From: Adam Hathcock Date: Thu, 8 Aug 2024 08:41:51 +0100 Subject: [PATCH 27/65] Update csproj to get green marks and update deps --- Directory.Packages.props | 10 +- build/packages.lock.json | 20 +++ src/SharpCompress/SharpCompress.csproj | 6 +- src/SharpCompress/packages.lock.json | 36 ++-- tests/SharpCompress.Test/packages.lock.json | 186 ++++++++++++-------- 5 files changed, 159 insertions(+), 99 deletions(-) diff --git a/Directory.Packages.props b/Directory.Packages.props index e128f52f..09060b11 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -4,15 +4,15 @@ - - + - - + + - + + diff --git a/build/packages.lock.json b/build/packages.lock.json index 8a8fa2c0..08406fdc 100644 --- a/build/packages.lock.json +++ b/build/packages.lock.json @@ -14,11 +14,31 @@ "resolved": "1.1.9", "contentHash": "AfK5+ECWYTP7G3AAdnU8IfVj+QpGjrh9GC2mpdcJzCvtQ4pnerAGwHsxJ9D4/RnhDUz2DSzd951O/lQjQby2Sw==" }, + "Microsoft.SourceLink.GitHub": { + "type": "Direct", + "requested": "[8.0.0, )", + "resolved": "8.0.0", + "contentHash": "G5q7OqtwIyGTkeIOAc3u2ZuV/kicQaec5EaRnc0pIeSnh9LUjj+PYQrJYBURvDt7twGl2PKA7nSN0kz1Zw5bnQ==", + "dependencies": { + "Microsoft.Build.Tasks.Git": "8.0.0", + "Microsoft.SourceLink.Common": "8.0.0" + } + }, "SimpleExec": { "type": "Direct", "requested": "[12.0.0, )", "resolved": "12.0.0", "contentHash": "ptxlWtxC8vM6Y6e3h9ZTxBBkOWnWrm/Sa1HT+2i1xcXY3Hx2hmKDZP5RShPf8Xr9D+ivlrXNy57ktzyH8kyt+Q==" + }, + "Microsoft.Build.Tasks.Git": { + "type": "Transitive", + "resolved": "8.0.0", + "contentHash": "bZKfSIKJRXLTuSzLudMFte/8CempWjVamNUR5eHJizsy+iuOuO/k2gnh7W0dHJmYY0tBf+gUErfluCv5mySAOQ==" + }, + "Microsoft.SourceLink.Common": { + "type": "Transitive", + "resolved": "8.0.0", + "contentHash": "dk9JPxTCIevS75HyEQ0E4OVAFhB2N+V9ShCXf8Q6FkUQZDkgLI12y679Nym1YqsiSysuQskT7Z+6nUf3yab6Vw==" } } } diff --git a/src/SharpCompress/SharpCompress.csproj b/src/SharpCompress/SharpCompress.csproj index cbceba12..9d0ffbc7 100644 --- a/src/SharpCompress/SharpCompress.csproj +++ b/src/SharpCompress/SharpCompress.csproj @@ -24,15 +24,15 @@ latest true README.md + true + true + $(AllowedOutputExtensionsInPackageBuildOutputFolder);.pdb true - - all - diff --git a/src/SharpCompress/packages.lock.json b/src/SharpCompress/packages.lock.json index b06d9c98..d5c6af0b 100644 --- a/src/SharpCompress/packages.lock.json +++ b/src/SharpCompress/packages.lock.json @@ -53,9 +53,9 @@ }, "ZstdSharp.Port": { "type": "Direct", - "requested": "[0.8.0, )", - "resolved": "0.8.0", - "contentHash": "Z62eNBIu8E8YtbqlMy57tK3dV1+m2b9NhPeaYovB5exmLKvrGCqOhJTzrEUH5VyUWU6vwX3c1XHJGhW5HVs8dA==", + "requested": "[0.8.1, )", + "resolved": "0.8.1", + "contentHash": "19tNz33kn2EkyViFXuxfVn338UJaRmkwBphVqP2dVJIYQUQgFrgG5h061mxkRRg1Ax6r+6WOj1FxaFZ5qaWqqg==", "dependencies": { "Microsoft.Bcl.AsyncInterfaces": "5.0.0", "System.Memory": "4.5.5" @@ -152,9 +152,9 @@ }, "ZstdSharp.Port": { "type": "Direct", - "requested": "[0.8.0, )", - "resolved": "0.8.0", - "contentHash": "Z62eNBIu8E8YtbqlMy57tK3dV1+m2b9NhPeaYovB5exmLKvrGCqOhJTzrEUH5VyUWU6vwX3c1XHJGhW5HVs8dA==", + "requested": "[0.8.1, )", + "resolved": "0.8.1", + "contentHash": "19tNz33kn2EkyViFXuxfVn338UJaRmkwBphVqP2dVJIYQUQgFrgG5h061mxkRRg1Ax6r+6WOj1FxaFZ5qaWqqg==", "dependencies": { "Microsoft.Bcl.AsyncInterfaces": "5.0.0", "System.Memory": "4.5.5" @@ -228,9 +228,9 @@ }, "ZstdSharp.Port": { "type": "Direct", - "requested": "[0.8.0, )", - "resolved": "0.8.0", - "contentHash": "Z62eNBIu8E8YtbqlMy57tK3dV1+m2b9NhPeaYovB5exmLKvrGCqOhJTzrEUH5VyUWU6vwX3c1XHJGhW5HVs8dA==", + "requested": "[0.8.1, )", + "resolved": "0.8.1", + "contentHash": "19tNz33kn2EkyViFXuxfVn338UJaRmkwBphVqP2dVJIYQUQgFrgG5h061mxkRRg1Ax6r+6WOj1FxaFZ5qaWqqg==", "dependencies": { "System.Runtime.CompilerServices.Unsafe": "6.0.0" } @@ -285,9 +285,9 @@ }, "ZstdSharp.Port": { "type": "Direct", - "requested": "[0.8.0, )", - "resolved": "0.8.0", - "contentHash": "Z62eNBIu8E8YtbqlMy57tK3dV1+m2b9NhPeaYovB5exmLKvrGCqOhJTzrEUH5VyUWU6vwX3c1XHJGhW5HVs8dA==" + "requested": "[0.8.1, )", + "resolved": "0.8.1", + "contentHash": "19tNz33kn2EkyViFXuxfVn338UJaRmkwBphVqP2dVJIYQUQgFrgG5h061mxkRRg1Ax6r+6WOj1FxaFZ5qaWqqg==" }, "Microsoft.Build.Tasks.Git": { "type": "Transitive", @@ -303,9 +303,9 @@ "net8.0": { "Microsoft.NET.ILLink.Tasks": { "type": "Direct", - "requested": "[8.0.4, )", - "resolved": "8.0.4", - "contentHash": "PZb5nfQ+U19nhnmnR9T1jw+LTmozhuG2eeuzuW5A7DqxD/UXW2ucjmNJqnqOuh8rdPzM3MQXoF8AfFCedJdCUw==" + "requested": "[8.0.7, )", + "resolved": "8.0.7", + "contentHash": "iI52ptEKby2ymQ6B7h4TWbFmm85T4VvLgc/HvS45Yr3lgi4IIFbQtjON3bQbX/Vc94jXNSLvrDOp5Kh7SJyFYQ==" }, "Microsoft.SourceLink.GitHub": { "type": "Direct", @@ -319,9 +319,9 @@ }, "ZstdSharp.Port": { "type": "Direct", - "requested": "[0.8.0, )", - "resolved": "0.8.0", - "contentHash": "Z62eNBIu8E8YtbqlMy57tK3dV1+m2b9NhPeaYovB5exmLKvrGCqOhJTzrEUH5VyUWU6vwX3c1XHJGhW5HVs8dA==" + "requested": "[0.8.1, )", + "resolved": "0.8.1", + "contentHash": "19tNz33kn2EkyViFXuxfVn338UJaRmkwBphVqP2dVJIYQUQgFrgG5h061mxkRRg1Ax6r+6WOj1FxaFZ5qaWqqg==" }, "Microsoft.Build.Tasks.Git": { "type": "Transitive", diff --git a/tests/SharpCompress.Test/packages.lock.json b/tests/SharpCompress.Test/packages.lock.json index baeef64f..7e146431 100644 --- a/tests/SharpCompress.Test/packages.lock.json +++ b/tests/SharpCompress.Test/packages.lock.json @@ -13,11 +13,11 @@ }, "Microsoft.NET.Test.Sdk": { "type": "Direct", - "requested": "[17.9.0, )", - "resolved": "17.9.0", - "contentHash": "7GUNAUbJYn644jzwLm5BD3a2p9C1dmP8Hr6fDPDxgItQk9hBs1Svdxzz07KQ/UphMSmgza9AbijBJGmw5D658A==", + "requested": "[17.10.0, )", + "resolved": "17.10.0", + "contentHash": "0/2HeACkaHEYU3wc83YlcD2Fi4LMtECJjqrtvw0lPi9DCEa35zSPt1j4fuvM8NagjDqJuh1Ja35WcRtn1Um6/A==", "dependencies": { - "Microsoft.CodeCoverage": "17.9.0" + "Microsoft.CodeCoverage": "17.10.0" } }, "Microsoft.NETFramework.ReferenceAssemblies": { @@ -29,24 +29,34 @@ "Microsoft.NETFramework.ReferenceAssemblies.net462": "1.0.3" } }, + "Microsoft.SourceLink.GitHub": { + "type": "Direct", + "requested": "[8.0.0, )", + "resolved": "8.0.0", + "contentHash": "G5q7OqtwIyGTkeIOAc3u2ZuV/kicQaec5EaRnc0pIeSnh9LUjj+PYQrJYBURvDt7twGl2PKA7nSN0kz1Zw5bnQ==", + "dependencies": { + "Microsoft.Build.Tasks.Git": "8.0.0", + "Microsoft.SourceLink.Common": "8.0.0" + } + }, "xunit": { "type": "Direct", - "requested": "[2.7.1, )", - "resolved": "2.7.1", - "contentHash": "9o050yCLzPvHxbrAkaHnI1j+YfPvRw+/ncvKbTfzIhO4JvQA0rPgoICJxXHMkscfgXmLFwZ8107ehnMUVzE23A==", + "requested": "[2.9.0, )", + "resolved": "2.9.0", + "contentHash": "PtU3rZ0ThdmdJqTbK7GkgFf6iBaCR6Q0uvJHznID+XEYk2v6O/b7sRxqnbi3B2gRDXxjTqMkVNayzwsqsFUxRw==", "dependencies": { - "xunit.analyzers": "1.12.0", - "xunit.assert": "2.7.1", - "xunit.core": "[2.7.1]" + "xunit.analyzers": "1.15.0", + "xunit.assert": "2.9.0", + "xunit.core": "[2.9.0]" } }, "xunit.runner.visualstudio": { "type": "Direct", - "requested": "[2.5.8, )", - "resolved": "2.5.8", - "contentHash": "ZJTm71neOfZcUnqdyY0A0Qgcg1162DoOq6+VpCCsOaD9rwCK5alcjOEHeu17sEekzq4qNv3kyelx6lUMsAt/eA==", + "requested": "[2.8.2, )", + "resolved": "2.8.2", + "contentHash": "vm1tbfXhFmjFMUmS4M0J0ASXz3/U5XvXBa6DOQUL3fEz4Vt6YPhv+ESCarx6M6D+9kJkJYZKCNvJMas1+nVfmQ==", "dependencies": { - "Microsoft.TestPlatform.ObjectModel": "17.9.0" + "Microsoft.TestPlatform.ObjectModel": "17.10.0" } }, "Xunit.SkippableFact": { @@ -59,20 +69,30 @@ "xunit.extensibility.execution": "2.4.0" } }, + "Microsoft.Build.Tasks.Git": { + "type": "Transitive", + "resolved": "8.0.0", + "contentHash": "bZKfSIKJRXLTuSzLudMFte/8CempWjVamNUR5eHJizsy+iuOuO/k2gnh7W0dHJmYY0tBf+gUErfluCv5mySAOQ==" + }, "Microsoft.CodeCoverage": { "type": "Transitive", - "resolved": "17.9.0", - "contentHash": "RGD37ZSrratfScYXm7M0HjvxMxZyWZL4jm+XgMZbkIY1UPgjUpbNA/t+WTGj/rC/0Hm9A3IrH3ywbKZkOCnoZA==" + "resolved": "17.10.0", + "contentHash": "yC7oSlnR54XO5kOuHlVOKtxomNNN1BWXX8lK1G2jaPXT9sUok7kCOoA4Pgs0qyFaCtMrNsprztYMeoEGqCm4uA==" }, "Microsoft.NETFramework.ReferenceAssemblies.net462": { "type": "Transitive", "resolved": "1.0.3", "contentHash": "IzAV30z22ESCeQfxP29oVf4qEo8fBGXLXSU6oacv/9Iqe6PzgHDKCaWfwMBak7bSJQM0F5boXWoZS+kChztRIQ==" }, + "Microsoft.SourceLink.Common": { + "type": "Transitive", + "resolved": "8.0.0", + "contentHash": "dk9JPxTCIevS75HyEQ0E4OVAFhB2N+V9ShCXf8Q6FkUQZDkgLI12y679Nym1YqsiSysuQskT7Z+6nUf3yab6Vw==" + }, "Microsoft.TestPlatform.ObjectModel": { "type": "Transitive", - "resolved": "17.9.0", - "contentHash": "1ilw/8vgmjLyKU+2SKXKXaOqpYFJCQfGqGz+x0cosl981VzjrY74Sv6qAJv+neZMZ9ZMxF3ArN6kotaQ4uvEBw==", + "resolved": "17.10.0", + "contentHash": "KkwhjQevuDj0aBRoPLY6OLAhGqbPUEBuKLbaCs0kUVw29qiOYncdORd4mLVJbn9vGZ7/iFGQ/+AoJl0Tu5Umdg==", "dependencies": { "System.Reflection.Metadata": "1.6.0" } @@ -125,37 +145,37 @@ }, "xunit.analyzers": { "type": "Transitive", - "resolved": "1.12.0", - "contentHash": "w23LH3aXade2WXKvXi0oA/uV15fpgUMjsPq1x91iQckzgWApgAiijNHmfFQtqNPm41wfrdbRl7nSJRd0yux/dw==" + "resolved": "1.15.0", + "contentHash": "s+M8K/Rtlgr6CmD7AYQKrNTvT5sh0l0ZKDoZ3Z/ExhlIwfV9mGAMR4f7KqIB7SSK7ZOhqDTgTUMYPmKfmvWUWQ==" }, "xunit.assert": { "type": "Transitive", - "resolved": "2.7.1", - "contentHash": "JqvXS4yX+PtJn5BuqoKkYav7I0g4nXcxRbGTomDwVQjFccOdyfYKpuPOHX/DqrPCcL+MIHrGVdP3bveUXlvdnA==" + "resolved": "2.9.0", + "contentHash": "Z/1pyia//860wEYTKn6Q5dmgikJdRjgE4t5AoxJkK8oTmidzPLEPG574kmm7LFkMLbH6Frwmgb750kcyR+hwoA==" }, "xunit.core": { "type": "Transitive", - "resolved": "2.7.1", - "contentHash": "hcODgS+RXdjmXq0zQzmRbERQgY+bAGGx1bdH3370t/8CTGmIEU2qAc1dQAjIRpARsacR0cj6LLJDUF5BNQNKTQ==", + "resolved": "2.9.0", + "contentHash": "uRaop9tZsZMCaUS4AfbSPGYHtvywWnm8XXFNUqII7ShWyDBgdchY6gyDNgO4AK1Lv/1NNW61Zq63CsDV6oH6Jg==", "dependencies": { - "xunit.extensibility.core": "[2.7.1]", - "xunit.extensibility.execution": "[2.7.1]" + "xunit.extensibility.core": "[2.9.0]", + "xunit.extensibility.execution": "[2.9.0]" } }, "xunit.extensibility.core": { "type": "Transitive", - "resolved": "2.7.1", - "contentHash": "yLX4XlBFkvNYCzf+DEzlNk45KsSlu9W93IJHBmtUP96qZ9XyRYDFlwMj6BCcOhDKVNrZxSM8bqu4F/Qud4ehxA==", + "resolved": "2.9.0", + "contentHash": "zjDEUSxsr6UNij4gIwCgMqQox+oLDPRZ+mubwWLci+SssPBFQD1xeRR4SvgBuXqbE0QXCJ/STVTp+lxiB5NLVA==", "dependencies": { "xunit.abstractions": "2.0.3" } }, "xunit.extensibility.execution": { "type": "Transitive", - "resolved": "2.7.1", - "contentHash": "ei3dKF8agj4UKkJ6KkaZ5/Gcif3if6hBsyzegIQJonZDSKZFvb0AyKtyOhDfggBaXVL5iXZExITdRkfjC95yhw==", + "resolved": "2.9.0", + "contentHash": "5ZTQZvmPLlBw6QzCOwM0KnMsZw6eGjbmC176QHZlcbQoMhGIeGcYzYwn5w9yXxf+4phtplMuVqTpTbFDQh2bqQ==", "dependencies": { - "xunit.extensibility.core": "[2.7.1]" + "xunit.extensibility.core": "[2.9.0]" } }, "sharpcompress": { @@ -164,7 +184,7 @@ "Microsoft.Bcl.AsyncInterfaces": "[8.0.0, )", "System.Memory": "[4.5.5, )", "System.Text.Encoding.CodePages": "[8.0.0, )", - "ZstdSharp.Port": "[0.8.0, )" + "ZstdSharp.Port": "[0.8.1, )" } }, "Microsoft.Bcl.AsyncInterfaces": { @@ -199,9 +219,9 @@ }, "ZstdSharp.Port": { "type": "CentralTransitive", - "requested": "[0.8.0, )", - "resolved": "0.8.0", - "contentHash": "Z62eNBIu8E8YtbqlMy57tK3dV1+m2b9NhPeaYovB5exmLKvrGCqOhJTzrEUH5VyUWU6vwX3c1XHJGhW5HVs8dA==", + "requested": "[0.8.1, )", + "resolved": "0.8.1", + "contentHash": "19tNz33kn2EkyViFXuxfVn338UJaRmkwBphVqP2dVJIYQUQgFrgG5h061mxkRRg1Ax6r+6WOj1FxaFZ5qaWqqg==", "dependencies": { "Microsoft.Bcl.AsyncInterfaces": "5.0.0", "System.Memory": "4.5.5" @@ -220,12 +240,22 @@ }, "Microsoft.NET.Test.Sdk": { "type": "Direct", - "requested": "[17.9.0, )", - "resolved": "17.9.0", - "contentHash": "7GUNAUbJYn644jzwLm5BD3a2p9C1dmP8Hr6fDPDxgItQk9hBs1Svdxzz07KQ/UphMSmgza9AbijBJGmw5D658A==", + "requested": "[17.10.0, )", + "resolved": "17.10.0", + "contentHash": "0/2HeACkaHEYU3wc83YlcD2Fi4LMtECJjqrtvw0lPi9DCEa35zSPt1j4fuvM8NagjDqJuh1Ja35WcRtn1Um6/A==", "dependencies": { - "Microsoft.CodeCoverage": "17.9.0", - "Microsoft.TestPlatform.TestHost": "17.9.0" + "Microsoft.CodeCoverage": "17.10.0", + "Microsoft.TestPlatform.TestHost": "17.10.0" + } + }, + "Microsoft.SourceLink.GitHub": { + "type": "Direct", + "requested": "[8.0.0, )", + "resolved": "8.0.0", + "contentHash": "G5q7OqtwIyGTkeIOAc3u2ZuV/kicQaec5EaRnc0pIeSnh9LUjj+PYQrJYBURvDt7twGl2PKA7nSN0kz1Zw5bnQ==", + "dependencies": { + "Microsoft.Build.Tasks.Git": "8.0.0", + "Microsoft.SourceLink.Common": "8.0.0" } }, "Mono.Posix.NETStandard": { @@ -236,20 +266,20 @@ }, "xunit": { "type": "Direct", - "requested": "[2.7.1, )", - "resolved": "2.7.1", - "contentHash": "9o050yCLzPvHxbrAkaHnI1j+YfPvRw+/ncvKbTfzIhO4JvQA0rPgoICJxXHMkscfgXmLFwZ8107ehnMUVzE23A==", + "requested": "[2.9.0, )", + "resolved": "2.9.0", + "contentHash": "PtU3rZ0ThdmdJqTbK7GkgFf6iBaCR6Q0uvJHznID+XEYk2v6O/b7sRxqnbi3B2gRDXxjTqMkVNayzwsqsFUxRw==", "dependencies": { - "xunit.analyzers": "1.12.0", - "xunit.assert": "2.7.1", - "xunit.core": "[2.7.1]" + "xunit.analyzers": "1.15.0", + "xunit.assert": "2.9.0", + "xunit.core": "[2.9.0]" } }, "xunit.runner.visualstudio": { "type": "Direct", - "requested": "[2.5.8, )", - "resolved": "2.5.8", - "contentHash": "ZJTm71neOfZcUnqdyY0A0Qgcg1162DoOq6+VpCCsOaD9rwCK5alcjOEHeu17sEekzq4qNv3kyelx6lUMsAt/eA==" + "requested": "[2.8.2, )", + "resolved": "2.8.2", + "contentHash": "vm1tbfXhFmjFMUmS4M0J0ASXz3/U5XvXBa6DOQUL3fEz4Vt6YPhv+ESCarx6M6D+9kJkJYZKCNvJMas1+nVfmQ==" }, "Xunit.SkippableFact": { "type": "Direct", @@ -261,25 +291,35 @@ "xunit.extensibility.execution": "2.4.0" } }, + "Microsoft.Build.Tasks.Git": { + "type": "Transitive", + "resolved": "8.0.0", + "contentHash": "bZKfSIKJRXLTuSzLudMFte/8CempWjVamNUR5eHJizsy+iuOuO/k2gnh7W0dHJmYY0tBf+gUErfluCv5mySAOQ==" + }, "Microsoft.CodeCoverage": { "type": "Transitive", - "resolved": "17.9.0", - "contentHash": "RGD37ZSrratfScYXm7M0HjvxMxZyWZL4jm+XgMZbkIY1UPgjUpbNA/t+WTGj/rC/0Hm9A3IrH3ywbKZkOCnoZA==" + "resolved": "17.10.0", + "contentHash": "yC7oSlnR54XO5kOuHlVOKtxomNNN1BWXX8lK1G2jaPXT9sUok7kCOoA4Pgs0qyFaCtMrNsprztYMeoEGqCm4uA==" + }, + "Microsoft.SourceLink.Common": { + "type": "Transitive", + "resolved": "8.0.0", + "contentHash": "dk9JPxTCIevS75HyEQ0E4OVAFhB2N+V9ShCXf8Q6FkUQZDkgLI12y679Nym1YqsiSysuQskT7Z+6nUf3yab6Vw==" }, "Microsoft.TestPlatform.ObjectModel": { "type": "Transitive", - "resolved": "17.9.0", - "contentHash": "1ilw/8vgmjLyKU+2SKXKXaOqpYFJCQfGqGz+x0cosl981VzjrY74Sv6qAJv+neZMZ9ZMxF3ArN6kotaQ4uvEBw==", + "resolved": "17.10.0", + "contentHash": "KkwhjQevuDj0aBRoPLY6OLAhGqbPUEBuKLbaCs0kUVw29qiOYncdORd4mLVJbn9vGZ7/iFGQ/+AoJl0Tu5Umdg==", "dependencies": { "System.Reflection.Metadata": "1.6.0" } }, "Microsoft.TestPlatform.TestHost": { "type": "Transitive", - "resolved": "17.9.0", - "contentHash": "Spmg7Wx49Ya3SxBjyeAR+nQpjMTKZwTwpZ7KyeOTIqI/WHNPnBU4HUvl5kuHPQAwGWqMy4FGZja1HvEwvoaDiA==", + "resolved": "17.10.0", + "contentHash": "LWpMdfqhHvcUkeMCvNYJO8QlPLlYz9XPPb+ZbaXIKhdmjAV0wqTSrTiW5FLaf7RRZT50AQADDOYMOe0HxDxNgA==", "dependencies": { - "Microsoft.TestPlatform.ObjectModel": "17.9.0", + "Microsoft.TestPlatform.ObjectModel": "17.10.0", "Newtonsoft.Json": "13.0.1" } }, @@ -318,50 +358,50 @@ }, "xunit.analyzers": { "type": "Transitive", - "resolved": "1.12.0", - "contentHash": "w23LH3aXade2WXKvXi0oA/uV15fpgUMjsPq1x91iQckzgWApgAiijNHmfFQtqNPm41wfrdbRl7nSJRd0yux/dw==" + "resolved": "1.15.0", + "contentHash": "s+M8K/Rtlgr6CmD7AYQKrNTvT5sh0l0ZKDoZ3Z/ExhlIwfV9mGAMR4f7KqIB7SSK7ZOhqDTgTUMYPmKfmvWUWQ==" }, "xunit.assert": { "type": "Transitive", - "resolved": "2.7.1", - "contentHash": "JqvXS4yX+PtJn5BuqoKkYav7I0g4nXcxRbGTomDwVQjFccOdyfYKpuPOHX/DqrPCcL+MIHrGVdP3bveUXlvdnA==" + "resolved": "2.9.0", + "contentHash": "Z/1pyia//860wEYTKn6Q5dmgikJdRjgE4t5AoxJkK8oTmidzPLEPG574kmm7LFkMLbH6Frwmgb750kcyR+hwoA==" }, "xunit.core": { "type": "Transitive", - "resolved": "2.7.1", - "contentHash": "hcODgS+RXdjmXq0zQzmRbERQgY+bAGGx1bdH3370t/8CTGmIEU2qAc1dQAjIRpARsacR0cj6LLJDUF5BNQNKTQ==", + "resolved": "2.9.0", + "contentHash": "uRaop9tZsZMCaUS4AfbSPGYHtvywWnm8XXFNUqII7ShWyDBgdchY6gyDNgO4AK1Lv/1NNW61Zq63CsDV6oH6Jg==", "dependencies": { - "xunit.extensibility.core": "[2.7.1]", - "xunit.extensibility.execution": "[2.7.1]" + "xunit.extensibility.core": "[2.9.0]", + "xunit.extensibility.execution": "[2.9.0]" } }, "xunit.extensibility.core": { "type": "Transitive", - "resolved": "2.7.1", - "contentHash": "yLX4XlBFkvNYCzf+DEzlNk45KsSlu9W93IJHBmtUP96qZ9XyRYDFlwMj6BCcOhDKVNrZxSM8bqu4F/Qud4ehxA==", + "resolved": "2.9.0", + "contentHash": "zjDEUSxsr6UNij4gIwCgMqQox+oLDPRZ+mubwWLci+SssPBFQD1xeRR4SvgBuXqbE0QXCJ/STVTp+lxiB5NLVA==", "dependencies": { "xunit.abstractions": "2.0.3" } }, "xunit.extensibility.execution": { "type": "Transitive", - "resolved": "2.7.1", - "contentHash": "ei3dKF8agj4UKkJ6KkaZ5/Gcif3if6hBsyzegIQJonZDSKZFvb0AyKtyOhDfggBaXVL5iXZExITdRkfjC95yhw==", + "resolved": "2.9.0", + "contentHash": "5ZTQZvmPLlBw6QzCOwM0KnMsZw6eGjbmC176QHZlcbQoMhGIeGcYzYwn5w9yXxf+4phtplMuVqTpTbFDQh2bqQ==", "dependencies": { - "xunit.extensibility.core": "[2.7.1]" + "xunit.extensibility.core": "[2.9.0]" } }, "sharpcompress": { "type": "Project", "dependencies": { - "ZstdSharp.Port": "[0.8.0, )" + "ZstdSharp.Port": "[0.8.1, )" } }, "ZstdSharp.Port": { "type": "CentralTransitive", - "requested": "[0.8.0, )", - "resolved": "0.8.0", - "contentHash": "Z62eNBIu8E8YtbqlMy57tK3dV1+m2b9NhPeaYovB5exmLKvrGCqOhJTzrEUH5VyUWU6vwX3c1XHJGhW5HVs8dA==" + "requested": "[0.8.1, )", + "resolved": "0.8.1", + "contentHash": "19tNz33kn2EkyViFXuxfVn338UJaRmkwBphVqP2dVJIYQUQgFrgG5h061mxkRRg1Ax6r+6WOj1FxaFZ5qaWqqg==" } } } From 2bedbbfc5486dc2207269769a9e32724a76002d6 Mon Sep 17 00:00:00 2001 From: Twan Date: Wed, 21 Aug 2024 19:06:14 +0200 Subject: [PATCH 28/65] Update FORMATS.md --- FORMATS.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/FORMATS.md b/FORMATS.md index cca190ad..ae3ff700 100644 --- a/FORMATS.md +++ b/FORMATS.md @@ -11,7 +11,8 @@ | Archive Format | Compression Format(s) | Compress/Decompress | Archive API | Reader API | Writer API | | ---------------------- | ------------------------------------------------- | ------------------- | --------------- | ---------- | ------------- | | Rar | Rar | Decompress (1) | RarArchive | RarReader | N/A | -| Zip (2) | None, DEFLATE, Deflate64, BZip2, LZMA/LZMA2, PPMd | Both | ZipArchive | ZipReader | ZipWriter | +| Zip (2) | None, Shrink, Reduce, Implode, DEFLATE, Deflate64,| Both | ZipArchive | ZipReader | ZipWriter | +| | BZip2, LZMA/LZMA2, PPMd | | | | | | Tar | None | Both | TarArchive | TarReader | TarWriter (3) | | Tar.GZip | DEFLATE | Both | TarArchive | TarReader | TarWriter (3) | | Tar.BZip2 | BZip2 | Both | TarArchive | TarReader | TarWriter (3) | From 970a3d7f2a98c281cd35ddeba5e96a29fc31689c Mon Sep 17 00:00:00 2001 From: Twan Date: Wed, 21 Aug 2024 19:08:40 +0200 Subject: [PATCH 29/65] Update FORMATS.md --- FORMATS.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/FORMATS.md b/FORMATS.md index ae3ff700..49cf3660 100644 --- a/FORMATS.md +++ b/FORMATS.md @@ -11,8 +11,8 @@ | Archive Format | Compression Format(s) | Compress/Decompress | Archive API | Reader API | Writer API | | ---------------------- | ------------------------------------------------- | ------------------- | --------------- | ---------- | ------------- | | Rar | Rar | Decompress (1) | RarArchive | RarReader | N/A | -| Zip (2) | None, Shrink, Reduce, Implode, DEFLATE, Deflate64,| Both | ZipArchive | ZipReader | ZipWriter | -| | BZip2, LZMA/LZMA2, PPMd | | | | | +| Zip (2) | None, Shrink, Reduce, Implode, DEFLATE, Deflate64, + BZip2, LZMA/LZMA2, PPMd | Both | ZipArchive | ZipReader | ZipWriter | | Tar | None | Both | TarArchive | TarReader | TarWriter (3) | | Tar.GZip | DEFLATE | Both | TarArchive | TarReader | TarWriter (3) | | Tar.BZip2 | BZip2 | Both | TarArchive | TarReader | TarWriter (3) | From 27091c4f1def88fb32868e918c727e35556040b5 Mon Sep 17 00:00:00 2001 From: Twan Date: Wed, 21 Aug 2024 19:09:14 +0200 Subject: [PATCH 30/65] Update FORMATS.md --- FORMATS.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/FORMATS.md b/FORMATS.md index 49cf3660..eb27ad2f 100644 --- a/FORMATS.md +++ b/FORMATS.md @@ -11,8 +11,7 @@ | Archive Format | Compression Format(s) | Compress/Decompress | Archive API | Reader API | Writer API | | ---------------------- | ------------------------------------------------- | ------------------- | --------------- | ---------- | ------------- | | Rar | Rar | Decompress (1) | RarArchive | RarReader | N/A | -| Zip (2) | None, Shrink, Reduce, Implode, DEFLATE, Deflate64, - BZip2, LZMA/LZMA2, PPMd | Both | ZipArchive | ZipReader | ZipWriter | +| Zip (2) | None, Shrink, Reduce, Implode, DEFLATE, Deflate64, BZip2, LZMA/LZMA2, PPMd | Both | ZipArchive | ZipReader | ZipWriter | | Tar | None | Both | TarArchive | TarReader | TarWriter (3) | | Tar.GZip | DEFLATE | Both | TarArchive | TarReader | TarWriter (3) | | Tar.BZip2 | BZip2 | Both | TarArchive | TarReader | TarWriter (3) | From 6b01a7b08e41787360ab3aac32c02dbd1d1cea24 Mon Sep 17 00:00:00 2001 From: Kiril Karagyozov Date: Thu, 29 Aug 2024 12:11:19 +0300 Subject: [PATCH 31/65] Fix small typo in USAGE.md --- USAGE.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/USAGE.md b/USAGE.md index c96f9c1b..51b93774 100644 --- a/USAGE.md +++ b/USAGE.md @@ -27,7 +27,7 @@ To deal with the "correct" rules as well as the expectations of users, I've deci To be explicit though, consider always using the overloads that use `ReaderOptions` or `WriterOptions` and explicitly set `LeaveStreamOpen` the way you want. -If using Compression Stream classes directly and you don't want the wrapped stream to be closed. Use the `NonDisposingStream` as a wrapped to prevent the stream being disposed. The change in 0.21 simplified a lot even though the usage is a bit more convoluted. +If using Compression Stream classes directly and you don't want the wrapped stream to be closed. Use the `NonDisposingStream` as a wrapper to prevent the stream being disposed. The change in 0.21 simplified a lot even though the usage is a bit more convoluted. ## Samples From 7fe27ac310e35f37df96178b9255d9c7063b3f7a Mon Sep 17 00:00:00 2001 From: Adam Hathcock Date: Mon, 2 Sep 2024 09:09:57 +0100 Subject: [PATCH 32/65] Mark for 0.38 --- src/SharpCompress/SharpCompress.csproj | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/SharpCompress/SharpCompress.csproj b/src/SharpCompress/SharpCompress.csproj index 9d0ffbc7..6b31b2a4 100644 --- a/src/SharpCompress/SharpCompress.csproj +++ b/src/SharpCompress/SharpCompress.csproj @@ -2,9 +2,9 @@ SharpCompress - Pure C# Decompression/Compression en-US - 0.37.2 - 0.37.2 - 0.37.2 + 0.38.0 + 0.38.0 + 0.38.0 Adam Hathcock net462;netstandard2.0;netstandard2.1;net6.0;net8.0 SharpCompress From 5d62196ddee77e44f2e5f590f22c43952f6ab25a Mon Sep 17 00:00:00 2001 From: Morilli <35152647+Morilli@users.noreply.github.com> Date: Wed, 23 Oct 2024 17:01:55 +0200 Subject: [PATCH 33/65] Restore stream position in ArchiveFactory.IsArchive --- src/SharpCompress/Archives/ArchiveFactory.cs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/SharpCompress/Archives/ArchiveFactory.cs b/src/SharpCompress/Archives/ArchiveFactory.cs index 02c10699..b81e2c0e 100644 --- a/src/SharpCompress/Archives/ArchiveFactory.cs +++ b/src/SharpCompress/Archives/ArchiveFactory.cs @@ -189,9 +189,10 @@ public static class ArchiveFactory foreach (var factory in Factory.Factories) { + var isArchive = factory.IsArchive(stream); stream.Position = startPosition; - if (factory.IsArchive(stream, null)) + if (isArchive) { type = factory.KnownArchiveType; return true; From ab5af409996fdde6ea986c738df9eeeeffdeb6d8 Mon Sep 17 00:00:00 2001 From: Robb Pryde Date: Sat, 26 Oct 2024 01:22:07 +0100 Subject: [PATCH 34/65] Fixed bug in zip time header flags, and failing to parse it no longer throws an exception. --- .../Headers/LocalEntryHeaderExtraFactory.cs | 21 +++++++++++++------ src/SharpCompress/Common/Zip/ZipEntry.cs | 19 +++++++++++++++-- 2 files changed, 32 insertions(+), 8 deletions(-) diff --git a/src/SharpCompress/Common/Zip/Headers/LocalEntryHeaderExtraFactory.cs b/src/SharpCompress/Common/Zip/Headers/LocalEntryHeaderExtraFactory.cs index 88e4a187..f90272c4 100644 --- a/src/SharpCompress/Common/Zip/Headers/LocalEntryHeaderExtraFactory.cs +++ b/src/SharpCompress/Common/Zip/Headers/LocalEntryHeaderExtraFactory.cs @@ -166,10 +166,10 @@ internal sealed class UnixTimeExtraField : ExtraData return Tuple.Create(null, null, null); } - var flags = DataBytes[0]; - var isModifiedTimeSpecified = (flags & 0x01) == 1; - var isLastAccessTimeSpecified = (flags & 0x02) == 1; - var isCreationTimeSpecified = (flags & 0x04) == 1; + var flags = (RecordedTimeFlag)DataBytes[0]; + var isModifiedTimeSpecified = flags.HasFlag(RecordedTimeFlag.LastModified); + var isLastAccessTimeSpecified = flags.HasFlag(RecordedTimeFlag.LastAccessed); + var isCreationTimeSpecified = flags.HasFlag(RecordedTimeFlag.Created); var currentIndex = 1; DateTime? modifiedTime = null; DateTime? lastAccessTime = null; @@ -189,7 +189,7 @@ internal sealed class UnixTimeExtraField : ExtraData { if (currentIndex + 4 > DataBytes.Length) { - throw new ArchiveException("Invalid UnicodeExtraTime field"); + return Tuple.Create(null, null, null); } var lastAccessEpochTime = BinaryPrimitives.ReadInt32LittleEndian( @@ -206,7 +206,7 @@ internal sealed class UnixTimeExtraField : ExtraData { if (currentIndex + 4 > DataBytes.Length) { - throw new ArchiveException("Invalid UnicodeExtraTime field"); + return Tuple.Create(null, null, null); } var creationTimeEpochTime = BinaryPrimitives.ReadInt32LittleEndian( @@ -222,6 +222,15 @@ internal sealed class UnixTimeExtraField : ExtraData return Tuple.Create(modifiedTime, lastAccessTime, creationTime); } } + + [Flags] + private enum RecordedTimeFlag + { + None = 0, + LastModified = 1, + LastAccessed = 2, + Created = 4 + } } internal static class LocalEntryHeaderExtraFactory diff --git a/src/SharpCompress/Common/Zip/ZipEntry.cs b/src/SharpCompress/Common/Zip/ZipEntry.cs index 2700e005..05d1d885 100644 --- a/src/SharpCompress/Common/Zip/ZipEntry.cs +++ b/src/SharpCompress/Common/Zip/ZipEntry.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.Linq; using SharpCompress.Common.Zip.Headers; namespace SharpCompress.Common.Zip; @@ -15,10 +16,16 @@ public class ZipEntry : Entry return; } _filePart = filePart; + LastModifiedTime = Utility.DosDateToDateTime( filePart.Header.LastModifiedDate, filePart.Header.LastModifiedTime ); + + var times = filePart.Header.Extra.FirstOrDefault(header => header.GetType() == typeof(UnixTimeExtraField)) as UnixTimeExtraField; + + LastAccessedTime = times?.UnicodeTimes.Item2; + CreatedTime = times?.UnicodeTimes.Item3; } public override CompressionType CompressionType => @@ -51,9 +58,17 @@ public class ZipEntry : Entry public override DateTime? LastModifiedTime { get; } - public override DateTime? CreatedTime => null; + /// + /// + /// The returned time is UTC, not local. + /// + public override DateTime? CreatedTime { get; } - public override DateTime? LastAccessedTime => null; + /// + /// + /// The returned time is UTC, not local. + /// + public override DateTime? LastAccessedTime { get; } public override DateTime? ArchivedTime => null; From 881d2756db13c0968ca1e4c9c92ffb963170ce9d Mon Sep 17 00:00:00 2001 From: Morilli <35152647+Morilli@users.noreply.github.com> Date: Tue, 29 Oct 2024 02:55:43 +0100 Subject: [PATCH 35/65] Add failing test --- tests/SharpCompress.Test/Xz/XZBlockTests.cs | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/tests/SharpCompress.Test/Xz/XZBlockTests.cs b/tests/SharpCompress.Test/Xz/XZBlockTests.cs index 78873590..e129f4ec 100644 --- a/tests/SharpCompress.Test/Xz/XZBlockTests.cs +++ b/tests/SharpCompress.Test/Xz/XZBlockTests.cs @@ -93,4 +93,19 @@ public class XzBlockTests : XzTestsBase sr.ReadToEnd(); Assert.Equal(0L, CompressedIndexedStream.Position % 4L); } + + [Fact] + public void HandlesPaddingInUnalignedBlock() + { + var compressedUnaligned = new byte[Compressed.Length + 1]; + Compressed.CopyTo(compressedUnaligned, 1); + var compressedUnalignedStream = new MemoryStream(compressedUnaligned); + compressedUnalignedStream.Position = 13; + + // Compressed's only block has no padding. + var xzBlock = new XZBlock(compressedUnalignedStream, CheckType.CRC64, 8); + var sr = new StreamReader(xzBlock); + sr.ReadToEnd(); + Assert.Equal(1L, compressedUnalignedStream.Position % 4L); + } } From 9b0e0ee536098c29a7d6f1bd22e4b12d88134884 Mon Sep 17 00:00:00 2001 From: Morilli <35152647+Morilli@users.noreply.github.com> Date: Tue, 29 Oct 2024 02:56:37 +0100 Subject: [PATCH 36/65] Fix padding calculation when initial position % 4 != 0 --- src/SharpCompress/Compressors/Xz/XZBlock.cs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/SharpCompress/Compressors/Xz/XZBlock.cs b/src/SharpCompress/Compressors/Xz/XZBlock.cs index ddd7eaf3..aec35470 100644 --- a/src/SharpCompress/Compressors/Xz/XZBlock.cs +++ b/src/SharpCompress/Compressors/Xz/XZBlock.cs @@ -25,13 +25,14 @@ public sealed class XZBlock : XZReadOnlyStream private bool _endOfStream; private bool _paddingSkipped; private bool _crcChecked; - private ulong _bytesRead; + private readonly long _startPosition; public XZBlock(Stream stream, CheckType checkType, int checkSize) : base(stream) { _checkType = checkType; _checkSize = checkSize; + _startPosition = stream.Position; } public override int Read(byte[] buffer, int offset, int count) @@ -67,13 +68,12 @@ public sealed class XZBlock : XZReadOnlyStream CheckCrc(); } - _bytesRead += (ulong)bytesRead; return bytesRead; } private void SkipPadding() { - var bytes = (int)(BaseStream.Position % 4); + var bytes = (BaseStream.Position - _startPosition) % 4; if (bytes > 0) { var paddingBytes = new byte[4 - bytes]; From 0faa176791939ba9b44c594db9b26b35222322a3 Mon Sep 17 00:00:00 2001 From: Robb Pryde Date: Thu, 31 Oct 2024 17:35:47 +0000 Subject: [PATCH 37/65] Sharpier styling --- src/SharpCompress/Common/Zip/ZipEntry.cs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/SharpCompress/Common/Zip/ZipEntry.cs b/src/SharpCompress/Common/Zip/ZipEntry.cs index 05d1d885..802dd19a 100644 --- a/src/SharpCompress/Common/Zip/ZipEntry.cs +++ b/src/SharpCompress/Common/Zip/ZipEntry.cs @@ -22,7 +22,10 @@ public class ZipEntry : Entry filePart.Header.LastModifiedTime ); - var times = filePart.Header.Extra.FirstOrDefault(header => header.GetType() == typeof(UnixTimeExtraField)) as UnixTimeExtraField; + var times = + filePart.Header.Extra.FirstOrDefault(header => + header.GetType() == typeof(UnixTimeExtraField) + ) as UnixTimeExtraField; LastAccessedTime = times?.UnicodeTimes.Item2; CreatedTime = times?.UnicodeTimes.Item3; From f8e8273d39698ca91e324b07a0b020bc42f72935 Mon Sep 17 00:00:00 2001 From: YoshiRulz Date: Thu, 19 Dec 2024 00:32:23 +1000 Subject: [PATCH 38/65] Move utility classes to new namespace --- src/SharpCompress/BufferPool.cs | 2 +- src/SharpCompress/LazyReadOnlyCollection.cs | 2 +- src/SharpCompress/NotNullExtensions.cs | 2 +- src/SharpCompress/ReadOnlyCollection.cs | 2 +- src/SharpCompress/Utility.cs | 3 ++- tests/SharpCompress.Test/TestBase.cs | 1 + 6 files changed, 7 insertions(+), 5 deletions(-) diff --git a/src/SharpCompress/BufferPool.cs b/src/SharpCompress/BufferPool.cs index b11dbe6f..895edc86 100644 --- a/src/SharpCompress/BufferPool.cs +++ b/src/SharpCompress/BufferPool.cs @@ -1,6 +1,6 @@ using System.Buffers; -namespace SharpCompress; +namespace SharpCompress.Helpers; internal static class BufferPool { diff --git a/src/SharpCompress/LazyReadOnlyCollection.cs b/src/SharpCompress/LazyReadOnlyCollection.cs index cc9cb3fd..9c1b35eb 100644 --- a/src/SharpCompress/LazyReadOnlyCollection.cs +++ b/src/SharpCompress/LazyReadOnlyCollection.cs @@ -4,7 +4,7 @@ using System; using System.Collections; using System.Collections.Generic; -namespace SharpCompress; +namespace SharpCompress.Helpers; internal sealed class LazyReadOnlyCollection : ICollection { diff --git a/src/SharpCompress/NotNullExtensions.cs b/src/SharpCompress/NotNullExtensions.cs index 88e95c41..7342bd7b 100644 --- a/src/SharpCompress/NotNullExtensions.cs +++ b/src/SharpCompress/NotNullExtensions.cs @@ -4,7 +4,7 @@ using System.Diagnostics.CodeAnalysis; using System.Linq; using System.Runtime.CompilerServices; -namespace SharpCompress; +namespace SharpCompress.Helpers; public static class NotNullExtensions { diff --git a/src/SharpCompress/ReadOnlyCollection.cs b/src/SharpCompress/ReadOnlyCollection.cs index 745a59aa..4f8c0bcc 100644 --- a/src/SharpCompress/ReadOnlyCollection.cs +++ b/src/SharpCompress/ReadOnlyCollection.cs @@ -2,7 +2,7 @@ using System; using System.Collections; using System.Collections.Generic; -namespace SharpCompress; +namespace SharpCompress.Helpers; public class ReadOnlyCollection : ICollection { diff --git a/src/SharpCompress/Utility.cs b/src/SharpCompress/Utility.cs index 47da1fef..ff85abe2 100644 --- a/src/SharpCompress/Utility.cs +++ b/src/SharpCompress/Utility.cs @@ -1,3 +1,4 @@ +global using SharpCompress.Helpers; using System; using System.Buffers; using System.Collections.Generic; @@ -5,7 +6,7 @@ using System.IO; using System.Text; using SharpCompress.Readers; -namespace SharpCompress; +namespace SharpCompress.Helpers; [CLSCompliant(false)] public static class Utility diff --git a/tests/SharpCompress.Test/TestBase.cs b/tests/SharpCompress.Test/TestBase.cs index 184e6442..f9cfb8a3 100644 --- a/tests/SharpCompress.Test/TestBase.cs +++ b/tests/SharpCompress.Test/TestBase.cs @@ -1,3 +1,4 @@ +global using SharpCompress.Helpers; using System; using System.Collections.Generic; using System.IO; From e4920255f0c66e61783b3a69912f437e194b186f Mon Sep 17 00:00:00 2001 From: YoshiRulz Date: Thu, 19 Dec 2024 00:39:13 +1000 Subject: [PATCH 39/65] Replace `ReadOnlyCollection` with the one in the BCL I changed the param type of the helper, but the stronger constraint didn't seem to matter in practice --- .../Archives/Rar/FileInfoRarArchiveVolume.cs | 1 + src/SharpCompress/ReadOnlyCollection.cs | 30 ------------------- src/SharpCompress/Utility.cs | 3 +- 3 files changed, 3 insertions(+), 31 deletions(-) delete mode 100644 src/SharpCompress/ReadOnlyCollection.cs diff --git a/src/SharpCompress/Archives/Rar/FileInfoRarArchiveVolume.cs b/src/SharpCompress/Archives/Rar/FileInfoRarArchiveVolume.cs index 6d9b44fd..65f31d01 100644 --- a/src/SharpCompress/Archives/Rar/FileInfoRarArchiveVolume.cs +++ b/src/SharpCompress/Archives/Rar/FileInfoRarArchiveVolume.cs @@ -1,4 +1,5 @@ using System.Collections.Generic; +using System.Collections.ObjectModel; using System.IO; using System.Linq; using SharpCompress.Common.Rar; diff --git a/src/SharpCompress/ReadOnlyCollection.cs b/src/SharpCompress/ReadOnlyCollection.cs deleted file mode 100644 index 4f8c0bcc..00000000 --- a/src/SharpCompress/ReadOnlyCollection.cs +++ /dev/null @@ -1,30 +0,0 @@ -using System; -using System.Collections; -using System.Collections.Generic; - -namespace SharpCompress.Helpers; - -public class ReadOnlyCollection : ICollection -{ - private readonly ICollection collection; - - public ReadOnlyCollection(ICollection collection) => this.collection = collection; - - public void Add(T item) => throw new NotSupportedException(); - - public void Clear() => throw new NotSupportedException(); - - public bool Contains(T item) => collection.Contains(item); - - public void CopyTo(T[] array, int arrayIndex) => collection.CopyTo(array, arrayIndex); - - public int Count => collection.Count; - - public bool IsReadOnly => true; - - public bool Remove(T item) => throw new NotSupportedException(); - - public IEnumerator GetEnumerator() => collection.GetEnumerator(); - - IEnumerator IEnumerable.GetEnumerator() => throw new NotSupportedException(); -} diff --git a/src/SharpCompress/Utility.cs b/src/SharpCompress/Utility.cs index ff85abe2..6a6aeee7 100644 --- a/src/SharpCompress/Utility.cs +++ b/src/SharpCompress/Utility.cs @@ -2,6 +2,7 @@ global using SharpCompress.Helpers; using System; using System.Buffers; using System.Collections.Generic; +using System.Collections.ObjectModel; using System.IO; using System.Text; using SharpCompress.Readers; @@ -11,7 +12,7 @@ namespace SharpCompress.Helpers; [CLSCompliant(false)] public static class Utility { - public static ReadOnlyCollection ToReadOnly(this ICollection items) => new(items); + public static ReadOnlyCollection ToReadOnly(this IList items) => new(items); ///

/// Performs an unsigned bitwise right shift with the specified number From f51bdd56aa2247ffc84a64fb835ce770224f40f2 Mon Sep 17 00:00:00 2001 From: Morilli <35152647+Morilli@users.noreply.github.com> Date: Thu, 19 Dec 2024 20:41:00 +0100 Subject: [PATCH 40/65] expose Position getter in ForwardOnlyStream --- tests/SharpCompress.Test/Mocks/ForwardOnlyStream.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/SharpCompress.Test/Mocks/ForwardOnlyStream.cs b/tests/SharpCompress.Test/Mocks/ForwardOnlyStream.cs index 180b8416..ae91533c 100644 --- a/tests/SharpCompress.Test/Mocks/ForwardOnlyStream.cs +++ b/tests/SharpCompress.Test/Mocks/ForwardOnlyStream.cs @@ -31,7 +31,7 @@ public class ForwardOnlyStream(Stream stream) : Stream public override long Position { - get => throw new NotSupportedException(); + get => stream.Position; set => throw new NotSupportedException(); } From f8e033e56002396b404845aa2d8f70512eeab7bf Mon Sep 17 00:00:00 2001 From: majorro Date: Sun, 12 Jan 2025 15:36:53 +0300 Subject: [PATCH 41/65] add explicit System.Buffers, remove redundant code --- Directory.Packages.props | 3 +- src/SharpCompress/BufferPool.cs | 33 ------------ .../Compressors/Rar/RarStream.cs | 9 ++-- src/SharpCompress/SharpCompress.csproj | 1 + src/SharpCompress/packages.lock.json | 51 ++++++++++++------- tests/SharpCompress.Test/packages.lock.json | 11 +++- 6 files changed, 50 insertions(+), 58 deletions(-) delete mode 100644 src/SharpCompress/BufferPool.cs diff --git a/Directory.Packages.props b/Directory.Packages.props index 09060b11..498bf1b5 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -7,6 +7,7 @@ + @@ -15,4 +16,4 @@ - + \ No newline at end of file diff --git a/src/SharpCompress/BufferPool.cs b/src/SharpCompress/BufferPool.cs deleted file mode 100644 index 895edc86..00000000 --- a/src/SharpCompress/BufferPool.cs +++ /dev/null @@ -1,33 +0,0 @@ -using System.Buffers; - -namespace SharpCompress.Helpers; - -internal static class BufferPool -{ - /// - /// gets a buffer from the pool - /// - /// size of the buffer - /// the buffer - public static byte[] Rent(int bufferSize) - { -#if NETCOREAPP || NETSTANDARD2_1_OR_GREATER - return ArrayPool.Shared.Rent(bufferSize); -#else - return new byte[bufferSize]; -#endif - } - - /// - /// returns a buffer to the pool - /// - /// the buffer to return - public static void Return(byte[] buffer) - { -#if NETCOREAPP || NETSTANDARD2_1_OR_GREATER - ArrayPool.Shared.Return(buffer); -#else - // no-op -#endif - } -} diff --git a/src/SharpCompress/Compressors/Rar/RarStream.cs b/src/SharpCompress/Compressors/Rar/RarStream.cs index bf5d3209..073fcaa0 100644 --- a/src/SharpCompress/Compressors/Rar/RarStream.cs +++ b/src/SharpCompress/Compressors/Rar/RarStream.cs @@ -1,6 +1,7 @@ #nullable disable using System; +using System.Buffers; using System.IO; using SharpCompress.Common.Rar.Headers; @@ -14,7 +15,7 @@ internal class RarStream : Stream private bool fetch; - private byte[] tmpBuffer = BufferPool.Rent(65536); + private byte[] tmpBuffer = ArrayPool.Shared.Rent(65536); private int tmpOffset; private int tmpCount; @@ -42,7 +43,7 @@ internal class RarStream : Stream { if (disposing) { - BufferPool.Return(this.tmpBuffer); + ArrayPool.Shared.Return(this.tmpBuffer); this.tmpBuffer = null; } isDisposed = true; @@ -143,11 +144,11 @@ internal class RarStream : Stream this.tmpBuffer.Length * 2 > this.tmpCount + count ? this.tmpBuffer.Length * 2 : this.tmpCount + count; - var newBuffer = BufferPool.Rent(newLength); + var newBuffer = ArrayPool.Shared.Rent(newLength); Buffer.BlockCopy(this.tmpBuffer, 0, newBuffer, 0, this.tmpCount); var oldBuffer = this.tmpBuffer; this.tmpBuffer = newBuffer; - BufferPool.Return(oldBuffer); + ArrayPool.Shared.Return(oldBuffer); } } } diff --git a/src/SharpCompress/SharpCompress.csproj b/src/SharpCompress/SharpCompress.csproj index 6b31b2a4..4b4909b7 100644 --- a/src/SharpCompress/SharpCompress.csproj +++ b/src/SharpCompress/SharpCompress.csproj @@ -33,6 +33,7 @@ true + diff --git a/src/SharpCompress/packages.lock.json b/src/SharpCompress/packages.lock.json index d5c6af0b..3e2da73d 100644 --- a/src/SharpCompress/packages.lock.json +++ b/src/SharpCompress/packages.lock.json @@ -30,6 +30,12 @@ "Microsoft.SourceLink.Common": "8.0.0" } }, + "System.Buffers": { + "type": "Direct", + "requested": "[4.6.0, )", + "resolved": "4.6.0", + "contentHash": "lN6tZi7Q46zFzAbRYXTIvfXcyvQQgxnY7Xm6C6xQ9784dEL1amjM6S6Iw4ZpsvesAKnRVsM4scrDQaDqSClkjA==" + }, "System.Memory": { "type": "Direct", "requested": "[4.5.5, )", @@ -76,11 +82,6 @@ "resolved": "8.0.0", "contentHash": "dk9JPxTCIevS75HyEQ0E4OVAFhB2N+V9ShCXf8Q6FkUQZDkgLI12y679Nym1YqsiSysuQskT7Z+6nUf3yab6Vw==" }, - "System.Buffers": { - "type": "Transitive", - "resolved": "4.5.1", - "contentHash": "Rw7ijyl1qqRS0YQD/WycNst8hUUMgrMH4FCn1nNm27M4VxchZ1js3fVjQaANHO5f3sN4isvP4a+Met9Y4YomAg==" - }, "System.Numerics.Vectors": { "type": "Transitive", "resolved": "4.5.0", @@ -129,6 +130,12 @@ "Microsoft.NETCore.Platforms": "1.1.0" } }, + "System.Buffers": { + "type": "Direct", + "requested": "[4.6.0, )", + "resolved": "4.6.0", + "contentHash": "lN6tZi7Q46zFzAbRYXTIvfXcyvQQgxnY7Xm6C6xQ9784dEL1amjM6S6Iw4ZpsvesAKnRVsM4scrDQaDqSClkjA==" + }, "System.Memory": { "type": "Direct", "requested": "[4.5.5, )", @@ -175,11 +182,6 @@ "resolved": "8.0.0", "contentHash": "dk9JPxTCIevS75HyEQ0E4OVAFhB2N+V9ShCXf8Q6FkUQZDkgLI12y679Nym1YqsiSysuQskT7Z+6nUf3yab6Vw==" }, - "System.Buffers": { - "type": "Transitive", - "resolved": "4.5.1", - "contentHash": "Rw7ijyl1qqRS0YQD/WycNst8hUUMgrMH4FCn1nNm27M4VxchZ1js3fVjQaANHO5f3sN4isvP4a+Met9Y4YomAg==" - }, "System.Numerics.Vectors": { "type": "Transitive", "resolved": "4.4.0", @@ -216,6 +218,12 @@ "Microsoft.SourceLink.Common": "8.0.0" } }, + "System.Buffers": { + "type": "Direct", + "requested": "[4.6.0, )", + "resolved": "4.6.0", + "contentHash": "lN6tZi7Q46zFzAbRYXTIvfXcyvQQgxnY7Xm6C6xQ9784dEL1amjM6S6Iw4ZpsvesAKnRVsM4scrDQaDqSClkjA==" + }, "System.Text.Encoding.CodePages": { "type": "Direct", "requested": "[8.0.0, )", @@ -245,11 +253,6 @@ "resolved": "8.0.0", "contentHash": "dk9JPxTCIevS75HyEQ0E4OVAFhB2N+V9ShCXf8Q6FkUQZDkgLI12y679Nym1YqsiSysuQskT7Z+6nUf3yab6Vw==" }, - "System.Buffers": { - "type": "Transitive", - "resolved": "4.5.1", - "contentHash": "Rw7ijyl1qqRS0YQD/WycNst8hUUMgrMH4FCn1nNm27M4VxchZ1js3fVjQaANHO5f3sN4isvP4a+Met9Y4YomAg==" - }, "System.Numerics.Vectors": { "type": "Transitive", "resolved": "4.4.0", @@ -283,6 +286,12 @@ "Microsoft.SourceLink.Common": "8.0.0" } }, + "System.Buffers": { + "type": "Direct", + "requested": "[4.6.0, )", + "resolved": "4.6.0", + "contentHash": "lN6tZi7Q46zFzAbRYXTIvfXcyvQQgxnY7Xm6C6xQ9784dEL1amjM6S6Iw4ZpsvesAKnRVsM4scrDQaDqSClkjA==" + }, "ZstdSharp.Port": { "type": "Direct", "requested": "[0.8.1, )", @@ -303,9 +312,9 @@ "net8.0": { "Microsoft.NET.ILLink.Tasks": { "type": "Direct", - "requested": "[8.0.7, )", - "resolved": "8.0.7", - "contentHash": "iI52ptEKby2ymQ6B7h4TWbFmm85T4VvLgc/HvS45Yr3lgi4IIFbQtjON3bQbX/Vc94jXNSLvrDOp5Kh7SJyFYQ==" + "requested": "[8.0.0, )", + "resolved": "8.0.0", + "contentHash": "B3etT5XQ2nlWkZGO2m/ytDYrOmSsQG1XNBaM6ZYlX5Ch/tDrMFadr0/mK6gjZwaQc55g+5+WZMw4Cz3m8VEF7g==" }, "Microsoft.SourceLink.GitHub": { "type": "Direct", @@ -317,6 +326,12 @@ "Microsoft.SourceLink.Common": "8.0.0" } }, + "System.Buffers": { + "type": "Direct", + "requested": "[4.6.0, )", + "resolved": "4.6.0", + "contentHash": "lN6tZi7Q46zFzAbRYXTIvfXcyvQQgxnY7Xm6C6xQ9784dEL1amjM6S6Iw4ZpsvesAKnRVsM4scrDQaDqSClkjA==" + }, "ZstdSharp.Port": { "type": "Direct", "requested": "[0.8.1, )", diff --git a/tests/SharpCompress.Test/packages.lock.json b/tests/SharpCompress.Test/packages.lock.json index 7e146431..d9f5c1eb 100644 --- a/tests/SharpCompress.Test/packages.lock.json +++ b/tests/SharpCompress.Test/packages.lock.json @@ -99,8 +99,8 @@ }, "System.Buffers": { "type": "Transitive", - "resolved": "4.5.1", - "contentHash": "Rw7ijyl1qqRS0YQD/WycNst8hUUMgrMH4FCn1nNm27M4VxchZ1js3fVjQaANHO5f3sN4isvP4a+Met9Y4YomAg==" + "resolved": "4.6.0", + "contentHash": "lN6tZi7Q46zFzAbRYXTIvfXcyvQQgxnY7Xm6C6xQ9784dEL1amjM6S6Iw4ZpsvesAKnRVsM4scrDQaDqSClkjA==" }, "System.Collections.Immutable": { "type": "Transitive", @@ -182,6 +182,7 @@ "type": "Project", "dependencies": { "Microsoft.Bcl.AsyncInterfaces": "[8.0.0, )", + "System.Buffers": "[4.6.0, )", "System.Memory": "[4.5.5, )", "System.Text.Encoding.CodePages": "[8.0.0, )", "ZstdSharp.Port": "[0.8.1, )" @@ -328,6 +329,11 @@ "resolved": "13.0.1", "contentHash": "ppPFpBcvxdsfUonNcvITKqLl3bqxWbDCZIzDWHzjpdAHRFfZe0Dw9HmA0+za13IdyrgJwpkDTDA9fHaxOrt20A==" }, + "System.Buffers": { + "type": "Transitive", + "resolved": "4.6.0", + "contentHash": "lN6tZi7Q46zFzAbRYXTIvfXcyvQQgxnY7Xm6C6xQ9784dEL1amjM6S6Iw4ZpsvesAKnRVsM4scrDQaDqSClkjA==" + }, "System.Configuration.ConfigurationManager": { "type": "Transitive", "resolved": "4.4.0", @@ -394,6 +400,7 @@ "sharpcompress": { "type": "Project", "dependencies": { + "System.Buffers": "[4.6.0, )", "ZstdSharp.Port": "[0.8.1, )" } }, From 44998a2a2b531ca533d7b188fa6e5eaf0ebe85cb Mon Sep 17 00:00:00 2001 From: majorro Date: Sun, 12 Jan 2025 16:01:59 +0300 Subject: [PATCH 42/65] pooled window for rar unpackv1 --- src/SharpCompress/Archives/Rar/RarArchive.cs | 18 +++++++++++++-- .../Compressors/Rar/UnpackV1/Unpack.cs | 23 +++++++++++++++---- src/SharpCompress/Readers/AbstractReader.cs | 2 +- src/SharpCompress/Readers/Rar/RarReader.cs | 18 +++++++++++++-- 4 files changed, 51 insertions(+), 10 deletions(-) diff --git a/src/SharpCompress/Archives/Rar/RarArchive.cs b/src/SharpCompress/Archives/Rar/RarArchive.cs index a05ad417..b9c1bfde 100644 --- a/src/SharpCompress/Archives/Rar/RarArchive.cs +++ b/src/SharpCompress/Archives/Rar/RarArchive.cs @@ -14,8 +14,8 @@ namespace SharpCompress.Archives.Rar; public class RarArchive : AbstractArchive { - internal Lazy UnpackV2017 { get; } = - new(() => new Compressors.Rar.UnpackV2017.Unpack()); + private bool _disposed; + internal Lazy UnpackV2017 { get; } = new(() => new Compressors.Rar.UnpackV2017.Unpack()); internal Lazy UnpackV1 { get; } = new(() => new Compressors.Rar.UnpackV1.Unpack()); /// @@ -25,6 +25,20 @@ public class RarArchive : AbstractArchive private RarArchive(SourceStream sourceStream) : base(ArchiveType.Rar, sourceStream) { } + public override void Dispose() + { + if (!_disposed) + { + if (UnpackV1.IsValueCreated && UnpackV1.Value is IDisposable unpackV1) + { + unpackV1.Dispose(); + } + + _disposed = true; + base.Dispose(); + } + } + protected override IEnumerable LoadEntries(IEnumerable volumes) => RarArchiveEntryFactory.GetEntries(this, volumes, ReaderOptions); diff --git a/src/SharpCompress/Compressors/Rar/UnpackV1/Unpack.cs b/src/SharpCompress/Compressors/Rar/UnpackV1/Unpack.cs index e6d4153d..e9891d99 100644 --- a/src/SharpCompress/Compressors/Rar/UnpackV1/Unpack.cs +++ b/src/SharpCompress/Compressors/Rar/UnpackV1/Unpack.cs @@ -1,6 +1,7 @@ #nullable disable using System; +using System.Buffers; using System.Collections.Generic; using System.IO; using SharpCompress.Common; @@ -12,14 +13,27 @@ using SharpCompress.Compressors.Rar.VM; namespace SharpCompress.Compressors.Rar.UnpackV1; -internal sealed partial class Unpack : BitInput, IRarUnpack +internal sealed partial class Unpack : BitInput, IRarUnpack, IDisposable { private readonly BitInput Inp; + private bool disposed; public Unpack() => // to ease in porting Unpack50.cs Inp = this; + public void Dispose() + { + if (!disposed) + { + if (!externalWindow) + { + ArrayPool.Shared.Return(window); + } + disposed = true; + } + } + public bool FileExtracted { get; private set; } public long DestSize @@ -74,7 +88,7 @@ internal sealed partial class Unpack : BitInput, IRarUnpack private BlockTypes unpBlockType; - //private bool externalWindow; + private bool externalWindow; private long writtenFileSize; @@ -113,13 +127,12 @@ internal sealed partial class Unpack : BitInput, IRarUnpack { if (window is null) { - this.window = new byte[PackDef.MAXWINSIZE]; + this.window = ArrayPool.Shared.Rent(PackDef.MAXWINSIZE); } else { this.window = window; - - //externalWindow = true; + externalWindow = true; } inAddr = 0; UnpInitData(false); diff --git a/src/SharpCompress/Readers/AbstractReader.cs b/src/SharpCompress/Readers/AbstractReader.cs index b36acd53..96ac0a58 100644 --- a/src/SharpCompress/Readers/AbstractReader.cs +++ b/src/SharpCompress/Readers/AbstractReader.cs @@ -44,7 +44,7 @@ public abstract class AbstractReader : IReader, IReaderExtracti #region IDisposable Members - public void Dispose() + public virtual void Dispose() { _entriesForCurrentReadStream?.Dispose(); Volume?.Dispose(); diff --git a/src/SharpCompress/Readers/Rar/RarReader.cs b/src/SharpCompress/Readers/Rar/RarReader.cs index 2398cfac..a9078cae 100644 --- a/src/SharpCompress/Readers/Rar/RarReader.cs +++ b/src/SharpCompress/Readers/Rar/RarReader.cs @@ -13,14 +13,28 @@ namespace SharpCompress.Readers.Rar; /// public abstract class RarReader : AbstractReader { + private bool _disposed; private RarVolume? volume; - private Lazy UnpackV2017 { get; } = - new(() => new Compressors.Rar.UnpackV2017.Unpack()); + private Lazy UnpackV2017 { get; } = new(() => new Compressors.Rar.UnpackV2017.Unpack()); private Lazy UnpackV1 { get; } = new(() => new Compressors.Rar.UnpackV1.Unpack()); internal RarReader(ReaderOptions options) : base(options, ArchiveType.Rar) { } + public override void Dispose() + { + if (!_disposed) + { + if (UnpackV1.IsValueCreated && UnpackV1.Value is IDisposable unpackV1) + { + unpackV1.Dispose(); + } + + _disposed = true; + base.Dispose(); + } + } + protected abstract void ValidateArchive(RarVolume archive); public override RarVolume? Volume => volume; From 10e0562a82242b9c443b9454f7773828714e8713 Mon Sep 17 00:00:00 2001 From: majorro Date: Sun, 12 Jan 2025 16:02:49 +0300 Subject: [PATCH 43/65] stackalloc rar unpackv1 --- .../Compressors/Rar/UnpackV1/Unpack.cs | 23 +++++++------------ 1 file changed, 8 insertions(+), 15 deletions(-) diff --git a/src/SharpCompress/Compressors/Rar/UnpackV1/Unpack.cs b/src/SharpCompress/Compressors/Rar/UnpackV1/Unpack.cs index e9891d99..be55b7bb 100644 --- a/src/SharpCompress/Compressors/Rar/UnpackV1/Unpack.cs +++ b/src/SharpCompress/Compressors/Rar/UnpackV1/Unpack.cs @@ -188,31 +188,24 @@ internal sealed partial class Unpack : BitInput, IRarUnpack, IDisposable private void UnstoreFile() { - var buffer = new byte[0x10000]; - while (true) + Span buffer = stackalloc byte[(int)Math.Min(0x10000, destUnpSize)]; + do { - var code = readStream.Read(buffer, 0, (int)Math.Min(buffer.Length, destUnpSize)); + var code = readStream.Read(buffer); if (code == 0 || code == -1) { break; } code = code < destUnpSize ? code : (int)destUnpSize; - writeStream.Write(buffer, 0, code); - if (destUnpSize >= 0) - { - destUnpSize -= code; - } - if (suspended) - { - return; - } - } + writeStream.Write(buffer.Slice(0, code)); + destUnpSize -= code; + } while (!suspended && destUnpSize > 0); } private void Unpack29(bool solid) { - var DDecode = new int[PackDef.DC]; - var DBits = new byte[PackDef.DC]; + Span DDecode = stackalloc int[PackDef.DC]; + Span DBits = stackalloc byte[PackDef.DC]; int Bits; From ca0a6ab72c82189fc9160330dee1cd28be2a9566 Mon Sep 17 00:00:00 2001 From: majorro Date: Sun, 12 Jan 2025 16:38:30 +0300 Subject: [PATCH 44/65] rollback ILLink.Tasks downgrade --- src/SharpCompress/packages.lock.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/SharpCompress/packages.lock.json b/src/SharpCompress/packages.lock.json index 3e2da73d..5b33071a 100644 --- a/src/SharpCompress/packages.lock.json +++ b/src/SharpCompress/packages.lock.json @@ -312,9 +312,9 @@ "net8.0": { "Microsoft.NET.ILLink.Tasks": { "type": "Direct", - "requested": "[8.0.0, )", - "resolved": "8.0.0", - "contentHash": "B3etT5XQ2nlWkZGO2m/ytDYrOmSsQG1XNBaM6ZYlX5Ch/tDrMFadr0/mK6gjZwaQc55g+5+WZMw4Cz3m8VEF7g==" + "requested": "[8.0.7, )", + "resolved": "8.0.7", + "contentHash": "iI52ptEKby2ymQ6B7h4TWbFmm85T4VvLgc/HvS45Yr3lgi4IIFbQtjON3bQbX/Vc94jXNSLvrDOp5Kh7SJyFYQ==" }, "Microsoft.SourceLink.GitHub": { "type": "Direct", @@ -350,4 +350,4 @@ } } } -} \ No newline at end of file +} From a070493fbab0fe75e397e75bf7c0fd3ff18b75ed Mon Sep 17 00:00:00 2001 From: majorro Date: Mon, 13 Jan 2025 23:26:49 +0300 Subject: [PATCH 45/65] window null checks --- src/SharpCompress/Compressors/Rar/UnpackV1/Unpack.cs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/SharpCompress/Compressors/Rar/UnpackV1/Unpack.cs b/src/SharpCompress/Compressors/Rar/UnpackV1/Unpack.cs index be55b7bb..6cadcede 100644 --- a/src/SharpCompress/Compressors/Rar/UnpackV1/Unpack.cs +++ b/src/SharpCompress/Compressors/Rar/UnpackV1/Unpack.cs @@ -29,6 +29,7 @@ internal sealed partial class Unpack : BitInput, IRarUnpack, IDisposable if (!externalWindow) { ArrayPool.Shared.Return(window); + window = null; } disposed = true; } @@ -125,11 +126,11 @@ internal sealed partial class Unpack : BitInput, IRarUnpack, IDisposable private void Init(byte[] window) { - if (window is null) + if (this.window is null && window is null) { this.window = ArrayPool.Shared.Rent(PackDef.MAXWINSIZE); } - else + else if (window is not null) { this.window = window; externalWindow = true; From 91364c6a7ca50d1fee2c4bb8ed34fed66449a499 Mon Sep 17 00:00:00 2001 From: majorro Date: Mon, 13 Jan 2025 23:28:26 +0300 Subject: [PATCH 46/65] stackalloc readtables --- src/SharpCompress/Compressors/Rar/UnpackV1/Unpack.cs | 6 +++--- src/SharpCompress/Compressors/Rar/UnpackV1/Unpack20.cs | 8 +++----- .../Compressors/Rar/UnpackV1/UnpackUtility.cs | 5 ++--- 3 files changed, 8 insertions(+), 11 deletions(-) diff --git a/src/SharpCompress/Compressors/Rar/UnpackV1/Unpack.cs b/src/SharpCompress/Compressors/Rar/UnpackV1/Unpack.cs index 6cadcede..1af0965c 100644 --- a/src/SharpCompress/Compressors/Rar/UnpackV1/Unpack.cs +++ b/src/SharpCompress/Compressors/Rar/UnpackV1/Unpack.cs @@ -866,9 +866,9 @@ internal sealed partial class Unpack : BitInput, IRarUnpack, IDisposable private bool ReadTables() { - var bitLength = new byte[PackDef.BC]; + Span bitLength = stackalloc byte[PackDef.BC]; + Span table = stackalloc byte[PackDef.HUFF_TABLE_SIZE]; - var table = new byte[PackDef.HUFF_TABLE_SIZE]; if (inAddr > readTop - 25) { if (!unpReadBuf()) @@ -996,7 +996,7 @@ internal sealed partial class Unpack : BitInput, IRarUnpack, IDisposable // memcpy(unpOldTable,table,sizeof(unpOldTable)); - Buffer.BlockCopy(table, 0, unpOldTable, 0, unpOldTable.Length); + table.CopyTo(unpOldTable); return (true); } diff --git a/src/SharpCompress/Compressors/Rar/UnpackV1/Unpack20.cs b/src/SharpCompress/Compressors/Rar/UnpackV1/Unpack20.cs index 3a5d008d..33900961 100644 --- a/src/SharpCompress/Compressors/Rar/UnpackV1/Unpack20.cs +++ b/src/SharpCompress/Compressors/Rar/UnpackV1/Unpack20.cs @@ -391,11 +391,9 @@ internal partial class Unpack private bool ReadTables20() { - var BitLength = new byte[PackDef.BC20]; - var Table = new byte[PackDef.MC20 * 4]; - int TableSize, - N, - I; + Span BitLength = stackalloc byte[PackDef.BC20]; + Span Table = stackalloc byte[PackDef.MC20 * 4]; + int TableSize, N, I; if (inAddr > readTop - 25) { if (!unpReadBuf()) diff --git a/src/SharpCompress/Compressors/Rar/UnpackV1/UnpackUtility.cs b/src/SharpCompress/Compressors/Rar/UnpackV1/UnpackUtility.cs index b501337b..c388cdcb 100644 --- a/src/SharpCompress/Compressors/Rar/UnpackV1/UnpackUtility.cs +++ b/src/SharpCompress/Compressors/Rar/UnpackV1/UnpackUtility.cs @@ -181,13 +181,12 @@ internal static class UnpackUtility return (dec.DecodeNum[N]); } - internal static void makeDecodeTables(byte[] lenTab, int offset, Decode.Decode dec, int size) + internal static void makeDecodeTables(Span lenTab, int offset, Decode.Decode dec, int size) { Span lenCount = stackalloc int[16]; Span tmpPos = stackalloc int[16]; int i; - long M, - N; + long M, N; new Span(dec.DecodeNum).Clear(); // memset(Dec->DecodeNum,0,Size*sizeof(*Dec->DecodeNum)); From 23e1447ab63ca8ccfb8fbc867e086f369bf1d0a1 Mon Sep 17 00:00:00 2001 From: majorro Date: Mon, 13 Jan 2025 23:31:33 +0300 Subject: [PATCH 47/65] stackalloc addvmcode --- src/SharpCompress/Compressors/Rar/RarCRC.cs | 2 +- src/SharpCompress/Compressors/Rar/UnpackV1/Unpack.cs | 2 +- src/SharpCompress/Compressors/Rar/VM/RarVM.cs | 6 +++--- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/SharpCompress/Compressors/Rar/RarCRC.cs b/src/SharpCompress/Compressors/Rar/RarCRC.cs index 8f4fb47e..7e6fc6cc 100644 --- a/src/SharpCompress/Compressors/Rar/RarCRC.cs +++ b/src/SharpCompress/Compressors/Rar/RarCRC.cs @@ -9,7 +9,7 @@ internal static class RarCRC public static uint CheckCrc(uint startCrc, byte b) => (crcTab[((int)startCrc ^ b) & 0xff] ^ (startCrc >> 8)); - public static uint CheckCrc(uint startCrc, byte[] data, int offset, int count) + public static uint CheckCrc(uint startCrc, ReadOnlySpan data, int offset, int count) { var size = Math.Min(data.Length - offset, count); diff --git a/src/SharpCompress/Compressors/Rar/UnpackV1/Unpack.cs b/src/SharpCompress/Compressors/Rar/UnpackV1/Unpack.cs index 1af0965c..eb2ddea6 100644 --- a/src/SharpCompress/Compressors/Rar/UnpackV1/Unpack.cs +++ b/src/SharpCompress/Compressors/Rar/UnpackV1/Unpack.cs @@ -1197,7 +1197,7 @@ internal sealed partial class Unpack : BitInput, IRarUnpack, IDisposable { return (false); } - var VMCode = new byte[VMCodeSize]; + Span VMCode = stackalloc byte[VMCodeSize]; for (var I = 0; I < VMCodeSize; I++) { if (Inp.Overflow(3)) diff --git a/src/SharpCompress/Compressors/Rar/VM/RarVM.cs b/src/SharpCompress/Compressors/Rar/VM/RarVM.cs index f758b8a4..0dd3e326 100644 --- a/src/SharpCompress/Compressors/Rar/VM/RarVM.cs +++ b/src/SharpCompress/Compressors/Rar/VM/RarVM.cs @@ -776,14 +776,14 @@ internal sealed class RarVM : BitInput } } - public void prepare(byte[] code, int codeSize, VMPreparedProgram prg) + public void prepare(ReadOnlySpan code, int codeSize, VMPreparedProgram prg) { InitBitInput(); var cpLength = Math.Min(MAX_SIZE, codeSize); // memcpy(inBuf,Code,Min(CodeSize,BitInput::MAX_SIZE)); - Buffer.BlockCopy(code, 0, InBuf, 0, cpLength); + code.Slice(0, cpLength).CopyTo(InBuf); byte xorSum = 0; for (var i = 1; i < codeSize; i++) { @@ -1105,7 +1105,7 @@ internal sealed class RarVM : BitInput } } - private VMStandardFilters IsStandardFilter(byte[] code, int codeSize) + private VMStandardFilters IsStandardFilter(ReadOnlySpan code, int codeSize) { VMStandardFilterSignature[] stdList = { From 3875f624537d0481cf024adaf8956c489452cebe Mon Sep 17 00:00:00 2001 From: majorro Date: Tue, 14 Jan 2025 00:36:26 +0300 Subject: [PATCH 48/65] deps fix --- tests/SharpCompress.Test/packages.lock.json | 22 +++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/tests/SharpCompress.Test/packages.lock.json b/tests/SharpCompress.Test/packages.lock.json index d9f5c1eb..94f193fc 100644 --- a/tests/SharpCompress.Test/packages.lock.json +++ b/tests/SharpCompress.Test/packages.lock.json @@ -97,11 +97,6 @@ "System.Reflection.Metadata": "1.6.0" } }, - "System.Buffers": { - "type": "Transitive", - "resolved": "4.6.0", - "contentHash": "lN6tZi7Q46zFzAbRYXTIvfXcyvQQgxnY7Xm6C6xQ9784dEL1amjM6S6Iw4ZpsvesAKnRVsM4scrDQaDqSClkjA==" - }, "System.Collections.Immutable": { "type": "Transitive", "resolved": "1.5.0", @@ -197,6 +192,12 @@ "System.Threading.Tasks.Extensions": "4.5.4" } }, + "System.Buffers": { + "type": "CentralTransitive", + "requested": "[4.6.0, )", + "resolved": "4.6.0", + "contentHash": "lN6tZi7Q46zFzAbRYXTIvfXcyvQQgxnY7Xm6C6xQ9784dEL1amjM6S6Iw4ZpsvesAKnRVsM4scrDQaDqSClkjA==" + }, "System.Memory": { "type": "CentralTransitive", "requested": "[4.5.5, )", @@ -329,11 +330,6 @@ "resolved": "13.0.1", "contentHash": "ppPFpBcvxdsfUonNcvITKqLl3bqxWbDCZIzDWHzjpdAHRFfZe0Dw9HmA0+za13IdyrgJwpkDTDA9fHaxOrt20A==" }, - "System.Buffers": { - "type": "Transitive", - "resolved": "4.6.0", - "contentHash": "lN6tZi7Q46zFzAbRYXTIvfXcyvQQgxnY7Xm6C6xQ9784dEL1amjM6S6Iw4ZpsvesAKnRVsM4scrDQaDqSClkjA==" - }, "System.Configuration.ConfigurationManager": { "type": "Transitive", "resolved": "4.4.0", @@ -404,6 +400,12 @@ "ZstdSharp.Port": "[0.8.1, )" } }, + "System.Buffers": { + "type": "CentralTransitive", + "requested": "[4.6.0, )", + "resolved": "4.6.0", + "contentHash": "lN6tZi7Q46zFzAbRYXTIvfXcyvQQgxnY7Xm6C6xQ9784dEL1amjM6S6Iw4ZpsvesAKnRVsM4scrDQaDqSClkjA==" + }, "ZstdSharp.Port": { "type": "CentralTransitive", "requested": "[0.8.1, )", From a89fc3a276b992737567defc210bbd2832f50f7c Mon Sep 17 00:00:00 2001 From: Adam Hathcock Date: Tue, 14 Jan 2025 08:55:09 +0000 Subject: [PATCH 49/65] formatting --- src/SharpCompress/Archives/Rar/RarArchive.cs | 3 ++- src/SharpCompress/Compressors/Rar/UnpackV1/Unpack20.cs | 4 +++- .../Compressors/Rar/UnpackV1/UnpackUtility.cs | 10 ++++++++-- src/SharpCompress/Readers/Rar/RarReader.cs | 3 ++- 4 files changed, 15 insertions(+), 5 deletions(-) diff --git a/src/SharpCompress/Archives/Rar/RarArchive.cs b/src/SharpCompress/Archives/Rar/RarArchive.cs index b9c1bfde..6a5c9781 100644 --- a/src/SharpCompress/Archives/Rar/RarArchive.cs +++ b/src/SharpCompress/Archives/Rar/RarArchive.cs @@ -15,7 +15,8 @@ namespace SharpCompress.Archives.Rar; public class RarArchive : AbstractArchive { private bool _disposed; - internal Lazy UnpackV2017 { get; } = new(() => new Compressors.Rar.UnpackV2017.Unpack()); + internal Lazy UnpackV2017 { get; } = + new(() => new Compressors.Rar.UnpackV2017.Unpack()); internal Lazy UnpackV1 { get; } = new(() => new Compressors.Rar.UnpackV1.Unpack()); /// diff --git a/src/SharpCompress/Compressors/Rar/UnpackV1/Unpack20.cs b/src/SharpCompress/Compressors/Rar/UnpackV1/Unpack20.cs index 33900961..e4069c76 100644 --- a/src/SharpCompress/Compressors/Rar/UnpackV1/Unpack20.cs +++ b/src/SharpCompress/Compressors/Rar/UnpackV1/Unpack20.cs @@ -393,7 +393,9 @@ internal partial class Unpack { Span BitLength = stackalloc byte[PackDef.BC20]; Span Table = stackalloc byte[PackDef.MC20 * 4]; - int TableSize, N, I; + int TableSize, + N, + I; if (inAddr > readTop - 25) { if (!unpReadBuf()) diff --git a/src/SharpCompress/Compressors/Rar/UnpackV1/UnpackUtility.cs b/src/SharpCompress/Compressors/Rar/UnpackV1/UnpackUtility.cs index c388cdcb..4b16e43d 100644 --- a/src/SharpCompress/Compressors/Rar/UnpackV1/UnpackUtility.cs +++ b/src/SharpCompress/Compressors/Rar/UnpackV1/UnpackUtility.cs @@ -181,12 +181,18 @@ internal static class UnpackUtility return (dec.DecodeNum[N]); } - internal static void makeDecodeTables(Span lenTab, int offset, Decode.Decode dec, int size) + internal static void makeDecodeTables( + Span lenTab, + int offset, + Decode.Decode dec, + int size + ) { Span lenCount = stackalloc int[16]; Span tmpPos = stackalloc int[16]; int i; - long M, N; + long M, + N; new Span(dec.DecodeNum).Clear(); // memset(Dec->DecodeNum,0,Size*sizeof(*Dec->DecodeNum)); diff --git a/src/SharpCompress/Readers/Rar/RarReader.cs b/src/SharpCompress/Readers/Rar/RarReader.cs index a9078cae..184ba62d 100644 --- a/src/SharpCompress/Readers/Rar/RarReader.cs +++ b/src/SharpCompress/Readers/Rar/RarReader.cs @@ -15,7 +15,8 @@ public abstract class RarReader : AbstractReader { private bool _disposed; private RarVolume? volume; - private Lazy UnpackV2017 { get; } = new(() => new Compressors.Rar.UnpackV2017.Unpack()); + private Lazy UnpackV2017 { get; } = + new(() => new Compressors.Rar.UnpackV2017.Unpack()); private Lazy UnpackV1 { get; } = new(() => new Compressors.Rar.UnpackV1.Unpack()); internal RarReader(ReaderOptions options) From c8b5aad48233cd6404f21afe10d19edaefa92e5a Mon Sep 17 00:00:00 2001 From: Adam Hathcock Date: Tue, 14 Jan 2025 09:04:39 +0000 Subject: [PATCH 50/65] Update to support only netstandard2.0, net6 and net8 --- src/SharpCompress/SharpCompress.csproj | 12 +- src/SharpCompress/packages.lock.json | 182 +------------------------ 2 files changed, 5 insertions(+), 189 deletions(-) diff --git a/src/SharpCompress/SharpCompress.csproj b/src/SharpCompress/SharpCompress.csproj index 4b4909b7..dda77632 100644 --- a/src/SharpCompress/SharpCompress.csproj +++ b/src/SharpCompress/SharpCompress.csproj @@ -6,7 +6,7 @@ 0.38.0 0.38.0 Adam Hathcock - net462;netstandard2.0;netstandard2.1;net6.0;net8.0 + netstandard2.0;net6.0;net8.0 SharpCompress ../../SharpCompress.snk true @@ -28,7 +28,6 @@ true $(AllowedOutputExtensionsInPackageBuildOutputFolder);.pdb - true @@ -36,20 +35,11 @@ - - - - - - - - - diff --git a/src/SharpCompress/packages.lock.json b/src/SharpCompress/packages.lock.json index 5b33071a..a30a91bf 100644 --- a/src/SharpCompress/packages.lock.json +++ b/src/SharpCompress/packages.lock.json @@ -1,106 +1,6 @@ { "version": 2, "dependencies": { - ".NETFramework,Version=v4.6.2": { - "Microsoft.Bcl.AsyncInterfaces": { - "type": "Direct", - "requested": "[8.0.0, )", - "resolved": "8.0.0", - "contentHash": "3WA9q9yVqJp222P3x1wYIGDAkpjAku0TMUaaQV22g6L67AI0LdOIrVS7Ht2vJfLHGSPVuqN94vIr15qn+HEkHw==", - "dependencies": { - "System.Threading.Tasks.Extensions": "4.5.4" - } - }, - "Microsoft.NETFramework.ReferenceAssemblies": { - "type": "Direct", - "requested": "[1.0.3, )", - "resolved": "1.0.3", - "contentHash": "vUc9Npcs14QsyOD01tnv/m8sQUnGTGOw1BCmKcv77LBJY7OxhJ+zJF7UD/sCL3lYNFuqmQEVlkfS4Quif6FyYg==", - "dependencies": { - "Microsoft.NETFramework.ReferenceAssemblies.net462": "1.0.3" - } - }, - "Microsoft.SourceLink.GitHub": { - "type": "Direct", - "requested": "[8.0.0, )", - "resolved": "8.0.0", - "contentHash": "G5q7OqtwIyGTkeIOAc3u2ZuV/kicQaec5EaRnc0pIeSnh9LUjj+PYQrJYBURvDt7twGl2PKA7nSN0kz1Zw5bnQ==", - "dependencies": { - "Microsoft.Build.Tasks.Git": "8.0.0", - "Microsoft.SourceLink.Common": "8.0.0" - } - }, - "System.Buffers": { - "type": "Direct", - "requested": "[4.6.0, )", - "resolved": "4.6.0", - "contentHash": "lN6tZi7Q46zFzAbRYXTIvfXcyvQQgxnY7Xm6C6xQ9784dEL1amjM6S6Iw4ZpsvesAKnRVsM4scrDQaDqSClkjA==" - }, - "System.Memory": { - "type": "Direct", - "requested": "[4.5.5, )", - "resolved": "4.5.5", - "contentHash": "XIWiDvKPXaTveaB7HVganDlOCRoj03l+jrwNvcge/t8vhGYKvqV+dMv6G4SAX2NoNmN0wZfVPTAlFwZcZvVOUw==", - "dependencies": { - "System.Buffers": "4.5.1", - "System.Numerics.Vectors": "4.5.0", - "System.Runtime.CompilerServices.Unsafe": "4.5.3" - } - }, - "System.Text.Encoding.CodePages": { - "type": "Direct", - "requested": "[8.0.0, )", - "resolved": "8.0.0", - "contentHash": "OZIsVplFGaVY90G2SbpgU7EnCoOO5pw1t4ic21dBF3/1omrJFpAGoNAVpPyMVOC90/hvgkGG3VFqR13YgZMQfg==", - "dependencies": { - "System.Memory": "4.5.5", - "System.Runtime.CompilerServices.Unsafe": "6.0.0" - } - }, - "ZstdSharp.Port": { - "type": "Direct", - "requested": "[0.8.1, )", - "resolved": "0.8.1", - "contentHash": "19tNz33kn2EkyViFXuxfVn338UJaRmkwBphVqP2dVJIYQUQgFrgG5h061mxkRRg1Ax6r+6WOj1FxaFZ5qaWqqg==", - "dependencies": { - "Microsoft.Bcl.AsyncInterfaces": "5.0.0", - "System.Memory": "4.5.5" - } - }, - "Microsoft.Build.Tasks.Git": { - "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "bZKfSIKJRXLTuSzLudMFte/8CempWjVamNUR5eHJizsy+iuOuO/k2gnh7W0dHJmYY0tBf+gUErfluCv5mySAOQ==" - }, - "Microsoft.NETFramework.ReferenceAssemblies.net462": { - "type": "Transitive", - "resolved": "1.0.3", - "contentHash": "IzAV30z22ESCeQfxP29oVf4qEo8fBGXLXSU6oacv/9Iqe6PzgHDKCaWfwMBak7bSJQM0F5boXWoZS+kChztRIQ==" - }, - "Microsoft.SourceLink.Common": { - "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "dk9JPxTCIevS75HyEQ0E4OVAFhB2N+V9ShCXf8Q6FkUQZDkgLI12y679Nym1YqsiSysuQskT7Z+6nUf3yab6Vw==" - }, - "System.Numerics.Vectors": { - "type": "Transitive", - "resolved": "4.5.0", - "contentHash": "QQTlPTl06J/iiDbJCiepZ4H//BVraReU4O4EoRw1U02H5TLUIT7xn3GnDp9AXPSlJUDyFs4uWjWafNX6WrAojQ==" - }, - "System.Runtime.CompilerServices.Unsafe": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "/iUeP3tq1S0XdNNoMz5C9twLSrM/TH+qElHkXWaPvuNOt+99G75NrV0OS2EqHx5wMN7popYjpc8oTjC1y16DLg==" - }, - "System.Threading.Tasks.Extensions": { - "type": "Transitive", - "resolved": "4.5.4", - "contentHash": "zteT+G8xuGu6mS+mzDzYXbzS7rd3K6Fjb9RiZlYlJPam2/hU7JCBZBVEcywNuR+oZ1ncTvc/cq0faRr3P01OVg==", - "dependencies": { - "System.Runtime.CompilerServices.Unsafe": "4.5.3" - } - } - }, ".NETStandard,Version=v2.0": { "Microsoft.Bcl.AsyncInterfaces": { "type": "Direct", @@ -201,80 +101,6 @@ } } }, - ".NETStandard,Version=v2.1": { - "Microsoft.Bcl.AsyncInterfaces": { - "type": "Direct", - "requested": "[8.0.0, )", - "resolved": "8.0.0", - "contentHash": "3WA9q9yVqJp222P3x1wYIGDAkpjAku0TMUaaQV22g6L67AI0LdOIrVS7Ht2vJfLHGSPVuqN94vIr15qn+HEkHw==" - }, - "Microsoft.SourceLink.GitHub": { - "type": "Direct", - "requested": "[8.0.0, )", - "resolved": "8.0.0", - "contentHash": "G5q7OqtwIyGTkeIOAc3u2ZuV/kicQaec5EaRnc0pIeSnh9LUjj+PYQrJYBURvDt7twGl2PKA7nSN0kz1Zw5bnQ==", - "dependencies": { - "Microsoft.Build.Tasks.Git": "8.0.0", - "Microsoft.SourceLink.Common": "8.0.0" - } - }, - "System.Buffers": { - "type": "Direct", - "requested": "[4.6.0, )", - "resolved": "4.6.0", - "contentHash": "lN6tZi7Q46zFzAbRYXTIvfXcyvQQgxnY7Xm6C6xQ9784dEL1amjM6S6Iw4ZpsvesAKnRVsM4scrDQaDqSClkjA==" - }, - "System.Text.Encoding.CodePages": { - "type": "Direct", - "requested": "[8.0.0, )", - "resolved": "8.0.0", - "contentHash": "OZIsVplFGaVY90G2SbpgU7EnCoOO5pw1t4ic21dBF3/1omrJFpAGoNAVpPyMVOC90/hvgkGG3VFqR13YgZMQfg==", - "dependencies": { - "System.Memory": "4.5.5", - "System.Runtime.CompilerServices.Unsafe": "6.0.0" - } - }, - "ZstdSharp.Port": { - "type": "Direct", - "requested": "[0.8.1, )", - "resolved": "0.8.1", - "contentHash": "19tNz33kn2EkyViFXuxfVn338UJaRmkwBphVqP2dVJIYQUQgFrgG5h061mxkRRg1Ax6r+6WOj1FxaFZ5qaWqqg==", - "dependencies": { - "System.Runtime.CompilerServices.Unsafe": "6.0.0" - } - }, - "Microsoft.Build.Tasks.Git": { - "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "bZKfSIKJRXLTuSzLudMFte/8CempWjVamNUR5eHJizsy+iuOuO/k2gnh7W0dHJmYY0tBf+gUErfluCv5mySAOQ==" - }, - "Microsoft.SourceLink.Common": { - "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "dk9JPxTCIevS75HyEQ0E4OVAFhB2N+V9ShCXf8Q6FkUQZDkgLI12y679Nym1YqsiSysuQskT7Z+6nUf3yab6Vw==" - }, - "System.Numerics.Vectors": { - "type": "Transitive", - "resolved": "4.4.0", - "contentHash": "UiLzLW+Lw6HLed1Hcg+8jSRttrbuXv7DANVj0DkL9g6EnnzbL75EB7EWsw5uRbhxd/4YdG8li5XizGWepmG3PQ==" - }, - "System.Runtime.CompilerServices.Unsafe": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "/iUeP3tq1S0XdNNoMz5C9twLSrM/TH+qElHkXWaPvuNOt+99G75NrV0OS2EqHx5wMN7popYjpc8oTjC1y16DLg==" - }, - "System.Memory": { - "type": "CentralTransitive", - "requested": "[4.5.5, )", - "resolved": "4.5.5", - "contentHash": "XIWiDvKPXaTveaB7HVganDlOCRoj03l+jrwNvcge/t8vhGYKvqV+dMv6G4SAX2NoNmN0wZfVPTAlFwZcZvVOUw==", - "dependencies": { - "System.Buffers": "4.5.1", - "System.Numerics.Vectors": "4.4.0", - "System.Runtime.CompilerServices.Unsafe": "4.5.3" - } - } - }, "net6.0": { "Microsoft.SourceLink.GitHub": { "type": "Direct", @@ -312,9 +138,9 @@ "net8.0": { "Microsoft.NET.ILLink.Tasks": { "type": "Direct", - "requested": "[8.0.7, )", - "resolved": "8.0.7", - "contentHash": "iI52ptEKby2ymQ6B7h4TWbFmm85T4VvLgc/HvS45Yr3lgi4IIFbQtjON3bQbX/Vc94jXNSLvrDOp5Kh7SJyFYQ==" + "requested": "[8.0.11, )", + "resolved": "8.0.11", + "contentHash": "zk5lnZrYJgtuJG8L4v17Ej8rZ3PUcR2iweNV08BaO5LbYHIi2wNaVNcJoLxvqgQdnjLlKnCCfVGLDr6QHeAarQ==" }, "Microsoft.SourceLink.GitHub": { "type": "Direct", @@ -350,4 +176,4 @@ } } } -} +} \ No newline at end of file From 30d4380afef55e372b787115d177ffc5ea69bb7a Mon Sep 17 00:00:00 2001 From: Adam Hathcock Date: Tue, 14 Jan 2025 09:06:03 +0000 Subject: [PATCH 51/65] update csproj --- src/SharpCompress/SharpCompress.csproj | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/SharpCompress/SharpCompress.csproj b/src/SharpCompress/SharpCompress.csproj index dda77632..f256a084 100644 --- a/src/SharpCompress/SharpCompress.csproj +++ b/src/SharpCompress/SharpCompress.csproj @@ -14,10 +14,10 @@ rar;unrar;zip;unzip;bzip2;gzip;tar;7zip;lzip;xz https://github.com/adamhathcock/sharpcompress MIT - Copyright (c) 2014 Adam Hathcock + Copyright (c) 2025 Adam Hathcock false false - SharpCompress is a compression library for NET Standard 2.0/NET Standard 2.1/NET 6.0/NET 8.0 that can unrar, decompress 7zip, decompress xz, zip/unzip, tar/untar lzip/unlzip, bzip2/unbzip2 and gzip/ungzip with forward-only reading and file random access APIs. Write support for zip/tar/bzip2/gzip is implemented. + SharpCompress is a compression library for NET Standard 2.0/NET 6.0/NET 8.0 that can unrar, decompress 7zip, decompress xz, zip/unzip, tar/untar lzip/unlzip, bzip2/unbzip2 and gzip/ungzip with forward-only reading and file random access APIs. Write support for zip/tar/bzip2/gzip is implemented. true true snupkg From 5bf3d6dc32c2021832f282dc655deb6cfef7826d Mon Sep 17 00:00:00 2001 From: Adam Hathcock Date: Tue, 14 Jan 2025 09:07:40 +0000 Subject: [PATCH 52/65] update csharpier --- .config/dotnet-tools.json | 5 ++-- src/SharpCompress/Algorithms/Adler32.cs | 2 +- src/SharpCompress/Common/ArchiveType.cs | 2 +- src/SharpCompress/Common/CompressionType.cs | 2 +- src/SharpCompress/Common/Rar/Headers/Flags.cs | 2 +- .../Common/SevenZip/SevenZipFilePart.cs | 2 +- .../Common/Tar/Headers/EntryType.cs | 2 +- .../Common/Tar/Headers/TarHeader.cs | 2 +- .../Common/Zip/Headers/HeaderFlags.cs | 2 +- .../Headers/LocalEntryHeaderExtraFactory.cs | 17 +++++++------ .../Common/Zip/Headers/ZipHeaderType.cs | 2 +- .../Zip/PkwareTraditionalCryptoStream.cs | 2 +- .../Common/Zip/WinzipAesKeySize.cs | 2 +- .../Common/Zip/ZipCompressionMethod.cs | 2 +- src/SharpCompress/Common/Zip/ZipEntry.cs | 2 +- .../Compressors/BZip2/BZip2Constants.cs | 2 +- .../Compressors/BZip2/CBZip2OutputStream.cs | 2 +- src/SharpCompress/Compressors/BZip2/CRC.cs | 2 +- .../Compressors/CompressionMode.cs | 2 +- .../Compressors/Deflate/DeflateManager.cs | 14 +++++------ .../Compressors/Deflate/FlushType.cs | 2 +- .../Compressors/Deflate/InfTree.cs | 12 +++++----- .../Compressors/Deflate/Inflate.cs | 8 +++---- src/SharpCompress/Compressors/Deflate/Tree.cs | 10 ++++---- src/SharpCompress/Compressors/Deflate/Zlib.cs | 10 ++++---- .../Compressors/Deflate/ZlibBaseStream.cs | 4 ++-- .../Compressors/Deflate64/BlockType.cs | 2 +- .../Deflate64/FastEncoderStatus.cs | 14 +++++------ .../Compressors/Deflate64/InflaterManaged.cs | 8 +++---- .../Compressors/Deflate64/InflaterState.cs | 2 +- .../Compressors/Deflate64/MatchState.cs | 2 +- .../Compressors/Explode/ExplodeStream.cs | 12 +++++----- .../Compressors/Explode/HuftTree.cs | 4 ++-- .../Compressors/Filters/BCJFilter.cs | 2 +- .../Compressors/Filters/BCJFilterIA64.cs | 2 +- src/SharpCompress/Compressors/LZMA/ICoder.cs | 2 +- .../Compressors/LZMA/LZipStream.cs | 4 ++-- .../Compressors/LZMA/LzmaEncoder.cs | 2 +- .../Compressors/LZMA/LzmaEncoderProperties.cs | 4 ++-- .../Compressors/PPMd/H/ModelPPM.cs | 2 +- .../Compressors/PPMd/I1/Model.cs | 2 +- .../PPMd/I1/ModelRestorationMethod.cs | 2 +- .../Compressors/PPMd/PpmdVersion.cs | 2 +- .../Compressors/Rar/RarBLAKE2spStream.cs | 2 +- .../Rar/UnpackV1/Decode/CodeType.cs | 2 +- .../Rar/UnpackV1/Decode/FilterType.cs | 2 +- .../Rar/UnpackV1/PPM/BlockTypes.cs | 2 +- .../Compressors/Rar/UnpackV1/Unpack.cs | 2 +- .../Compressors/Rar/UnpackV1/Unpack15.cs | 16 ++++++------- .../Compressors/Rar/UnpackV1/Unpack20.cs | 8 +++---- .../Rar/UnpackV2017/Unpack.unpack15_cpp.cs | 20 ++++++++-------- .../Rar/UnpackV2017/Unpack.unpack20_cpp.cs | 8 +++---- src/SharpCompress/Compressors/Rar/VM/RarVM.cs | 2 +- .../Compressors/Rar/VM/VMCmdFlags.cs | 2 +- .../Compressors/Rar/VM/VMCommands.cs | 2 +- .../Compressors/Rar/VM/VMFlags.cs | 2 +- .../Compressors/Rar/VM/VMOpType.cs | 2 +- .../Compressors/Rar/VM/VMStandardFilters.cs | 2 +- .../Compressors/Reduce/ReduceStream.cs | 2 +- .../Compressors/Shrink/BitStream.cs | 2 +- .../Compressors/Shrink/HwUnshrink.cs | 2 +- src/SharpCompress/Compressors/Xz/CheckType.cs | 2 +- .../Compressors/Xz/Filters/BlockFilter.cs | 23 +++++++++--------- src/SharpCompress/IO/StreamingMode.cs | 2 +- src/SharpCompress/Readers/Tar/TarReader.cs | 2 +- src/SharpCompress/Writers/Zip/ZipWriter.cs | 4 ++-- tests/SharpCompress.Test/ArchiveTests.cs | 2 +- .../Filters/BranchExecTests.cs | 24 +++++++++---------- .../SharpCompress.Test/Rar/RarArchiveTests.cs | 22 ++++++++--------- .../SharpCompress.Test/Rar/RarReaderTests.cs | 12 +++++----- .../Streams/LzmaStreamTests.cs | 4 ++-- .../Streams/ZlibBaseStreamTests.cs | 2 +- .../SharpCompress.Test/Tar/TarArchiveTests.cs | 2 +- .../SharpCompress.Test/Tar/TarReaderTests.cs | 2 +- tests/SharpCompress.Test/WriterTests.cs | 2 +- tests/SharpCompress.Test/Xz/XZTestsBase.cs | 6 ++--- .../SharpCompress.Test/Zip/ZipArchiveTests.cs | 8 +++---- .../SharpCompress.Test/Zip/ZipReaderTests.cs | 2 +- 78 files changed, 194 insertions(+), 191 deletions(-) diff --git a/.config/dotnet-tools.json b/.config/dotnet-tools.json index 00b1a064..393d1879 100644 --- a/.config/dotnet-tools.json +++ b/.config/dotnet-tools.json @@ -3,10 +3,11 @@ "isRoot": true, "tools": { "csharpier": { - "version": "0.28.1", + "version": "0.30.6", "commands": [ "dotnet-csharpier" - ] + ], + "rollForward": false } } } \ No newline at end of file diff --git a/src/SharpCompress/Algorithms/Adler32.cs b/src/SharpCompress/Algorithms/Adler32.cs index 10dbfc4d..f7ea0eb3 100644 --- a/src/SharpCompress/Algorithms/Adler32.cs +++ b/src/SharpCompress/Algorithms/Adler32.cs @@ -141,7 +141,7 @@ internal static class Adler32 // From https://github.com/SixLabors/ImageSharp/bl 4, 3, 2, - 1 // tap2 + 1, // tap2 }; #endif diff --git a/src/SharpCompress/Common/ArchiveType.cs b/src/SharpCompress/Common/ArchiveType.cs index 49b35387..f9c7db09 100644 --- a/src/SharpCompress/Common/ArchiveType.cs +++ b/src/SharpCompress/Common/ArchiveType.cs @@ -6,5 +6,5 @@ public enum ArchiveType Zip, Tar, SevenZip, - GZip + GZip, } diff --git a/src/SharpCompress/Common/CompressionType.cs b/src/SharpCompress/Common/CompressionType.cs index 927c1e7a..45b6aeeb 100644 --- a/src/SharpCompress/Common/CompressionType.cs +++ b/src/SharpCompress/Common/CompressionType.cs @@ -21,5 +21,5 @@ public enum CompressionType Reduce2, Reduce3, Reduce4, - Explode + Explode, } diff --git a/src/SharpCompress/Common/Rar/Headers/Flags.cs b/src/SharpCompress/Common/Rar/Headers/Flags.cs index 990dbc99..ef654ad5 100644 --- a/src/SharpCompress/Common/Rar/Headers/Flags.cs +++ b/src/SharpCompress/Common/Rar/Headers/Flags.cs @@ -13,7 +13,7 @@ public enum HeaderType : byte Sign, NewSub, EndArchive, - Crypt + Crypt, } internal static class HeaderCodeV diff --git a/src/SharpCompress/Common/SevenZip/SevenZipFilePart.cs b/src/SharpCompress/Common/SevenZip/SevenZipFilePart.cs index fe221b53..d1b882fb 100644 --- a/src/SharpCompress/Common/SevenZip/SevenZipFilePart.cs +++ b/src/SharpCompress/Common/SevenZip/SevenZipFilePart.cs @@ -86,7 +86,7 @@ internal class SevenZipFilePart : FilePart K_LZMA or K_LZMA2 => CompressionType.LZMA, K_PPMD => CompressionType.PPMd, K_B_ZIP2 => CompressionType.BZip2, - _ => throw new NotImplementedException() + _ => throw new NotImplementedException(), }; } diff --git a/src/SharpCompress/Common/Tar/Headers/EntryType.cs b/src/SharpCompress/Common/Tar/Headers/EntryType.cs index 3e6877c7..2dc4dbd1 100644 --- a/src/SharpCompress/Common/Tar/Headers/EntryType.cs +++ b/src/SharpCompress/Common/Tar/Headers/EntryType.cs @@ -14,5 +14,5 @@ internal enum EntryType : byte LongName = (byte)'L', SparseFile = (byte)'S', VolumeHeader = (byte)'V', - GlobalExtendedHeader = (byte)'g' + GlobalExtendedHeader = (byte)'g', } diff --git a/src/SharpCompress/Common/Tar/Headers/TarHeader.cs b/src/SharpCompress/Common/Tar/Headers/TarHeader.cs index 72c83612..0dcbbde2 100644 --- a/src/SharpCompress/Common/Tar/Headers/TarHeader.cs +++ b/src/SharpCompress/Common/Tar/Headers/TarHeader.cs @@ -314,7 +314,7 @@ internal sealed class TarHeader (byte)' ', (byte)' ', (byte)' ', - (byte)' ' + (byte)' ', }; internal static bool checkChecksum(byte[] buf) diff --git a/src/SharpCompress/Common/Zip/Headers/HeaderFlags.cs b/src/SharpCompress/Common/Zip/Headers/HeaderFlags.cs index 5aef3394..728f56b4 100644 --- a/src/SharpCompress/Common/Zip/Headers/HeaderFlags.cs +++ b/src/SharpCompress/Common/Zip/Headers/HeaderFlags.cs @@ -13,5 +13,5 @@ internal enum HeaderFlags : ushort EnhancedDeflate = 16, //Bit 11: Language encoding flag - Efs = 2048 + Efs = 2048, } diff --git a/src/SharpCompress/Common/Zip/Headers/LocalEntryHeaderExtraFactory.cs b/src/SharpCompress/Common/Zip/Headers/LocalEntryHeaderExtraFactory.cs index f90272c4..daedd9a6 100644 --- a/src/SharpCompress/Common/Zip/Headers/LocalEntryHeaderExtraFactory.cs +++ b/src/SharpCompress/Common/Zip/Headers/LocalEntryHeaderExtraFactory.cs @@ -14,7 +14,7 @@ internal enum ExtraDataType : ushort // -Info-ZIP Unicode Path Extra Field UnicodePathExtraField = 0x7075, Zip64ExtendedInformationExtraField = 0x0001, - UnixTimeExtraField = 0x5455 + UnixTimeExtraField = 0x5455, } internal class ExtraData @@ -229,7 +229,7 @@ internal sealed class UnixTimeExtraField : ExtraData None = 0, LastModified = 1, LastAccessed = 2, - Created = 4 + Created = 4, } } @@ -238,11 +238,14 @@ internal static class LocalEntryHeaderExtraFactory internal static ExtraData Create(ExtraDataType type, ushort length, byte[] extraData) => type switch { - ExtraDataType.UnicodePathExtraField - => new ExtraUnicodePathExtraField(type, length, extraData), - ExtraDataType.Zip64ExtendedInformationExtraField - => new Zip64ExtendedInformationExtraField(type, length, extraData), + ExtraDataType.UnicodePathExtraField => new ExtraUnicodePathExtraField( + type, + length, + extraData + ), + ExtraDataType.Zip64ExtendedInformationExtraField => + new Zip64ExtendedInformationExtraField(type, length, extraData), ExtraDataType.UnixTimeExtraField => new UnixTimeExtraField(type, length, extraData), - _ => new ExtraData(type, length, extraData) + _ => new ExtraData(type, length, extraData), }; } diff --git a/src/SharpCompress/Common/Zip/Headers/ZipHeaderType.cs b/src/SharpCompress/Common/Zip/Headers/ZipHeaderType.cs index 62c29d89..75cce8d8 100644 --- a/src/SharpCompress/Common/Zip/Headers/ZipHeaderType.cs +++ b/src/SharpCompress/Common/Zip/Headers/ZipHeaderType.cs @@ -8,5 +8,5 @@ internal enum ZipHeaderType DirectoryEnd, Split, Zip64DirectoryEnd, - Zip64DirectoryEndLocator + Zip64DirectoryEndLocator, } diff --git a/src/SharpCompress/Common/Zip/PkwareTraditionalCryptoStream.cs b/src/SharpCompress/Common/Zip/PkwareTraditionalCryptoStream.cs index 6ac48c6f..f8914c68 100644 --- a/src/SharpCompress/Common/Zip/PkwareTraditionalCryptoStream.cs +++ b/src/SharpCompress/Common/Zip/PkwareTraditionalCryptoStream.cs @@ -6,7 +6,7 @@ namespace SharpCompress.Common.Zip; internal enum CryptoMode { Encrypt, - Decrypt + Decrypt, } internal class PkwareTraditionalCryptoStream : Stream diff --git a/src/SharpCompress/Common/Zip/WinzipAesKeySize.cs b/src/SharpCompress/Common/Zip/WinzipAesKeySize.cs index 7772bcaa..276a3504 100644 --- a/src/SharpCompress/Common/Zip/WinzipAesKeySize.cs +++ b/src/SharpCompress/Common/Zip/WinzipAesKeySize.cs @@ -4,5 +4,5 @@ internal enum WinzipAesKeySize { KeySize128 = 1, KeySize192 = 2, - KeySize256 = 3 + KeySize256 = 3, } diff --git a/src/SharpCompress/Common/Zip/ZipCompressionMethod.cs b/src/SharpCompress/Common/Zip/ZipCompressionMethod.cs index b4147eee..834197c0 100644 --- a/src/SharpCompress/Common/Zip/ZipCompressionMethod.cs +++ b/src/SharpCompress/Common/Zip/ZipCompressionMethod.cs @@ -16,5 +16,5 @@ internal enum ZipCompressionMethod ZStd = 93, Xz = 95, PPMd = 98, - WinzipAes = 0x63 //http://www.winzip.com/aes_info.htm + WinzipAes = 0x63, //http://www.winzip.com/aes_info.htm } diff --git a/src/SharpCompress/Common/Zip/ZipEntry.cs b/src/SharpCompress/Common/Zip/ZipEntry.cs index 802dd19a..d8e947f8 100644 --- a/src/SharpCompress/Common/Zip/ZipEntry.cs +++ b/src/SharpCompress/Common/Zip/ZipEntry.cs @@ -46,7 +46,7 @@ public class ZipEntry : Entry ZipCompressionMethod.Reduce3 => CompressionType.Reduce3, ZipCompressionMethod.Reduce4 => CompressionType.Reduce4, ZipCompressionMethod.Explode => CompressionType.Explode, - _ => CompressionType.Unknown + _ => CompressionType.Unknown, }; public override long Crc => _filePart?.Header.Crc ?? 0; diff --git a/src/SharpCompress/Compressors/BZip2/BZip2Constants.cs b/src/SharpCompress/Compressors/BZip2/BZip2Constants.cs index cfeb02e4..85c63b39 100644 --- a/src/SharpCompress/Compressors/BZip2/BZip2Constants.cs +++ b/src/SharpCompress/Compressors/BZip2/BZip2Constants.cs @@ -555,6 +555,6 @@ internal class BZip2Constants 858, 364, 936, - 638 + 638, }; } diff --git a/src/SharpCompress/Compressors/BZip2/CBZip2OutputStream.cs b/src/SharpCompress/Compressors/BZip2/CBZip2OutputStream.cs index bf01c2c3..5e78c5fa 100644 --- a/src/SharpCompress/Compressors/BZip2/CBZip2OutputStream.cs +++ b/src/SharpCompress/Compressors/BZip2/CBZip2OutputStream.cs @@ -1829,7 +1829,7 @@ internal sealed class CBZip2OutputStream : Stream 88573, 265720, 797161, - 2391484 + 2391484, }; private void AllocateCompressStructures() diff --git a/src/SharpCompress/Compressors/BZip2/CRC.cs b/src/SharpCompress/Compressors/BZip2/CRC.cs index 9f593c40..6e8e034a 100644 --- a/src/SharpCompress/Compressors/BZip2/CRC.cs +++ b/src/SharpCompress/Compressors/BZip2/CRC.cs @@ -288,7 +288,7 @@ internal class CRC unchecked((int)0xbcb4666d), unchecked((int)0xb8757bda), unchecked((int)0xb5365d03), - unchecked((int)0xb1f740b4) + unchecked((int)0xb1f740b4), }; public CRC() => InitialiseCRC(); diff --git a/src/SharpCompress/Compressors/CompressionMode.cs b/src/SharpCompress/Compressors/CompressionMode.cs index 4eba1121..0bf15e03 100644 --- a/src/SharpCompress/Compressors/CompressionMode.cs +++ b/src/SharpCompress/Compressors/CompressionMode.cs @@ -3,5 +3,5 @@ namespace SharpCompress.Compressors; public enum CompressionMode { Compress = 0, - Decompress = 1 + Decompress = 1, } diff --git a/src/SharpCompress/Compressors/Deflate/DeflateManager.cs b/src/SharpCompress/Compressors/Deflate/DeflateManager.cs index cccd0237..933f5752 100644 --- a/src/SharpCompress/Compressors/Deflate/DeflateManager.cs +++ b/src/SharpCompress/Compressors/Deflate/DeflateManager.cs @@ -106,7 +106,7 @@ internal sealed partial class DeflateManager 5, 5, 5, - 0 + 0, }; // extra bits for each distance code @@ -141,7 +141,7 @@ internal sealed partial class DeflateManager 12, 12, 13, - 13 + 13, }; internal enum BlockState @@ -149,14 +149,14 @@ internal sealed partial class DeflateManager NeedMore = 0, // block not completed, need more input or more output BlockDone, // block flush performed FinishStarted, // finish started, need only more output at next deflate - FinishDone // finish done, accept no more input or output + FinishDone, // finish done, accept no more input or output } internal enum DeflateFlavor { Store, Fast, - Slow + Slow, } private const int MEM_LEVEL_MAX = 9; @@ -214,7 +214,7 @@ internal sealed partial class DeflateManager new Config(8, 16, 128, 128, DeflateFlavor.Slow), new Config(8, 32, 128, 256, DeflateFlavor.Slow), new Config(32, 128, 258, 1024, DeflateFlavor.Slow), - new Config(32, 258, 258, 4096, DeflateFlavor.Slow) + new Config(32, 258, 258, 4096, DeflateFlavor.Slow), }; private static readonly Config[] Table; @@ -233,7 +233,7 @@ internal sealed partial class DeflateManager "insufficient memory", "buffer error", "incompatible version", - "" + "", }; // preset dictionary flag in zlib header @@ -1793,7 +1793,7 @@ internal sealed partial class DeflateManager DeflateFlavor.Store => DeflateNone, DeflateFlavor.Fast => DeflateFast, DeflateFlavor.Slow => DeflateSlow, - _ => DeflateFunction + _ => DeflateFunction, }; internal int SetParams(CompressionLevel level, CompressionStrategy strategy) diff --git a/src/SharpCompress/Compressors/Deflate/FlushType.cs b/src/SharpCompress/Compressors/Deflate/FlushType.cs index bcf7fe10..446962a3 100644 --- a/src/SharpCompress/Compressors/Deflate/FlushType.cs +++ b/src/SharpCompress/Compressors/Deflate/FlushType.cs @@ -39,5 +39,5 @@ public enum FlushType Full, /// Signals the end of the compression/decompression stream. - Finish + Finish, } diff --git a/src/SharpCompress/Compressors/Deflate/InfTree.cs b/src/SharpCompress/Compressors/Deflate/InfTree.cs index 74f4069d..2ea4cbc4 100644 --- a/src/SharpCompress/Compressors/Deflate/InfTree.cs +++ b/src/SharpCompress/Compressors/Deflate/InfTree.cs @@ -1615,7 +1615,7 @@ internal sealed class InfTree 79, 0, 9, - 255 + 255, }; //UPGRADE_NOTE: Final was removed from the declaration of 'fixed_td'. "ms-help://MS.VSCC.v80/dv_commoner/local/redirect.htm?index='!DefaultContextWindowIndex'&keyword='jlca1003'" @@ -1716,7 +1716,7 @@ internal sealed class InfTree 193, 192, 5, - 24577 + 24577, }; // Tables for deflate from PKZIP's appnote.txt. @@ -1753,7 +1753,7 @@ internal sealed class InfTree 227, 258, 0, - 0 + 0, }; // see note #13 above about 258 @@ -1790,7 +1790,7 @@ internal sealed class InfTree 5, 0, 112, - 112 + 112, }; //UPGRADE_NOTE: Final was removed from the declaration of 'cpdist'. "ms-help://MS.VSCC.v80/dv_commoner/local/redirect.htm?index='!DefaultContextWindowIndex'&keyword='jlca1003'" @@ -1825,7 +1825,7 @@ internal sealed class InfTree 8193, 12289, 16385, - 24577 + 24577, }; //UPGRADE_NOTE: Final was removed from the declaration of 'cpdext'. "ms-help://MS.VSCC.v80/dv_commoner/local/redirect.htm?index='!DefaultContextWindowIndex'&keyword='jlca1003'" @@ -1860,7 +1860,7 @@ internal sealed class InfTree 12, 12, 13, - 13 + 13, }; // If BMAX needs to be larger than 16, then h and x[] should be uLong. diff --git a/src/SharpCompress/Compressors/Deflate/Inflate.cs b/src/SharpCompress/Compressors/Deflate/Inflate.cs index d768548b..fd1c764a 100644 --- a/src/SharpCompress/Compressors/Deflate/Inflate.cs +++ b/src/SharpCompress/Compressors/Deflate/Inflate.cs @@ -93,7 +93,7 @@ internal sealed class InflateBlocks 2, 14, 1, - 15 + 15, }; internal ZlibCodec _codec; // pointer back to this zlib stream @@ -815,7 +815,7 @@ internal sealed class InflateBlocks CODES = 6, // processing fixed or dynamic block DRY = 7, // output remaining window bytes DONE = 8, // finished last block, done - BAD = 9 // ot a data error--stuck here + BAD = 9, // ot a data error--stuck here } #endregion @@ -842,7 +842,7 @@ internal static class InternalInflateConstants 0x00001fff, 0x00003fff, 0x00007fff, - 0x0000ffff + 0x0000ffff, }; } @@ -2054,7 +2054,7 @@ internal sealed class InflateManager CHECK2 = 10, // two check bytes to go CHECK1 = 11, // one check byte to go DONE = 12, // finished check, done - BAD = 13 // got an error--stay here + BAD = 13, // got an error--stay here } #endregion diff --git a/src/SharpCompress/Compressors/Deflate/Tree.cs b/src/SharpCompress/Compressors/Deflate/Tree.cs index ec1eb51f..e5c9b52a 100644 --- a/src/SharpCompress/Compressors/Deflate/Tree.cs +++ b/src/SharpCompress/Compressors/Deflate/Tree.cs @@ -95,7 +95,7 @@ internal sealed partial class DeflateManager 2, 14, 1, - 15 + 15, }; // The lengths of the bit length codes are sent in order of decreasing @@ -618,7 +618,7 @@ internal sealed partial class DeflateManager 29, 29, 29, - 29 + 29, }; internal static readonly sbyte[] LengthCode = @@ -878,7 +878,7 @@ internal sealed partial class DeflateManager 27, 27, 27, - 28 + 28, }; internal static readonly int[] LengthBase = @@ -911,7 +911,7 @@ internal sealed partial class DeflateManager 160, 192, 224, - 0 + 0, }; internal static readonly int[] DistanceBase = @@ -945,7 +945,7 @@ internal sealed partial class DeflateManager 8192, 12288, 16384, - 24576 + 24576, }; internal short[] dyn_tree; // the dynamic tree diff --git a/src/SharpCompress/Compressors/Deflate/Zlib.cs b/src/SharpCompress/Compressors/Deflate/Zlib.cs index 6fbeb4d9..93405983 100644 --- a/src/SharpCompress/Compressors/Deflate/Zlib.cs +++ b/src/SharpCompress/Compressors/Deflate/Zlib.cs @@ -143,7 +143,7 @@ public enum CompressionLevel /// /// A synonym for BestCompression. /// - Level9 = BestCompression + Level9 = BestCompression, } /// @@ -171,7 +171,7 @@ public enum CompressionStrategy /// Using HuffmanOnly will force the compressor to do Huffman encoding only, with no /// string matching. /// - HuffmanOnly = 2 + HuffmanOnly = 2, } /// @@ -859,7 +859,7 @@ internal sealed class StaticTree 99, 8, 227, - 8 + 8, }; internal static readonly short[] distTreeCodes = @@ -923,7 +923,7 @@ internal sealed class StaticTree 7, 5, 23, - 5 + 5, }; // extra bits for each bit length code @@ -947,7 +947,7 @@ internal sealed class StaticTree 0, 2, 3, - 7 + 7, }; internal static readonly StaticTree Literals; diff --git a/src/SharpCompress/Compressors/Deflate/ZlibBaseStream.cs b/src/SharpCompress/Compressors/Deflate/ZlibBaseStream.cs index 94b1491d..f6372dff 100644 --- a/src/SharpCompress/Compressors/Deflate/ZlibBaseStream.cs +++ b/src/SharpCompress/Compressors/Deflate/ZlibBaseStream.cs @@ -39,7 +39,7 @@ internal enum ZlibStreamFlavor { ZLIB = 1950, DEFLATE = 1951, - GZIP = 1952 + GZIP = 1952, } internal class ZlibBaseStream : Stream @@ -655,6 +655,6 @@ internal class ZlibBaseStream : Stream { Writer, Reader, - Undefined + Undefined, } } diff --git a/src/SharpCompress/Compressors/Deflate64/BlockType.cs b/src/SharpCompress/Compressors/Deflate64/BlockType.cs index 5bd9eb83..b34ca903 100644 --- a/src/SharpCompress/Compressors/Deflate64/BlockType.cs +++ b/src/SharpCompress/Compressors/Deflate64/BlockType.cs @@ -8,5 +8,5 @@ internal enum BlockType { Uncompressed = 0, Static = 1, - Dynamic = 2 + Dynamic = 2, } diff --git a/src/SharpCompress/Compressors/Deflate64/FastEncoderStatus.cs b/src/SharpCompress/Compressors/Deflate64/FastEncoderStatus.cs index 71e3f680..37dafc68 100644 --- a/src/SharpCompress/Compressors/Deflate64/FastEncoderStatus.cs +++ b/src/SharpCompress/Compressors/Deflate64/FastEncoderStatus.cs @@ -111,7 +111,7 @@ internal static class FastEncoderStatics 0x7e, 0x7c, 0x1f, - 0x3f + 0x3f, }; internal static ReadOnlySpan B_FINAL_FAST_ENCODER_TREE_STRUCTURE_DATA => @@ -214,7 +214,7 @@ internal static class FastEncoderStatics 0x7e, 0x7c, 0x1f, - 0x3f + 0x3f, }; // Output a currentMatch with length matchLen (>= MIN_MATCH) and displacement matchPos @@ -762,7 +762,7 @@ internal static class FastEncoderStatics 0x0039e7f1, 0x003be7f1, 0x003de7f1, - 0x000047eb + 0x000047eb, }; internal static readonly uint[] FAST_ENCODER_DISTANCE_CODE_INFO = @@ -798,7 +798,7 @@ internal static class FastEncoderStatics 0x000007d5, 0x000017d5, 0x00000000, - 0x00000100 + 0x00000100, }; internal static readonly uint[] BIT_MASK = @@ -818,7 +818,7 @@ internal static class FastEncoderStatics 4095, 8191, 16383, - 32767 + 32767, }; internal static readonly byte[] EXTRA_LENGTH_BITS = { @@ -850,7 +850,7 @@ internal static class FastEncoderStatics 5, 5, 5, - 0 + 0, }; internal static readonly byte[] EXTRA_DISTANCE_BITS = { @@ -885,7 +885,7 @@ internal static class FastEncoderStatics 13, 13, 0, - 0 + 0, }; internal const int NUM_CHARS = 256; internal const int NUM_LENGTH_BASE_CODES = 29; diff --git a/src/SharpCompress/Compressors/Deflate64/InflaterManaged.cs b/src/SharpCompress/Compressors/Deflate64/InflaterManaged.cs index 4e11854f..34aa63d6 100644 --- a/src/SharpCompress/Compressors/Deflate64/InflaterManaged.cs +++ b/src/SharpCompress/Compressors/Deflate64/InflaterManaged.cs @@ -70,7 +70,7 @@ internal sealed class InflaterManaged 5, 5, 5, - 16 + 16, }; // The base length for length code 257 - 285. @@ -105,7 +105,7 @@ internal sealed class InflaterManaged 163, 195, 227, - 3 + 3, }; // The base distance for distance code 0 - 31 @@ -143,7 +143,7 @@ internal sealed class InflaterManaged 16385, 24577, 32769, - 49153 + 49153, }; // code lengths for code length alphabet is stored in following order @@ -184,7 +184,7 @@ internal sealed class InflaterManaged 0x07, 0x17, 0x0f, - 0x1f + 0x1f, }; private readonly OutputWindow _output; diff --git a/src/SharpCompress/Compressors/Deflate64/InflaterState.cs b/src/SharpCompress/Compressors/Deflate64/InflaterState.cs index 711c3245..16d627e0 100644 --- a/src/SharpCompress/Compressors/Deflate64/InflaterState.cs +++ b/src/SharpCompress/Compressors/Deflate64/InflaterState.cs @@ -37,5 +37,5 @@ internal enum InflaterState ReadingFooter = 22, VerifyingFooter = 23, - Done = 24 // Finished + Done = 24, // Finished } diff --git a/src/SharpCompress/Compressors/Deflate64/MatchState.cs b/src/SharpCompress/Compressors/Deflate64/MatchState.cs index 858e91e8..cabc0bad 100644 --- a/src/SharpCompress/Compressors/Deflate64/MatchState.cs +++ b/src/SharpCompress/Compressors/Deflate64/MatchState.cs @@ -8,5 +8,5 @@ internal enum MatchState { HasSymbol = 1, HasMatch = 2, - HasSymbolAndMatch = 3 + HasSymbolAndMatch = 3, } diff --git a/src/SharpCompress/Compressors/Explode/ExplodeStream.cs b/src/SharpCompress/Compressors/Explode/ExplodeStream.cs index a68353ce..11a016e0 100644 --- a/src/SharpCompress/Compressors/Explode/ExplodeStream.cs +++ b/src/SharpCompress/Compressors/Explode/ExplodeStream.cs @@ -102,7 +102,7 @@ public class ExplodeStream : Stream 0x1fff, 0x3fff, 0x7fff, - 0xffff + 0xffff, }; /* Tables for length and distance */ @@ -171,7 +171,7 @@ public class ExplodeStream : Stream 62, 63, 64, - 65 + 65, }; static int[] cplen3 = new int[] @@ -239,7 +239,7 @@ public class ExplodeStream : Stream 63, 64, 65, - 66 + 66, }; static int[] extra = new int[] @@ -307,7 +307,7 @@ public class ExplodeStream : Stream 0, 0, 0, - 8 + 8, }; static int[] cpdist4 = new int[] @@ -375,7 +375,7 @@ public class ExplodeStream : Stream 3841, 3905, 3969, - 4033 + 4033, }; static int[] cpdist8 = new int[] @@ -443,7 +443,7 @@ public class ExplodeStream : Stream 7681, 7809, 7937, - 8065 + 8065, }; private int get_tree(int[] arrBitLengths, int numberExpected) diff --git a/src/SharpCompress/Compressors/Explode/HuftTree.cs b/src/SharpCompress/Compressors/Explode/HuftTree.cs index caa1a141..d216cfc7 100644 --- a/src/SharpCompress/Compressors/Explode/HuftTree.cs +++ b/src/SharpCompress/Compressors/Explode/HuftTree.cs @@ -199,7 +199,7 @@ public static class HuftTree { NumberOfBitsUsed = arrLX[stackOfBitsPerTable + tableLevel - 1], /* bits to dump before this table */ NumberOfExtraBits = 32 + counter, /* bits in this table */ - ChildNodes = pointerToCurrentTable /* pointer to this table */ + ChildNodes = pointerToCurrentTable, /* pointer to this table */ }; counter = @@ -212,7 +212,7 @@ public static class HuftTree /* set up table entry in r */ huftNode vHuft1 = new huftNode { - NumberOfBitsUsed = numberOfBitsInCurrentCode - bitsBeforeThisTable + NumberOfBitsUsed = numberOfBitsInCurrentCode - bitsBeforeThisTable, }; if (pIndex >= numberOfCodes) diff --git a/src/SharpCompress/Compressors/Filters/BCJFilter.cs b/src/SharpCompress/Compressors/Filters/BCJFilter.cs index 83a93397..e7f00c98 100644 --- a/src/SharpCompress/Compressors/Filters/BCJFilter.cs +++ b/src/SharpCompress/Compressors/Filters/BCJFilter.cs @@ -13,7 +13,7 @@ internal class BCJFilter : Filter true, false, false, - false + false, }; private static readonly int[] MASK_TO_BIT_NUMBER = { 0, 1, 2, 2, 3, 3, 3, 3 }; diff --git a/src/SharpCompress/Compressors/Filters/BCJFilterIA64.cs b/src/SharpCompress/Compressors/Filters/BCJFilterIA64.cs index 07eaf319..44323ae7 100644 --- a/src/SharpCompress/Compressors/Filters/BCJFilterIA64.cs +++ b/src/SharpCompress/Compressors/Filters/BCJFilterIA64.cs @@ -39,7 +39,7 @@ internal class BCJFilterIA64 : Filter 4, 4, 0, - 0 + 0, }; public BCJFilterIA64(bool isEncoder, Stream baseStream) diff --git a/src/SharpCompress/Compressors/LZMA/ICoder.cs b/src/SharpCompress/Compressors/LZMA/ICoder.cs index dcddf929..95134979 100644 --- a/src/SharpCompress/Compressors/LZMA/ICoder.cs +++ b/src/SharpCompress/Compressors/LZMA/ICoder.cs @@ -147,7 +147,7 @@ internal enum CoderPropId /// /// Specifies mode with end marker. /// - EndMarker + EndMarker, } internal interface ISetCoderProperties diff --git a/src/SharpCompress/Compressors/LZMA/LZipStream.cs b/src/SharpCompress/Compressors/LZMA/LZipStream.cs index 5e987214..3609641b 100644 --- a/src/SharpCompress/Compressors/LZMA/LZipStream.cs +++ b/src/SharpCompress/Compressors/LZMA/LZipStream.cs @@ -205,7 +205,7 @@ public sealed class LZipStream : Stream (byte)'I', (byte)'P', 1, - 113 + 113, }; public static void WriteHeaderSize(Stream stream) @@ -235,6 +235,6 @@ public sealed class LZipStream : Stream (byte)(dictionarySize & 0xff), (byte)((dictionarySize >> 8) & 0xff), (byte)((dictionarySize >> 16) & 0xff), - (byte)((dictionarySize >> 24) & 0xff) + (byte)((dictionarySize >> 24) & 0xff), }; } diff --git a/src/SharpCompress/Compressors/LZMA/LzmaEncoder.cs b/src/SharpCompress/Compressors/LZMA/LzmaEncoder.cs index 509e54c8..f3abf990 100644 --- a/src/SharpCompress/Compressors/LZMA/LzmaEncoder.cs +++ b/src/SharpCompress/Compressors/LZMA/LzmaEncoder.cs @@ -12,7 +12,7 @@ internal class Encoder : ICoder, ISetCoderProperties, IWriteCoderProperties private enum EMatchFinderType { Bt2, - Bt4 + Bt4, } private const uint K_IFINITY_PRICE = 0xFFFFFFF; diff --git a/src/SharpCompress/Compressors/LZMA/LzmaEncoderProperties.cs b/src/SharpCompress/Compressors/LZMA/LzmaEncoderProperties.cs index 274e757b..198ba471 100644 --- a/src/SharpCompress/Compressors/LZMA/LzmaEncoderProperties.cs +++ b/src/SharpCompress/Compressors/LZMA/LzmaEncoderProperties.cs @@ -38,7 +38,7 @@ public class LzmaEncoderProperties CoderPropId.Algorithm, CoderPropId.NumFastBytes, CoderPropId.MatchFinder, - CoderPropId.EndMarker + CoderPropId.EndMarker, }; _properties = new object[] { @@ -49,7 +49,7 @@ public class LzmaEncoderProperties algorithm, numFastBytes, mf, - eos + eos, }; } } diff --git a/src/SharpCompress/Compressors/PPMd/H/ModelPPM.cs b/src/SharpCompress/Compressors/PPMd/H/ModelPPM.cs index d4e91921..f02ec847 100644 --- a/src/SharpCompress/Compressors/PPMd/H/ModelPPM.cs +++ b/src/SharpCompress/Compressors/PPMd/H/ModelPPM.cs @@ -132,7 +132,7 @@ internal class ModelPpm 0x64A1, 0x5ABC, 0x6632, - 0x6051 + 0x6051, }; // Temp fields diff --git a/src/SharpCompress/Compressors/PPMd/I1/Model.cs b/src/SharpCompress/Compressors/PPMd/I1/Model.cs index 9a1d090f..cd7f7ac4 100644 --- a/src/SharpCompress/Compressors/PPMd/I1/Model.cs +++ b/src/SharpCompress/Compressors/PPMd/I1/Model.cs @@ -59,7 +59,7 @@ internal partial class Model 0x64A1, 0x5ABC, 0x6632, - 0x6051 + 0x6051, }; private static ReadOnlySpan EXPONENTIAL_ESCAPES => diff --git a/src/SharpCompress/Compressors/PPMd/I1/ModelRestorationMethod.cs b/src/SharpCompress/Compressors/PPMd/I1/ModelRestorationMethod.cs index 0a504c99..9f4ccc43 100644 --- a/src/SharpCompress/Compressors/PPMd/I1/ModelRestorationMethod.cs +++ b/src/SharpCompress/Compressors/PPMd/I1/ModelRestorationMethod.cs @@ -24,5 +24,5 @@ internal enum ModelRestorationMethod /// /// Freeze the context tree (in some cases may result in poor compression). /// - Freeze = 2 + Freeze = 2, } diff --git a/src/SharpCompress/Compressors/PPMd/PpmdVersion.cs b/src/SharpCompress/Compressors/PPMd/PpmdVersion.cs index 791034ac..57626660 100644 --- a/src/SharpCompress/Compressors/PPMd/PpmdVersion.cs +++ b/src/SharpCompress/Compressors/PPMd/PpmdVersion.cs @@ -4,5 +4,5 @@ public enum PpmdVersion { H, H7Z, - I1 + I1, } diff --git a/src/SharpCompress/Compressors/Rar/RarBLAKE2spStream.cs b/src/SharpCompress/Compressors/Rar/RarBLAKE2spStream.cs index 7c897176..63759bc1 100644 --- a/src/SharpCompress/Compressors/Rar/RarBLAKE2spStream.cs +++ b/src/SharpCompress/Compressors/Rar/RarBLAKE2spStream.cs @@ -28,7 +28,7 @@ internal class RarBLAKE2spStream : RarStream 0x510E527FU, 0x9B05688CU, 0x1F83D9ABU, - 0x5BE0CD19U + 0x5BE0CD19U, }; static readonly byte[][] k_BLAKE2S_Sigma = diff --git a/src/SharpCompress/Compressors/Rar/UnpackV1/Decode/CodeType.cs b/src/SharpCompress/Compressors/Rar/UnpackV1/Decode/CodeType.cs index 0ec7943d..67f24def 100644 --- a/src/SharpCompress/Compressors/Rar/UnpackV1/Decode/CodeType.cs +++ b/src/SharpCompress/Compressors/Rar/UnpackV1/Decode/CodeType.cs @@ -10,5 +10,5 @@ internal enum CodeType CODE_STARTFILE, CODE_ENDFILE, CODE_VM, - CODE_VMDATA + CODE_VMDATA, } diff --git a/src/SharpCompress/Compressors/Rar/UnpackV1/Decode/FilterType.cs b/src/SharpCompress/Compressors/Rar/UnpackV1/Decode/FilterType.cs index 67e38c45..d09fcc16 100644 --- a/src/SharpCompress/Compressors/Rar/UnpackV1/Decode/FilterType.cs +++ b/src/SharpCompress/Compressors/Rar/UnpackV1/Decode/FilterType.cs @@ -12,5 +12,5 @@ internal enum FilterType : byte FILTER_RGB, FILTER_ITANIUM, FILTER_PPM, - FILTER_NONE + FILTER_NONE, } diff --git a/src/SharpCompress/Compressors/Rar/UnpackV1/PPM/BlockTypes.cs b/src/SharpCompress/Compressors/Rar/UnpackV1/PPM/BlockTypes.cs index 3b4a9372..ded3c34b 100644 --- a/src/SharpCompress/Compressors/Rar/UnpackV1/PPM/BlockTypes.cs +++ b/src/SharpCompress/Compressors/Rar/UnpackV1/PPM/BlockTypes.cs @@ -3,5 +3,5 @@ namespace SharpCompress.Compressors.Rar.UnpackV1.PPM; internal enum BlockTypes { BLOCK_LZ = 0, - BLOCK_PPM = 1 + BLOCK_PPM = 1, } diff --git a/src/SharpCompress/Compressors/Rar/UnpackV1/Unpack.cs b/src/SharpCompress/Compressors/Rar/UnpackV1/Unpack.cs index eb2ddea6..c62d5906 100644 --- a/src/SharpCompress/Compressors/Rar/UnpackV1/Unpack.cs +++ b/src/SharpCompress/Compressors/Rar/UnpackV1/Unpack.cs @@ -119,7 +119,7 @@ internal sealed partial class Unpack : BitInput, IRarUnpack, IDisposable 2, 14, 0, - 12 + 12, }; private FileHeader fileHeader; diff --git a/src/SharpCompress/Compressors/Rar/UnpackV1/Unpack15.cs b/src/SharpCompress/Compressors/Rar/UnpackV1/Unpack15.cs index 8513c24b..4c6e3894 100644 --- a/src/SharpCompress/Compressors/Rar/UnpackV1/Unpack15.cs +++ b/src/SharpCompress/Compressors/Rar/UnpackV1/Unpack15.cs @@ -88,7 +88,7 @@ internal partial class Unpack 0xf000, 0xf200, 0xf200, - 0xffff + 0xffff, }; private static readonly int[] PosL1 = { 0, 0, 0, 2, 3, 5, 7, 11, 16, 20, 24, 32, 32 }; @@ -106,7 +106,7 @@ internal partial class Unpack 0xf000, 0xf200, 0xf240, - 0xffff + 0xffff, }; private static readonly int[] PosL2 = { 0, 0, 0, 0, 5, 7, 9, 13, 18, 22, 26, 34, 36 }; @@ -123,7 +123,7 @@ internal partial class Unpack 0xf200, 0xf200, 0xf200, - 0xffff + 0xffff, }; private static readonly int[] PosHf0 = { 0, 0, 0, 0, 0, 8, 16, 24, 33, 33, 33, 33, 33 }; @@ -139,7 +139,7 @@ internal partial class Unpack 0xf200, 0xf200, 0xf7e0, - 0xffff + 0xffff, }; private static readonly int[] PosHf1 = { 0, 0, 0, 0, 0, 0, 4, 44, 60, 76, 80, 80, 127 }; @@ -155,7 +155,7 @@ internal partial class Unpack 0xfa00, 0xffff, 0xffff, - 0xffff + 0xffff, }; private static readonly int[] PosHf2 = { 0, 0, 0, 0, 0, 0, 2, 7, 53, 117, 233, 0, 0 }; @@ -170,7 +170,7 @@ internal partial class Unpack 0xfe80, 0xffff, 0xffff, - 0xffff + 0xffff, }; private static readonly int[] PosHf3 = { 0, 0, 0, 0, 0, 0, 0, 2, 16, 218, 251, 0, 0 }; @@ -199,7 +199,7 @@ internal partial class Unpack 0x90, 0x98, 0x9c, - 0xb0 + 0xb0, }; private static readonly int[] ShortLen2 = { 2, 3, 3, 3, 4, 4, 5, 6, 6, 4, 4, 5, 6, 6, 4, 0 }; @@ -220,7 +220,7 @@ internal partial class Unpack 0x90, 0x98, 0x9c, - 0xb0 + 0xb0, }; private void unpack15(bool solid) diff --git a/src/SharpCompress/Compressors/Rar/UnpackV1/Unpack20.cs b/src/SharpCompress/Compressors/Rar/UnpackV1/Unpack20.cs index e4069c76..809aaf60 100644 --- a/src/SharpCompress/Compressors/Rar/UnpackV1/Unpack20.cs +++ b/src/SharpCompress/Compressors/Rar/UnpackV1/Unpack20.cs @@ -64,7 +64,7 @@ internal partial class Unpack 128, 160, 192, - 224 + 224, }; private static ReadOnlySpan LBits => @@ -97,7 +97,7 @@ internal partial class Unpack 5, 5, 5, - 5 + 5, }; private static readonly int[] DDecode = @@ -149,7 +149,7 @@ internal partial class Unpack 786432, 851968, 917504, - 983040 + 983040, }; private static readonly int[] DBits = @@ -201,7 +201,7 @@ internal partial class Unpack 16, 16, 16, - 16 + 16, }; private static readonly int[] SDDecode = { 0, 4, 8, 16, 32, 64, 128, 192 }; diff --git a/src/SharpCompress/Compressors/Rar/UnpackV2017/Unpack.unpack15_cpp.cs b/src/SharpCompress/Compressors/Rar/UnpackV2017/Unpack.unpack15_cpp.cs index dabb0e08..c1886df8 100644 --- a/src/SharpCompress/Compressors/Rar/UnpackV2017/Unpack.unpack15_cpp.cs +++ b/src/SharpCompress/Compressors/Rar/UnpackV2017/Unpack.unpack15_cpp.cs @@ -19,7 +19,7 @@ internal partial class Unpack 0xf000, 0xf200, 0xf200, - 0xffff + 0xffff, }; private static readonly uint[] PosL1 = { 0, 0, 0, 2, 3, 5, 7, 11, 16, 20, 24, 32, 32 }; @@ -37,7 +37,7 @@ internal partial class Unpack 0xf000, 0xf200, 0xf240, - 0xffff + 0xffff, }; private static readonly uint[] PosL2 = { 0, 0, 0, 0, 5, 7, 9, 13, 18, 22, 26, 34, 36 }; @@ -54,7 +54,7 @@ internal partial class Unpack 0xf200, 0xf200, 0xf200, - 0xffff + 0xffff, }; private static readonly uint[] PosHf0 = { 0, 0, 0, 0, 0, 8, 16, 24, 33, 33, 33, 33, 33 }; @@ -70,7 +70,7 @@ internal partial class Unpack 0xf200, 0xf200, 0xf7e0, - 0xffff + 0xffff, }; private static readonly uint[] PosHf1 = { 0, 0, 0, 0, 0, 0, 4, 44, 60, 76, 80, 80, 127 }; @@ -86,7 +86,7 @@ internal partial class Unpack 0xfa00, 0xffff, 0xffff, - 0xffff + 0xffff, }; private static readonly uint[] PosHf2 = { 0, 0, 0, 0, 0, 0, 2, 7, 53, 117, 233, 0, 0 }; @@ -101,7 +101,7 @@ internal partial class Unpack 0xfe80, 0xffff, 0xffff, - 0xffff + 0xffff, }; private static readonly uint[] PosHf3 = { 0, 0, 0, 0, 0, 0, 0, 2, 16, 218, 251, 0, 0 }; @@ -225,7 +225,7 @@ internal partial class Unpack 6, 6, 4, - 0 + 0, }; public static readonly uint[] ShortXor1 = { @@ -243,7 +243,7 @@ internal partial class Unpack 0x90, 0x98, 0x9c, - 0xb0 + 0xb0, }; public static readonly uint[] ShortLen2 = { @@ -262,7 +262,7 @@ internal partial class Unpack 6, 6, 4, - 0 + 0, }; public static readonly uint[] ShortXor2 = { @@ -280,7 +280,7 @@ internal partial class Unpack 0x90, 0x98, 0x9c, - 0xb0 + 0xb0, }; } diff --git a/src/SharpCompress/Compressors/Rar/UnpackV2017/Unpack.unpack20_cpp.cs b/src/SharpCompress/Compressors/Rar/UnpackV2017/Unpack.unpack20_cpp.cs index 51dbff0b..d3125727 100644 --- a/src/SharpCompress/Compressors/Rar/UnpackV2017/Unpack.unpack20_cpp.cs +++ b/src/SharpCompress/Compressors/Rar/UnpackV2017/Unpack.unpack20_cpp.cs @@ -53,7 +53,7 @@ internal partial class Unpack 128, 160, 192, - 224 + 224, }; public static readonly byte[] LBits = { @@ -84,7 +84,7 @@ internal partial class Unpack 5, 5, 5, - 5 + 5, }; public static readonly uint[] DDecode = { @@ -135,7 +135,7 @@ internal partial class Unpack 786432, 851968, 917504, - 983040 + 983040, }; public static readonly byte[] DBits = { @@ -186,7 +186,7 @@ internal partial class Unpack 16, 16, 16, - 16 + 16, }; public static readonly byte[] SDDecode = { 0, 4, 8, 16, 32, 64, 128, 192 }; public static readonly byte[] SDBits = { 2, 2, 3, 4, 5, 6, 6, 6 }; diff --git a/src/SharpCompress/Compressors/Rar/VM/RarVM.cs b/src/SharpCompress/Compressors/Rar/VM/RarVM.cs index 0dd3e326..f1ef3834 100644 --- a/src/SharpCompress/Compressors/Rar/VM/RarVM.cs +++ b/src/SharpCompress/Compressors/Rar/VM/RarVM.cs @@ -1115,7 +1115,7 @@ internal sealed class RarVM : BitInput new(29, 0x0e06077d, VMStandardFilters.VMSF_DELTA), new(149, 0x1c2c5dc8, VMStandardFilters.VMSF_RGB), new(216, 0xbc85e701, VMStandardFilters.VMSF_AUDIO), - new(40, 0x46b9c560, VMStandardFilters.VMSF_UPCASE) + new(40, 0x46b9c560, VMStandardFilters.VMSF_UPCASE), }; var CodeCRC = RarCRC.CheckCrc(0xffffffff, code, 0, code.Length) ^ 0xffffffff; for (var i = 0; i < stdList.Length; i++) diff --git a/src/SharpCompress/Compressors/Rar/VM/VMCmdFlags.cs b/src/SharpCompress/Compressors/Rar/VM/VMCmdFlags.cs index 00de0b6a..9dbafe1b 100644 --- a/src/SharpCompress/Compressors/Rar/VM/VMCmdFlags.cs +++ b/src/SharpCompress/Compressors/Rar/VM/VMCmdFlags.cs @@ -53,6 +53,6 @@ internal class VMCmdFlags VMCF_OP2 | VMCF_BYTEMODE, VMCF_OP2 | VMCF_BYTEMODE | VMCF_USEFLAGS | VMCF_CHFLAGS, VMCF_OP2 | VMCF_BYTEMODE | VMCF_USEFLAGS | VMCF_CHFLAGS, - VMCF_OP0 + VMCF_OP0, }; } diff --git a/src/SharpCompress/Compressors/Rar/VM/VMCommands.cs b/src/SharpCompress/Compressors/Rar/VM/VMCommands.cs index 7bb1a396..a10eb072 100644 --- a/src/SharpCompress/Compressors/Rar/VM/VMCommands.cs +++ b/src/SharpCompress/Compressors/Rar/VM/VMCommands.cs @@ -66,5 +66,5 @@ internal enum VMCommands VM_NEGB = 52, VM_NEGD = 53, - VM_STANDARD = 54 + VM_STANDARD = 54, } diff --git a/src/SharpCompress/Compressors/Rar/VM/VMFlags.cs b/src/SharpCompress/Compressors/Rar/VM/VMFlags.cs index fa9a72e7..12765775 100644 --- a/src/SharpCompress/Compressors/Rar/VM/VMFlags.cs +++ b/src/SharpCompress/Compressors/Rar/VM/VMFlags.cs @@ -5,5 +5,5 @@ internal enum VMFlags None = 0, VM_FC = 1, VM_FZ = 2, - VM_FS = 80000000 + VM_FS = 80000000, } diff --git a/src/SharpCompress/Compressors/Rar/VM/VMOpType.cs b/src/SharpCompress/Compressors/Rar/VM/VMOpType.cs index bcc4214e..77994746 100644 --- a/src/SharpCompress/Compressors/Rar/VM/VMOpType.cs +++ b/src/SharpCompress/Compressors/Rar/VM/VMOpType.cs @@ -5,5 +5,5 @@ internal enum VMOpType VM_OPREG = 0, VM_OPINT = 1, VM_OPREGMEM = 2, - VM_OPNONE = 3 + VM_OPNONE = 3, } diff --git a/src/SharpCompress/Compressors/Rar/VM/VMStandardFilters.cs b/src/SharpCompress/Compressors/Rar/VM/VMStandardFilters.cs index 4b90b019..2c435ebb 100644 --- a/src/SharpCompress/Compressors/Rar/VM/VMStandardFilters.cs +++ b/src/SharpCompress/Compressors/Rar/VM/VMStandardFilters.cs @@ -9,5 +9,5 @@ internal enum VMStandardFilters VMSF_RGB = 4, VMSF_AUDIO = 5, VMSF_DELTA = 6, - VMSF_UPCASE = 7 + VMSF_UPCASE = 7, } diff --git a/src/SharpCompress/Compressors/Reduce/ReduceStream.cs b/src/SharpCompress/Compressors/Reduce/ReduceStream.cs index 2ebc20ab..1cb67f44 100644 --- a/src/SharpCompress/Compressors/Reduce/ReduceStream.cs +++ b/src/SharpCompress/Compressors/Reduce/ReduceStream.cs @@ -98,7 +98,7 @@ public class ReduceStream : Stream 0x1fff, 0x3fff, 0x7fff, - 0xffff + 0xffff, }; private int bitBufferCount; diff --git a/src/SharpCompress/Compressors/Shrink/BitStream.cs b/src/SharpCompress/Compressors/Shrink/BitStream.cs index 949ee6c3..03fa85f2 100644 --- a/src/SharpCompress/Compressors/Shrink/BitStream.cs +++ b/src/SharpCompress/Compressors/Shrink/BitStream.cs @@ -32,7 +32,7 @@ namespace SharpCompress.Compressors.Shrink 8191U, 16383U, (uint)short.MaxValue, - (uint)ushort.MaxValue + (uint)ushort.MaxValue, }; public BitStream(byte[] src, int srcLen) diff --git a/src/SharpCompress/Compressors/Shrink/HwUnshrink.cs b/src/SharpCompress/Compressors/Shrink/HwUnshrink.cs index 6ad5ab7c..4506ccb1 100644 --- a/src/SharpCompress/Compressors/Shrink/HwUnshrink.cs +++ b/src/SharpCompress/Compressors/Shrink/HwUnshrink.cs @@ -387,7 +387,7 @@ namespace SharpCompress.Compressors.Shrink { Ok, Full, - Error + Error, } private struct CodeQueue diff --git a/src/SharpCompress/Compressors/Xz/CheckType.cs b/src/SharpCompress/Compressors/Xz/CheckType.cs index a94f8261..4c4fafcd 100644 --- a/src/SharpCompress/Compressors/Xz/CheckType.cs +++ b/src/SharpCompress/Compressors/Xz/CheckType.cs @@ -5,5 +5,5 @@ public enum CheckType : byte NONE = 0x00, CRC32 = 0x01, CRC64 = 0x04, - SHA256 = 0x0A + SHA256 = 0x0A, } diff --git a/src/SharpCompress/Compressors/Xz/Filters/BlockFilter.cs b/src/SharpCompress/Compressors/Xz/Filters/BlockFilter.cs index 936a3a0d..76ec4e03 100644 --- a/src/SharpCompress/Compressors/Xz/Filters/BlockFilter.cs +++ b/src/SharpCompress/Compressors/Xz/Filters/BlockFilter.cs @@ -15,20 +15,19 @@ public abstract class BlockFilter : ReadOnlyStream ArchArmFilter = 0x07, ArchArmThumbFilter = 0x08, ArchSparcFilter = 0x09, - Lzma2 = 0x21 + Lzma2 = 0x21, } - private static readonly Dictionary> FILTER_MAP = - new() - { - { FilterTypes.ArchX86Filter, () => new X86Filter() }, - { FilterTypes.ArchPowerPcFilter, () => new PowerPCFilter() }, - { FilterTypes.ArchIa64Filter, () => new IA64Filter() }, - { FilterTypes.ArchArmFilter, () => new ArmFilter() }, - { FilterTypes.ArchArmThumbFilter, () => new ArmThumbFilter() }, - { FilterTypes.ArchSparcFilter, () => new SparcFilter() }, - { FilterTypes.Lzma2, () => new Lzma2Filter() } - }; + private static readonly Dictionary> FILTER_MAP = new() + { + { FilterTypes.ArchX86Filter, () => new X86Filter() }, + { FilterTypes.ArchPowerPcFilter, () => new PowerPCFilter() }, + { FilterTypes.ArchIa64Filter, () => new IA64Filter() }, + { FilterTypes.ArchArmFilter, () => new ArmFilter() }, + { FilterTypes.ArchArmThumbFilter, () => new ArmThumbFilter() }, + { FilterTypes.ArchSparcFilter, () => new SparcFilter() }, + { FilterTypes.Lzma2, () => new Lzma2Filter() }, + }; public abstract bool AllowAsLast { get; } public abstract bool AllowAsNonLast { get; } diff --git a/src/SharpCompress/IO/StreamingMode.cs b/src/SharpCompress/IO/StreamingMode.cs index 0fdb674d..33f7d236 100644 --- a/src/SharpCompress/IO/StreamingMode.cs +++ b/src/SharpCompress/IO/StreamingMode.cs @@ -3,5 +3,5 @@ namespace SharpCompress.IO; public enum StreamingMode { Streaming, - Seekable + Seekable, } diff --git a/src/SharpCompress/Readers/Tar/TarReader.cs b/src/SharpCompress/Readers/Tar/TarReader.cs index a686dc11..46493446 100644 --- a/src/SharpCompress/Readers/Tar/TarReader.cs +++ b/src/SharpCompress/Readers/Tar/TarReader.cs @@ -39,7 +39,7 @@ public class TarReader : AbstractReader CompressionType.Xz => new XZStream(stream), CompressionType.Lzw => new LzwStream(stream), CompressionType.None => stream, - _ => throw new NotSupportedException("Invalid compression type: " + compressionType) + _ => throw new NotSupportedException("Invalid compression type: " + compressionType), }; } diff --git a/src/SharpCompress/Writers/Zip/ZipWriter.cs b/src/SharpCompress/Writers/Zip/ZipWriter.cs index 1fb66a2b..8e89da64 100644 --- a/src/SharpCompress/Writers/Zip/ZipWriter.cs +++ b/src/SharpCompress/Writers/Zip/ZipWriter.cs @@ -69,7 +69,7 @@ public class ZipWriter : AbstractWriter CompressionType.BZip2 => ZipCompressionMethod.BZip2, CompressionType.LZMA => ZipCompressionMethod.LZMA, CompressionType.PPMd => ZipCompressionMethod.PPMd, - _ => throw new InvalidFormatException("Invalid compression method: " + compressionType) + _ => throw new InvalidFormatException("Invalid compression method: " + compressionType), }; public override void Write(string entryPath, Stream source, DateTime? modificationTime) => @@ -100,7 +100,7 @@ public class ZipWriter : AbstractWriter ) { Comment = options.EntryComment, - ModificationTime = options.ModificationDateTime + ModificationTime = options.ModificationDateTime, }; // Use the archive default setting for zip64 and allow overrides diff --git a/tests/SharpCompress.Test/ArchiveTests.cs b/tests/SharpCompress.Test/ArchiveTests.cs index 29903efe..94f402c9 100644 --- a/tests/SharpCompress.Test/ArchiveTests.cs +++ b/tests/SharpCompress.Test/ArchiveTests.cs @@ -295,7 +295,7 @@ public class ArchiveTests : ReaderTests ExtractFullPath = true, Overwrite = true, PreserveAttributes = true, - PreserveFileTime = true + PreserveFileTime = true, } ); } diff --git a/tests/SharpCompress.Test/Filters/BranchExecTests.cs b/tests/SharpCompress.Test/Filters/BranchExecTests.cs index ca9686a4..8cd3123d 100644 --- a/tests/SharpCompress.Test/Filters/BranchExecTests.cs +++ b/tests/SharpCompress.Test/Filters/BranchExecTests.cs @@ -91,7 +91,7 @@ public class BranchExecTests 0x00, 0x00, 0x1C, - 0x00 + 0x00, ]; private static byte[] X86Data { get; } = @@ -173,7 +173,7 @@ public class BranchExecTests 0x00, 0x00, 0x1C, - 0x00 + 0x00, ]; private static byte[] PpcResultData { get; } = @@ -273,7 +273,7 @@ public class BranchExecTests 0x7A, 0xB2, 0xD4, - 0xED + 0xED, ]; private static byte[] PpcData { get; } = @@ -373,7 +373,7 @@ public class BranchExecTests 0x7A, 0xB2, 0xD4, - 0xED + 0xED, ]; private static byte[] ArmResultData { get; } = @@ -473,7 +473,7 @@ public class BranchExecTests 0x00, 0xC6, 0x8F, - 0xE2 + 0xE2, ]; private static byte[] ArmData { get; } = @@ -573,7 +573,7 @@ public class BranchExecTests 0x00, 0xC6, 0x8F, - 0xE2 + 0xE2, ]; private static byte[] ArmtResultData { get; } = @@ -689,7 +689,7 @@ public class BranchExecTests 0x7D, 0xED, 0x11, - 0x0F + 0x0F, ]; private static byte[] ArmtData { get; } = @@ -805,7 +805,7 @@ public class BranchExecTests 0x7D, 0xED, 0x11, - 0x0F + 0x0F, ]; private static byte[] Ia64ResultData { get; } = @@ -905,7 +905,7 @@ public class BranchExecTests 0x2B, 0x72, 0xD5, - 0x0D + 0x0D, ]; private static byte[] Ia64Data { get; } = @@ -1005,7 +1005,7 @@ public class BranchExecTests 0x2B, 0x72, 0xD5, - 0x0D + 0x0D, ]; private static byte[] SparcResultData { get; } = @@ -1087,7 +1087,7 @@ public class BranchExecTests 0x91, 0x00, 0x10, - 0x00 + 0x00, ]; private static byte[] SparcData { get; } = @@ -1169,7 +1169,7 @@ public class BranchExecTests 0x91, 0x00, 0x10, - 0x00 + 0x00, ]; private void CompareBuffer(byte[] testBuffer, byte[] targetBuffer) => diff --git a/tests/SharpCompress.Test/Rar/RarArchiveTests.cs b/tests/SharpCompress.Test/Rar/RarArchiveTests.cs index 373af692..81d2c089 100644 --- a/tests/SharpCompress.Test/Rar/RarArchiveTests.cs +++ b/tests/SharpCompress.Test/Rar/RarArchiveTests.cs @@ -235,7 +235,7 @@ public class RarArchiveTests : ArchiveTests "Rar.multi.part03.rar", "Rar.multi.part04.rar", "Rar.multi.part05.rar", - "Rar.multi.part06.rar" + "Rar.multi.part06.rar", ], false ); @@ -249,7 +249,7 @@ public class RarArchiveTests : ArchiveTests "Rar5.multi.part03.rar", "Rar5.multi.part04.rar", "Rar5.multi.part05.rar", - "Rar5.multi.part06.rar" + "Rar5.multi.part06.rar", ], false ); @@ -278,7 +278,7 @@ public class RarArchiveTests : ArchiveTests "Rar.multi.solid.part03.rar", "Rar.multi.solid.part04.rar", "Rar.multi.solid.part05.rar", - "Rar.multi.solid.part06.rar" + "Rar.multi.solid.part06.rar", ], true ); @@ -348,7 +348,7 @@ public class RarArchiveTests : ArchiveTests "Rar2.multi.r02", "Rar2.multi.r03", "Rar2.multi.r04", - "Rar2.multi.r05" + "Rar2.multi.r05", ], false ); @@ -424,7 +424,7 @@ public class RarArchiveTests : ArchiveTests "Rar4.split.003", "Rar4.split.004", "Rar4.split.005", - "Rar4.split.006" + "Rar4.split.006", } ); @@ -440,7 +440,7 @@ public class RarArchiveTests : ArchiveTests "Rar2.multi.r02", "Rar2.multi.r03", "Rar2.multi.r04", - "Rar2.multi.r05" + "Rar2.multi.r05", } ); @@ -456,7 +456,7 @@ public class RarArchiveTests : ArchiveTests "Rar4.multi.part04.rar", "Rar4.multi.part05.rar", "Rar4.multi.part06.rar", - "Rar4.multi.part07.rar" + "Rar4.multi.part07.rar", } ); @@ -470,7 +470,7 @@ public class RarArchiveTests : ArchiveTests "Rar4.multi.part04.rar", "Rar4.multi.part05.rar", "Rar4.multi.part06.rar", - "Rar4.multi.part07.rar" + "Rar4.multi.part07.rar", ], false ); @@ -486,7 +486,7 @@ public class RarArchiveTests : ArchiveTests "Rar4.split.003", "Rar4.split.004", "Rar4.split.005", - "Rar4.split.006" + "Rar4.split.006", ] ); @@ -515,7 +515,7 @@ public class RarArchiveTests : ArchiveTests ArchiveStreamMultiRead( null, [ - "Rar4.split.001" + "Rar4.split.001", //"Rar4.split.002", //"Rar4.split.003", //"Rar4.split.004", @@ -557,7 +557,7 @@ public class RarArchiveTests : ArchiveTests [ [0, 1], //exe - Rar4.multi.part01.rar to Rar4.multi.part02.rar [1, 5], //jpg - Rar4.multi.part02.rar to Rar4.multi.part06.rar - [5, 6] //txt - Rar4.multi.part06.rar to Rar4.multi.part07.rar + [5, 6], //txt - Rar4.multi.part06.rar to Rar4.multi.part07.rar ], null, "Rar4.multi.part01.rar", diff --git a/tests/SharpCompress.Test/Rar/RarReaderTests.cs b/tests/SharpCompress.Test/Rar/RarReaderTests.cs index 6ba605a5..5d3c0e64 100644 --- a/tests/SharpCompress.Test/Rar/RarReaderTests.cs +++ b/tests/SharpCompress.Test/Rar/RarReaderTests.cs @@ -19,7 +19,7 @@ public class RarReaderTests : ReaderTests "Rar.multi.part03.rar", "Rar.multi.part04.rar", "Rar.multi.part05.rar", - "Rar.multi.part06.rar" + "Rar.multi.part06.rar", ] ); @@ -32,7 +32,7 @@ public class RarReaderTests : ReaderTests "Rar5.multi.part03.rar", "Rar5.multi.part04.rar", "Rar5.multi.part05.rar", - "Rar5.multi.part06.rar" + "Rar5.multi.part06.rar", ] ); @@ -66,7 +66,7 @@ public class RarReaderTests : ReaderTests "Rar.EncryptedParts.part03.rar", "Rar.EncryptedParts.part04.rar", "Rar.EncryptedParts.part05.rar", - "Rar.EncryptedParts.part06.rar" + "Rar.EncryptedParts.part06.rar", ] ); @@ -102,7 +102,7 @@ public class RarReaderTests : ReaderTests "Rar.multi.part03.rar", "Rar.multi.part04.rar", "Rar.multi.part05.rar", - "Rar.multi.part06.rar" + "Rar.multi.part06.rar", ] ); @@ -115,7 +115,7 @@ public class RarReaderTests : ReaderTests "Rar5.multi.part03.rar", "Rar5.multi.part04.rar", "Rar5.multi.part05.rar", - "Rar5.multi.part06.rar" + "Rar5.multi.part06.rar", ] ); @@ -338,7 +338,7 @@ public class RarReaderTests : ReaderTests "Rar.EncryptedParts.part03.rar", "Rar.EncryptedParts.part04.rar", "Rar.EncryptedParts.part05.rar", - "Rar.EncryptedParts.part06.rar" + "Rar.EncryptedParts.part06.rar", }; using var reader = RarReader.Open( diff --git a/tests/SharpCompress.Test/Streams/LzmaStreamTests.cs b/tests/SharpCompress.Test/Streams/LzmaStreamTests.cs index 2eea6607..634929b1 100644 --- a/tests/SharpCompress.Test/Streams/LzmaStreamTests.cs +++ b/tests/SharpCompress.Test/Streams/LzmaStreamTests.cs @@ -174,7 +174,7 @@ public class LzmaStreamTests 0xF1, 0x76, 0x03, - 0x90 + 0x90, ]; /// @@ -509,7 +509,7 @@ public class LzmaStreamTests 0x0A, 0x00, 0x00, - 0x00 + 0x00, ]; [Fact] diff --git a/tests/SharpCompress.Test/Streams/ZlibBaseStreamTests.cs b/tests/SharpCompress.Test/Streams/ZlibBaseStreamTests.cs index 56f934d6..ab8e6656 100644 --- a/tests/SharpCompress.Test/Streams/ZlibBaseStreamTests.cs +++ b/tests/SharpCompress.Test/Streams/ZlibBaseStreamTests.cs @@ -34,7 +34,7 @@ public class ZLibBaseStreamTests 0x8b, 0xce, 0x49, - 0xd2 + 0xd2, }; var buf = new byte[plainData.Length * 2]; diff --git a/tests/SharpCompress.Test/Tar/TarArchiveTests.cs b/tests/SharpCompress.Test/Tar/TarArchiveTests.cs index 1024e945..efbde472 100644 --- a/tests/SharpCompress.Test/Tar/TarArchiveTests.cs +++ b/tests/SharpCompress.Test/Tar/TarArchiveTests.cs @@ -252,7 +252,7 @@ public class TarArchiveTests : ArchiveTests [Fact] public void Tar_Read_One_At_A_Time() { - var archiveEncoding = new ArchiveEncoding { Default = Encoding.UTF8, }; + var archiveEncoding = new ArchiveEncoding { Default = Encoding.UTF8 }; var tarWriterOptions = new TarWriterOptions(CompressionType.None, true) { ArchiveEncoding = archiveEncoding, diff --git a/tests/SharpCompress.Test/Tar/TarReaderTests.cs b/tests/SharpCompress.Test/Tar/TarReaderTests.cs index 3b6a6a88..d2b01ef0 100644 --- a/tests/SharpCompress.Test/Tar/TarReaderTests.cs +++ b/tests/SharpCompress.Test/Tar/TarReaderTests.cs @@ -232,7 +232,7 @@ public class TarReaderTests : ReaderTests } link.CreateSymbolicLinkTo(targetPath); } - } + }, } ); if (!isWindows) diff --git a/tests/SharpCompress.Test/WriterTests.cs b/tests/SharpCompress.Test/WriterTests.cs index 50695ef1..ba08b3d2 100644 --- a/tests/SharpCompress.Test/WriterTests.cs +++ b/tests/SharpCompress.Test/WriterTests.cs @@ -22,7 +22,7 @@ public class WriterTests : TestBase { using (Stream stream = File.OpenWrite(Path.Combine(SCRATCH2_FILES_PATH, archive))) { - var writerOptions = new WriterOptions(compressionType) { LeaveStreamOpen = true, }; + var writerOptions = new WriterOptions(compressionType) { LeaveStreamOpen = true }; writerOptions.ArchiveEncoding.Default = encoding ?? Encoding.Default; diff --git a/tests/SharpCompress.Test/Xz/XZTestsBase.cs b/tests/SharpCompress.Test/Xz/XZTestsBase.cs index a679934e..d1c15638 100644 --- a/tests/SharpCompress.Test/Xz/XZTestsBase.cs +++ b/tests/SharpCompress.Test/Xz/XZTestsBase.cs @@ -61,7 +61,7 @@ public abstract class XzTestsBase : IDisposable 0x00, 0x01, 0x59, - 0x5a + 0x5a, ]; protected static byte[] OriginalEmptyBytes => Encoding.ASCII.GetBytes(OriginalEmpty); @@ -451,7 +451,7 @@ public abstract class XzTestsBase : IDisposable 0x00, 0x04, 0x59, - 0x5a + 0x5a, ]; protected static byte[] OriginalBytes => Encoding.ASCII.GetBytes(Original); @@ -1119,7 +1119,7 @@ public abstract class XzTestsBase : IDisposable 0x00, 0x01, 0x59, - 0x5a + 0x5a, ]; protected static byte[] OriginalIndexedBytes => Encoding.ASCII.GetBytes(OriginalIndexed); diff --git a/tests/SharpCompress.Test/Zip/ZipArchiveTests.cs b/tests/SharpCompress.Test/Zip/ZipArchiveTests.cs index 34de7422..4fb6d89a 100644 --- a/tests/SharpCompress.Test/Zip/ZipArchiveTests.cs +++ b/tests/SharpCompress.Test/Zip/ZipArchiveTests.cs @@ -121,7 +121,7 @@ public class ZipArchiveTests : ArchiveTests "Zip.deflate.split.003", "Zip.deflate.split.004", "Zip.deflate.split.005", - "Zip.deflate.split.006" + "Zip.deflate.split.006", } ); @@ -755,7 +755,7 @@ public class ZipArchiveTests : ArchiveTests "Folder/File2.rtf", "Folder2/File1.txt", "Folder2/File2.txt", - "DEADBEEF" + "DEADBEEF", }; var zipPath = Path.Combine(TEST_ARCHIVES_PATH, "Zip.uncompressed.zip"); using var stream = File.Open(zipPath, FileMode.Open, FileAccess.Read); @@ -784,7 +784,7 @@ public class ZipArchiveTests : ArchiveTests ArchiveEncoding = new ArchiveEncoding { Default = Encoding.GetEncoding("shift_jis"), - } + }, } ); var reader = archive.ExtractAllEntries(); @@ -800,7 +800,7 @@ public class ZipArchiveTests : ArchiveTests ArchiveEncoding = new ArchiveEncoding { Forced = Encoding.GetEncoding("shift_jis"), - } + }, } ); var reader = archive.ExtractAllEntries(); diff --git a/tests/SharpCompress.Test/Zip/ZipReaderTests.cs b/tests/SharpCompress.Test/Zip/ZipReaderTests.cs index 3296bcb0..69c6326f 100644 --- a/tests/SharpCompress.Test/Zip/ZipReaderTests.cs +++ b/tests/SharpCompress.Test/Zip/ZipReaderTests.cs @@ -248,7 +248,7 @@ public class ZipReaderTests : ReaderTests var expected = new[] { new Tuple("foo.txt", Array.Empty()), - new Tuple("foo2.txt", new byte[10]) + new Tuple("foo2.txt", new byte[10]), }; using var memory = new MemoryStream(); From 8da2ffa4338344ede63646c31c4c1df6e23724a1 Mon Sep 17 00:00:00 2001 From: Adam Hathcock Date: Tue, 14 Jan 2025 09:12:03 +0000 Subject: [PATCH 53/65] Update dependencies --- Directory.Packages.props | 16 +- src/SharpCompress/packages.lock.json | 41 +-- .../SharpCompress.Test.csproj | 2 +- tests/SharpCompress.Test/packages.lock.json | 273 ++++++++++-------- 4 files changed, 178 insertions(+), 154 deletions(-) diff --git a/Directory.Packages.props b/Directory.Packages.props index 498bf1b5..1108acd8 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -1,19 +1,19 @@ - + - + - + - - - - + + + + - \ No newline at end of file + diff --git a/src/SharpCompress/packages.lock.json b/src/SharpCompress/packages.lock.json index a30a91bf..d0e1a2f1 100644 --- a/src/SharpCompress/packages.lock.json +++ b/src/SharpCompress/packages.lock.json @@ -38,13 +38,13 @@ }, "System.Memory": { "type": "Direct", - "requested": "[4.5.5, )", - "resolved": "4.5.5", - "contentHash": "XIWiDvKPXaTveaB7HVganDlOCRoj03l+jrwNvcge/t8vhGYKvqV+dMv6G4SAX2NoNmN0wZfVPTAlFwZcZvVOUw==", + "requested": "[4.6.0, )", + "resolved": "4.6.0", + "contentHash": "OEkbBQoklHngJ8UD8ez2AERSk2g+/qpAaSWWCBFbpH727HxDq5ydVkuncBaKcKfwRqXGWx64dS6G1SUScMsitg==", "dependencies": { - "System.Buffers": "4.5.1", - "System.Numerics.Vectors": "4.4.0", - "System.Runtime.CompilerServices.Unsafe": "4.5.3" + "System.Buffers": "4.6.0", + "System.Numerics.Vectors": "4.6.0", + "System.Runtime.CompilerServices.Unsafe": "6.1.0" } }, "System.Text.Encoding.CodePages": { @@ -59,12 +59,13 @@ }, "ZstdSharp.Port": { "type": "Direct", - "requested": "[0.8.1, )", - "resolved": "0.8.1", - "contentHash": "19tNz33kn2EkyViFXuxfVn338UJaRmkwBphVqP2dVJIYQUQgFrgG5h061mxkRRg1Ax6r+6WOj1FxaFZ5qaWqqg==", + "requested": "[0.8.4, )", + "resolved": "0.8.4", + "contentHash": "eieSXq3kakCUXbgdxkKaRqWS6hF0KBJcqok9LlDCs60GOyrynLvPOcQ0pRw7shdPF7lh/VepJ9cP9n9HHc759g==", "dependencies": { "Microsoft.Bcl.AsyncInterfaces": "5.0.0", - "System.Memory": "4.5.5" + "System.Memory": "4.5.5", + "System.Runtime.CompilerServices.Unsafe": "6.0.0" } }, "Microsoft.Build.Tasks.Git": { @@ -84,13 +85,13 @@ }, "System.Numerics.Vectors": { "type": "Transitive", - "resolved": "4.4.0", - "contentHash": "UiLzLW+Lw6HLed1Hcg+8jSRttrbuXv7DANVj0DkL9g6EnnzbL75EB7EWsw5uRbhxd/4YdG8li5XizGWepmG3PQ==" + "resolved": "4.6.0", + "contentHash": "t+SoieZsRuEyiw/J+qXUbolyO219tKQQI0+2/YI+Qv7YdGValA6WiuokrNKqjrTNsy5ABWU11bdKOzUdheteXg==" }, "System.Runtime.CompilerServices.Unsafe": { "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "/iUeP3tq1S0XdNNoMz5C9twLSrM/TH+qElHkXWaPvuNOt+99G75NrV0OS2EqHx5wMN7popYjpc8oTjC1y16DLg==" + "resolved": "6.1.0", + "contentHash": "5o/HZxx6RVqYlhKSq8/zronDkALJZUT2Vz0hx43f0gwe8mwlM0y2nYlqdBwLMzr262Bwvpikeb/yEwkAa5PADg==" }, "System.Threading.Tasks.Extensions": { "type": "Transitive", @@ -120,9 +121,9 @@ }, "ZstdSharp.Port": { "type": "Direct", - "requested": "[0.8.1, )", - "resolved": "0.8.1", - "contentHash": "19tNz33kn2EkyViFXuxfVn338UJaRmkwBphVqP2dVJIYQUQgFrgG5h061mxkRRg1Ax6r+6WOj1FxaFZ5qaWqqg==" + "requested": "[0.8.4, )", + "resolved": "0.8.4", + "contentHash": "eieSXq3kakCUXbgdxkKaRqWS6hF0KBJcqok9LlDCs60GOyrynLvPOcQ0pRw7shdPF7lh/VepJ9cP9n9HHc759g==" }, "Microsoft.Build.Tasks.Git": { "type": "Transitive", @@ -160,9 +161,9 @@ }, "ZstdSharp.Port": { "type": "Direct", - "requested": "[0.8.1, )", - "resolved": "0.8.1", - "contentHash": "19tNz33kn2EkyViFXuxfVn338UJaRmkwBphVqP2dVJIYQUQgFrgG5h061mxkRRg1Ax6r+6WOj1FxaFZ5qaWqqg==" + "requested": "[0.8.4, )", + "resolved": "0.8.4", + "contentHash": "eieSXq3kakCUXbgdxkKaRqWS6hF0KBJcqok9LlDCs60GOyrynLvPOcQ0pRw7shdPF7lh/VepJ9cP9n9HHc759g==" }, "Microsoft.Build.Tasks.Git": { "type": "Transitive", diff --git a/tests/SharpCompress.Test/SharpCompress.Test.csproj b/tests/SharpCompress.Test/SharpCompress.Test.csproj index 3bfeaa3e..3e8d7d76 100644 --- a/tests/SharpCompress.Test/SharpCompress.Test.csproj +++ b/tests/SharpCompress.Test/SharpCompress.Test.csproj @@ -1,6 +1,6 @@  - net8.0;net462 + net8.0;net472 SharpCompress.Test SharpCompress.Test diff --git a/tests/SharpCompress.Test/packages.lock.json b/tests/SharpCompress.Test/packages.lock.json index 94f193fc..b0b649c0 100644 --- a/tests/SharpCompress.Test/packages.lock.json +++ b/tests/SharpCompress.Test/packages.lock.json @@ -1,32 +1,23 @@ { "version": 2, "dependencies": { - ".NETFramework,Version=v4.6.2": { + ".NETFramework,Version=v4.7.2": { "FluentAssertions": { "type": "Direct", - "requested": "[6.12.0, )", - "resolved": "6.12.0", - "contentHash": "ZXhHT2YwP9lajrwSKbLlFqsmCCvFJMoRSK9t7sImfnCyd0OB3MhgxdoMcVqxbq1iyxD6mD2fiackWmBb7ayiXQ==", + "requested": "[7.0.0, )", + "resolved": "7.0.0", + "contentHash": "mTLbcU991EQ1SEmNbVBaGGGJy0YFzvGd1sYJGNZ07nlPKuyHSn1I22aeKzqQXgEiaKyRO6MSCto9eN9VxMwBdA==", "dependencies": { - "System.Threading.Tasks.Extensions": "4.5.0" + "System.Threading.Tasks.Extensions": "4.5.4" } }, "Microsoft.NET.Test.Sdk": { "type": "Direct", - "requested": "[17.10.0, )", - "resolved": "17.10.0", - "contentHash": "0/2HeACkaHEYU3wc83YlcD2Fi4LMtECJjqrtvw0lPi9DCEa35zSPt1j4fuvM8NagjDqJuh1Ja35WcRtn1Um6/A==", + "requested": "[17.12.0, )", + "resolved": "17.12.0", + "contentHash": "kt/PKBZ91rFCWxVIJZSgVLk+YR+4KxTuHf799ho8WNiK5ZQpJNAEZCAWX86vcKrs+DiYjiibpYKdGZP6+/N17w==", "dependencies": { - "Microsoft.CodeCoverage": "17.10.0" - } - }, - "Microsoft.NETFramework.ReferenceAssemblies": { - "type": "Direct", - "requested": "[1.0.3, )", - "resolved": "1.0.3", - "contentHash": "vUc9Npcs14QsyOD01tnv/m8sQUnGTGOw1BCmKcv77LBJY7OxhJ+zJF7UD/sCL3lYNFuqmQEVlkfS4Quif6FyYg==", - "dependencies": { - "Microsoft.NETFramework.ReferenceAssemblies.net462": "1.0.3" + "Microsoft.CodeCoverage": "17.12.0" } }, "Microsoft.SourceLink.GitHub": { @@ -41,31 +32,31 @@ }, "xunit": { "type": "Direct", - "requested": "[2.9.0, )", - "resolved": "2.9.0", - "contentHash": "PtU3rZ0ThdmdJqTbK7GkgFf6iBaCR6Q0uvJHznID+XEYk2v6O/b7sRxqnbi3B2gRDXxjTqMkVNayzwsqsFUxRw==", + "requested": "[2.9.3, )", + "resolved": "2.9.3", + "contentHash": "TlXQBinK35LpOPKHAqbLY4xlEen9TBafjs0V5KnA4wZsoQLQJiirCR4CbIXvOH8NzkW4YeJKP5P/Bnrodm0h9Q==", "dependencies": { - "xunit.analyzers": "1.15.0", - "xunit.assert": "2.9.0", - "xunit.core": "[2.9.0]" + "xunit.analyzers": "1.18.0", + "xunit.assert": "2.9.3", + "xunit.core": "[2.9.3]" } }, "xunit.runner.visualstudio": { "type": "Direct", - "requested": "[2.8.2, )", - "resolved": "2.8.2", - "contentHash": "vm1tbfXhFmjFMUmS4M0J0ASXz3/U5XvXBa6DOQUL3fEz4Vt6YPhv+ESCarx6M6D+9kJkJYZKCNvJMas1+nVfmQ==", + "requested": "[3.0.1, )", + "resolved": "3.0.1", + "contentHash": "lbyYtsBxA8Pz8kaf5Xn/Mj1mL9z2nlBWdZhqFaj66nxXBa4JwiTDm4eGcpSMet6du9TOWI6bfha+gQR6+IHawg==", "dependencies": { - "Microsoft.TestPlatform.ObjectModel": "17.10.0" + "Microsoft.TestPlatform.ObjectModel": "17.12.0" } }, "Xunit.SkippableFact": { "type": "Direct", - "requested": "[1.4.13, )", - "resolved": "1.4.13", - "contentHash": "IyzZNvJEtXGlXrzxDiSbtH5Lyxf4iJdRQADuyjGdDf00LjXRLJwIoezQNFhFGKTMtvk8IIgaSHxW4mAV4O7b8A==", + "requested": "[1.5.23, )", + "resolved": "1.5.23", + "contentHash": "JlKobLTlsGcuJ8OtoodxL63bUagHSVBnF+oQ2GgnkwNqK+XYjeYyhQasULi5Ebx1MNDGNbOMplQYr89mR+nItQ==", "dependencies": { - "Validation": "2.4.18", + "Validation": "2.5.51", "xunit.extensibility.execution": "2.4.0" } }, @@ -76,13 +67,8 @@ }, "Microsoft.CodeCoverage": { "type": "Transitive", - "resolved": "17.10.0", - "contentHash": "yC7oSlnR54XO5kOuHlVOKtxomNNN1BWXX8lK1G2jaPXT9sUok7kCOoA4Pgs0qyFaCtMrNsprztYMeoEGqCm4uA==" - }, - "Microsoft.NETFramework.ReferenceAssemblies.net462": { - "type": "Transitive", - "resolved": "1.0.3", - "contentHash": "IzAV30z22ESCeQfxP29oVf4qEo8fBGXLXSU6oacv/9Iqe6PzgHDKCaWfwMBak7bSJQM0F5boXWoZS+kChztRIQ==" + "resolved": "17.12.0", + "contentHash": "4svMznBd5JM21JIG2xZKGNanAHNXplxf/kQDFfLHXQ3OnpJkayRK/TjacFjA+EYmoyuNXHo/sOETEfcYtAzIrA==" }, "Microsoft.SourceLink.Common": { "type": "Transitive", @@ -91,8 +77,8 @@ }, "Microsoft.TestPlatform.ObjectModel": { "type": "Transitive", - "resolved": "17.10.0", - "contentHash": "KkwhjQevuDj0aBRoPLY6OLAhGqbPUEBuKLbaCs0kUVw29qiOYncdORd4mLVJbn9vGZ7/iFGQ/+AoJl0Tu5Umdg==", + "resolved": "17.12.0", + "contentHash": "TDqkTKLfQuAaPcEb3pDDWnh7b3SyZF+/W9OZvWFp6eJCIiiYFdSB6taE2I6tWrFw5ywhzOb6sreoGJTI6m3rSQ==", "dependencies": { "System.Reflection.Metadata": "1.6.0" } @@ -104,8 +90,8 @@ }, "System.Numerics.Vectors": { "type": "Transitive", - "resolved": "4.5.0", - "contentHash": "QQTlPTl06J/iiDbJCiepZ4H//BVraReU4O4EoRw1U02H5TLUIT7xn3GnDp9AXPSlJUDyFs4uWjWafNX6WrAojQ==" + "resolved": "4.6.0", + "contentHash": "t+SoieZsRuEyiw/J+qXUbolyO219tKQQI0+2/YI+Qv7YdGValA6WiuokrNKqjrTNsy5ABWU11bdKOzUdheteXg==" }, "System.Reflection.Metadata": { "type": "Transitive", @@ -117,8 +103,8 @@ }, "System.Runtime.CompilerServices.Unsafe": { "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "/iUeP3tq1S0XdNNoMz5C9twLSrM/TH+qElHkXWaPvuNOt+99G75NrV0OS2EqHx5wMN7popYjpc8oTjC1y16DLg==" + "resolved": "6.1.0", + "contentHash": "5o/HZxx6RVqYlhKSq8/zronDkALJZUT2Vz0hx43f0gwe8mwlM0y2nYlqdBwLMzr262Bwvpikeb/yEwkAa5PADg==" }, "System.Threading.Tasks.Extensions": { "type": "Transitive", @@ -130,8 +116,8 @@ }, "Validation": { "type": "Transitive", - "resolved": "2.4.18", - "contentHash": "NfvWJ1QeuZ1FQCkqgXTu1cOkRkbNCfxs4Tat+abXLwom6OXbULVhRGp34BTvVB4XPxj6VIAl7KfLfStXMt/Ehw==" + "resolved": "2.5.51", + "contentHash": "g/Aug7PVWaenlJ0QUyt/mEetngkQNsMCuNeRVXbcJED1nZS7JcK+GTU4kz3jcQ7bFuKfi8PF4ExXH7XSFNuSLQ==" }, "xunit.abstractions": { "type": "Transitive", @@ -140,37 +126,37 @@ }, "xunit.analyzers": { "type": "Transitive", - "resolved": "1.15.0", - "contentHash": "s+M8K/Rtlgr6CmD7AYQKrNTvT5sh0l0ZKDoZ3Z/ExhlIwfV9mGAMR4f7KqIB7SSK7ZOhqDTgTUMYPmKfmvWUWQ==" + "resolved": "1.18.0", + "contentHash": "OtFMHN8yqIcYP9wcVIgJrq01AfTxijjAqVDy/WeQVSyrDC1RzBWeQPztL49DN2syXRah8TYnfvk035s7L95EZQ==" }, "xunit.assert": { "type": "Transitive", - "resolved": "2.9.0", - "contentHash": "Z/1pyia//860wEYTKn6Q5dmgikJdRjgE4t5AoxJkK8oTmidzPLEPG574kmm7LFkMLbH6Frwmgb750kcyR+hwoA==" + "resolved": "2.9.3", + "contentHash": "/Kq28fCE7MjOV42YLVRAJzRF0WmEqsmflm0cfpMjGtzQ2lR5mYVj1/i0Y8uDAOLczkL3/jArrwehfMD0YogMAA==" }, "xunit.core": { "type": "Transitive", - "resolved": "2.9.0", - "contentHash": "uRaop9tZsZMCaUS4AfbSPGYHtvywWnm8XXFNUqII7ShWyDBgdchY6gyDNgO4AK1Lv/1NNW61Zq63CsDV6oH6Jg==", + "resolved": "2.9.3", + "contentHash": "BiAEvqGvyme19wE0wTKdADH+NloYqikiU0mcnmiNyXaF9HyHmE6sr/3DC5vnBkgsWaE6yPyWszKSPSApWdRVeQ==", "dependencies": { - "xunit.extensibility.core": "[2.9.0]", - "xunit.extensibility.execution": "[2.9.0]" + "xunit.extensibility.core": "[2.9.3]", + "xunit.extensibility.execution": "[2.9.3]" } }, "xunit.extensibility.core": { "type": "Transitive", - "resolved": "2.9.0", - "contentHash": "zjDEUSxsr6UNij4gIwCgMqQox+oLDPRZ+mubwWLci+SssPBFQD1xeRR4SvgBuXqbE0QXCJ/STVTp+lxiB5NLVA==", + "resolved": "2.9.3", + "contentHash": "kf3si0YTn2a8J8eZNb+zFpwfoyvIrQ7ivNk5ZYA5yuYk1bEtMe4DxJ2CF/qsRgmEnDr7MnW1mxylBaHTZ4qErA==", "dependencies": { "xunit.abstractions": "2.0.3" } }, "xunit.extensibility.execution": { "type": "Transitive", - "resolved": "2.9.0", - "contentHash": "5ZTQZvmPLlBw6QzCOwM0KnMsZw6eGjbmC176QHZlcbQoMhGIeGcYzYwn5w9yXxf+4phtplMuVqTpTbFDQh2bqQ==", + "resolved": "2.9.3", + "contentHash": "yMb6vMESlSrE3Wfj7V6cjQ3S4TXdXpRqYeNEI3zsX31uTsGMJjEw6oD5F5u1cHnMptjhEECnmZSsPxB6ChZHDQ==", "dependencies": { - "xunit.extensibility.core": "[2.9.0]" + "xunit.extensibility.core": "[2.9.3]" } }, "sharpcompress": { @@ -178,9 +164,9 @@ "dependencies": { "Microsoft.Bcl.AsyncInterfaces": "[8.0.0, )", "System.Buffers": "[4.6.0, )", - "System.Memory": "[4.5.5, )", + "System.Memory": "[4.6.0, )", "System.Text.Encoding.CodePages": "[8.0.0, )", - "ZstdSharp.Port": "[0.8.1, )" + "ZstdSharp.Port": "[0.8.4, )" } }, "Microsoft.Bcl.AsyncInterfaces": { @@ -200,13 +186,13 @@ }, "System.Memory": { "type": "CentralTransitive", - "requested": "[4.5.5, )", - "resolved": "4.5.5", - "contentHash": "XIWiDvKPXaTveaB7HVganDlOCRoj03l+jrwNvcge/t8vhGYKvqV+dMv6G4SAX2NoNmN0wZfVPTAlFwZcZvVOUw==", + "requested": "[4.6.0, )", + "resolved": "4.6.0", + "contentHash": "OEkbBQoklHngJ8UD8ez2AERSk2g+/qpAaSWWCBFbpH727HxDq5ydVkuncBaKcKfwRqXGWx64dS6G1SUScMsitg==", "dependencies": { - "System.Buffers": "4.5.1", - "System.Numerics.Vectors": "4.5.0", - "System.Runtime.CompilerServices.Unsafe": "4.5.3" + "System.Buffers": "4.6.0", + "System.Numerics.Vectors": "4.6.0", + "System.Runtime.CompilerServices.Unsafe": "6.1.0" } }, "System.Text.Encoding.CodePages": { @@ -221,33 +207,34 @@ }, "ZstdSharp.Port": { "type": "CentralTransitive", - "requested": "[0.8.1, )", - "resolved": "0.8.1", - "contentHash": "19tNz33kn2EkyViFXuxfVn338UJaRmkwBphVqP2dVJIYQUQgFrgG5h061mxkRRg1Ax6r+6WOj1FxaFZ5qaWqqg==", + "requested": "[0.8.4, )", + "resolved": "0.8.4", + "contentHash": "eieSXq3kakCUXbgdxkKaRqWS6hF0KBJcqok9LlDCs60GOyrynLvPOcQ0pRw7shdPF7lh/VepJ9cP9n9HHc759g==", "dependencies": { "Microsoft.Bcl.AsyncInterfaces": "5.0.0", - "System.Memory": "4.5.5" + "System.Memory": "4.5.5", + "System.Runtime.CompilerServices.Unsafe": "6.0.0" } } }, "net8.0": { "FluentAssertions": { "type": "Direct", - "requested": "[6.12.0, )", - "resolved": "6.12.0", - "contentHash": "ZXhHT2YwP9lajrwSKbLlFqsmCCvFJMoRSK9t7sImfnCyd0OB3MhgxdoMcVqxbq1iyxD6mD2fiackWmBb7ayiXQ==", + "requested": "[7.0.0, )", + "resolved": "7.0.0", + "contentHash": "mTLbcU991EQ1SEmNbVBaGGGJy0YFzvGd1sYJGNZ07nlPKuyHSn1I22aeKzqQXgEiaKyRO6MSCto9eN9VxMwBdA==", "dependencies": { - "System.Configuration.ConfigurationManager": "4.4.0" + "System.Configuration.ConfigurationManager": "6.0.0" } }, "Microsoft.NET.Test.Sdk": { "type": "Direct", - "requested": "[17.10.0, )", - "resolved": "17.10.0", - "contentHash": "0/2HeACkaHEYU3wc83YlcD2Fi4LMtECJjqrtvw0lPi9DCEa35zSPt1j4fuvM8NagjDqJuh1Ja35WcRtn1Um6/A==", + "requested": "[17.12.0, )", + "resolved": "17.12.0", + "contentHash": "kt/PKBZ91rFCWxVIJZSgVLk+YR+4KxTuHf799ho8WNiK5ZQpJNAEZCAWX86vcKrs+DiYjiibpYKdGZP6+/N17w==", "dependencies": { - "Microsoft.CodeCoverage": "17.10.0", - "Microsoft.TestPlatform.TestHost": "17.10.0" + "Microsoft.CodeCoverage": "17.12.0", + "Microsoft.TestPlatform.TestHost": "17.12.0" } }, "Microsoft.SourceLink.GitHub": { @@ -268,28 +255,28 @@ }, "xunit": { "type": "Direct", - "requested": "[2.9.0, )", - "resolved": "2.9.0", - "contentHash": "PtU3rZ0ThdmdJqTbK7GkgFf6iBaCR6Q0uvJHznID+XEYk2v6O/b7sRxqnbi3B2gRDXxjTqMkVNayzwsqsFUxRw==", + "requested": "[2.9.3, )", + "resolved": "2.9.3", + "contentHash": "TlXQBinK35LpOPKHAqbLY4xlEen9TBafjs0V5KnA4wZsoQLQJiirCR4CbIXvOH8NzkW4YeJKP5P/Bnrodm0h9Q==", "dependencies": { - "xunit.analyzers": "1.15.0", - "xunit.assert": "2.9.0", - "xunit.core": "[2.9.0]" + "xunit.analyzers": "1.18.0", + "xunit.assert": "2.9.3", + "xunit.core": "[2.9.3]" } }, "xunit.runner.visualstudio": { "type": "Direct", - "requested": "[2.8.2, )", - "resolved": "2.8.2", - "contentHash": "vm1tbfXhFmjFMUmS4M0J0ASXz3/U5XvXBa6DOQUL3fEz4Vt6YPhv+ESCarx6M6D+9kJkJYZKCNvJMas1+nVfmQ==" + "requested": "[3.0.1, )", + "resolved": "3.0.1", + "contentHash": "lbyYtsBxA8Pz8kaf5Xn/Mj1mL9z2nlBWdZhqFaj66nxXBa4JwiTDm4eGcpSMet6du9TOWI6bfha+gQR6+IHawg==" }, "Xunit.SkippableFact": { "type": "Direct", - "requested": "[1.4.13, )", - "resolved": "1.4.13", - "contentHash": "IyzZNvJEtXGlXrzxDiSbtH5Lyxf4iJdRQADuyjGdDf00LjXRLJwIoezQNFhFGKTMtvk8IIgaSHxW4mAV4O7b8A==", + "requested": "[1.5.23, )", + "resolved": "1.5.23", + "contentHash": "JlKobLTlsGcuJ8OtoodxL63bUagHSVBnF+oQ2GgnkwNqK+XYjeYyhQasULi5Ebx1MNDGNbOMplQYr89mR+nItQ==", "dependencies": { - "Validation": "2.4.18", + "Validation": "2.5.51", "xunit.extensibility.execution": "2.4.0" } }, @@ -300,8 +287,8 @@ }, "Microsoft.CodeCoverage": { "type": "Transitive", - "resolved": "17.10.0", - "contentHash": "yC7oSlnR54XO5kOuHlVOKtxomNNN1BWXX8lK1G2jaPXT9sUok7kCOoA4Pgs0qyFaCtMrNsprztYMeoEGqCm4uA==" + "resolved": "17.12.0", + "contentHash": "4svMznBd5JM21JIG2xZKGNanAHNXplxf/kQDFfLHXQ3OnpJkayRK/TjacFjA+EYmoyuNXHo/sOETEfcYtAzIrA==" }, "Microsoft.SourceLink.Common": { "type": "Transitive", @@ -310,21 +297,26 @@ }, "Microsoft.TestPlatform.ObjectModel": { "type": "Transitive", - "resolved": "17.10.0", - "contentHash": "KkwhjQevuDj0aBRoPLY6OLAhGqbPUEBuKLbaCs0kUVw29qiOYncdORd4mLVJbn9vGZ7/iFGQ/+AoJl0Tu5Umdg==", + "resolved": "17.12.0", + "contentHash": "TDqkTKLfQuAaPcEb3pDDWnh7b3SyZF+/W9OZvWFp6eJCIiiYFdSB6taE2I6tWrFw5ywhzOb6sreoGJTI6m3rSQ==", "dependencies": { "System.Reflection.Metadata": "1.6.0" } }, "Microsoft.TestPlatform.TestHost": { "type": "Transitive", - "resolved": "17.10.0", - "contentHash": "LWpMdfqhHvcUkeMCvNYJO8QlPLlYz9XPPb+ZbaXIKhdmjAV0wqTSrTiW5FLaf7RRZT50AQADDOYMOe0HxDxNgA==", + "resolved": "17.12.0", + "contentHash": "MiPEJQNyADfwZ4pJNpQex+t9/jOClBGMiCiVVFuELCMSX2nmNfvUor3uFVxNNCg30uxDP8JDYfPnMXQzsfzYyg==", "dependencies": { - "Microsoft.TestPlatform.ObjectModel": "17.10.0", + "Microsoft.TestPlatform.ObjectModel": "17.12.0", "Newtonsoft.Json": "13.0.1" } }, + "Microsoft.Win32.SystemEvents": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "hqTM5628jSsQiv+HGpiq3WKBl2c8v1KZfby2J6Pr7pEPlK9waPdgEO6b8A/+/xn/yZ9ulv8HuqK71ONy2tg67A==" + }, "Newtonsoft.Json": { "type": "Transitive", "resolved": "13.0.1", @@ -332,10 +324,19 @@ }, "System.Configuration.ConfigurationManager": { "type": "Transitive", - "resolved": "4.4.0", - "contentHash": "gWwQv/Ug1qWJmHCmN17nAbxJYmQBM/E94QxKLksvUiiKB1Ld3Sc/eK1lgmbSjDFxkQhVuayI/cGFZhpBSodLrg==", + "resolved": "6.0.0", + "contentHash": "7T+m0kDSlIPTHIkPMIu6m6tV6qsMqJpvQWW2jIc2qi7sn40qxFo0q+7mEQAhMPXZHMKnWrnv47ntGlM/ejvw3g==", "dependencies": { - "System.Security.Cryptography.ProtectedData": "4.4.0" + "System.Security.Cryptography.ProtectedData": "6.0.0", + "System.Security.Permissions": "6.0.0" + } + }, + "System.Drawing.Common": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "NfuoKUiP2nUWwKZN6twGqXioIe1zVD0RIj2t976A+czLHr2nY454RwwXs6JU9Htc6mwqL6Dn/nEL3dpVf2jOhg==", + "dependencies": { + "Microsoft.Win32.SystemEvents": "6.0.0" } }, "System.Reflection.Metadata": { @@ -343,15 +344,37 @@ "resolved": "1.6.0", "contentHash": "COC1aiAJjCoA5GBF+QKL2uLqEBew4JsCkQmoHKbN3TlOZKa2fKLz5CpiRQKDz0RsAOEGsVKqOD5bomsXq/4STQ==" }, + "System.Security.AccessControl": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "AUADIc0LIEQe7MzC+I0cl0rAT8RrTAKFHl53yHjEUzNVIaUlhFY11vc2ebiVJzVBuOzun6F7FBA+8KAbGTTedQ==" + }, "System.Security.Cryptography.ProtectedData": { "type": "Transitive", - "resolved": "4.4.0", - "contentHash": "cJV7ScGW7EhatRsjehfvvYVBvtiSMKgN8bOVI0bQhnF5bU7vnHVIsH49Kva7i7GWaWYvmEzkYVk1TC+gZYBEog==" + "resolved": "6.0.0", + "contentHash": "rp1gMNEZpvx9vP0JW0oHLxlf8oSiQgtno77Y4PLUBjSiDYoD77Y8uXHr1Ea5XG4/pIKhqAdxZ8v8OTUtqo9PeQ==" + }, + "System.Security.Permissions": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "T/uuc7AklkDoxmcJ7LGkyX1CcSviZuLCa4jg3PekfJ7SU0niF0IVTXwUiNVP9DSpzou2PpxJ+eNY2IfDM90ZCg==", + "dependencies": { + "System.Security.AccessControl": "6.0.0", + "System.Windows.Extensions": "6.0.0" + } + }, + "System.Windows.Extensions": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "IXoJOXIqc39AIe+CIR7koBtRGMiCt/LPM3lI+PELtDIy9XdyeSrwXFdWV9dzJ2Awl0paLWUaknLxFQ5HpHZUog==", + "dependencies": { + "System.Drawing.Common": "6.0.0" + } }, "Validation": { "type": "Transitive", - "resolved": "2.4.18", - "contentHash": "NfvWJ1QeuZ1FQCkqgXTu1cOkRkbNCfxs4Tat+abXLwom6OXbULVhRGp34BTvVB4XPxj6VIAl7KfLfStXMt/Ehw==" + "resolved": "2.5.51", + "contentHash": "g/Aug7PVWaenlJ0QUyt/mEetngkQNsMCuNeRVXbcJED1nZS7JcK+GTU4kz3jcQ7bFuKfi8PF4ExXH7XSFNuSLQ==" }, "xunit.abstractions": { "type": "Transitive", @@ -360,44 +383,44 @@ }, "xunit.analyzers": { "type": "Transitive", - "resolved": "1.15.0", - "contentHash": "s+M8K/Rtlgr6CmD7AYQKrNTvT5sh0l0ZKDoZ3Z/ExhlIwfV9mGAMR4f7KqIB7SSK7ZOhqDTgTUMYPmKfmvWUWQ==" + "resolved": "1.18.0", + "contentHash": "OtFMHN8yqIcYP9wcVIgJrq01AfTxijjAqVDy/WeQVSyrDC1RzBWeQPztL49DN2syXRah8TYnfvk035s7L95EZQ==" }, "xunit.assert": { "type": "Transitive", - "resolved": "2.9.0", - "contentHash": "Z/1pyia//860wEYTKn6Q5dmgikJdRjgE4t5AoxJkK8oTmidzPLEPG574kmm7LFkMLbH6Frwmgb750kcyR+hwoA==" + "resolved": "2.9.3", + "contentHash": "/Kq28fCE7MjOV42YLVRAJzRF0WmEqsmflm0cfpMjGtzQ2lR5mYVj1/i0Y8uDAOLczkL3/jArrwehfMD0YogMAA==" }, "xunit.core": { "type": "Transitive", - "resolved": "2.9.0", - "contentHash": "uRaop9tZsZMCaUS4AfbSPGYHtvywWnm8XXFNUqII7ShWyDBgdchY6gyDNgO4AK1Lv/1NNW61Zq63CsDV6oH6Jg==", + "resolved": "2.9.3", + "contentHash": "BiAEvqGvyme19wE0wTKdADH+NloYqikiU0mcnmiNyXaF9HyHmE6sr/3DC5vnBkgsWaE6yPyWszKSPSApWdRVeQ==", "dependencies": { - "xunit.extensibility.core": "[2.9.0]", - "xunit.extensibility.execution": "[2.9.0]" + "xunit.extensibility.core": "[2.9.3]", + "xunit.extensibility.execution": "[2.9.3]" } }, "xunit.extensibility.core": { "type": "Transitive", - "resolved": "2.9.0", - "contentHash": "zjDEUSxsr6UNij4gIwCgMqQox+oLDPRZ+mubwWLci+SssPBFQD1xeRR4SvgBuXqbE0QXCJ/STVTp+lxiB5NLVA==", + "resolved": "2.9.3", + "contentHash": "kf3si0YTn2a8J8eZNb+zFpwfoyvIrQ7ivNk5ZYA5yuYk1bEtMe4DxJ2CF/qsRgmEnDr7MnW1mxylBaHTZ4qErA==", "dependencies": { "xunit.abstractions": "2.0.3" } }, "xunit.extensibility.execution": { "type": "Transitive", - "resolved": "2.9.0", - "contentHash": "5ZTQZvmPLlBw6QzCOwM0KnMsZw6eGjbmC176QHZlcbQoMhGIeGcYzYwn5w9yXxf+4phtplMuVqTpTbFDQh2bqQ==", + "resolved": "2.9.3", + "contentHash": "yMb6vMESlSrE3Wfj7V6cjQ3S4TXdXpRqYeNEI3zsX31uTsGMJjEw6oD5F5u1cHnMptjhEECnmZSsPxB6ChZHDQ==", "dependencies": { - "xunit.extensibility.core": "[2.9.0]" + "xunit.extensibility.core": "[2.9.3]" } }, "sharpcompress": { "type": "Project", "dependencies": { "System.Buffers": "[4.6.0, )", - "ZstdSharp.Port": "[0.8.1, )" + "ZstdSharp.Port": "[0.8.4, )" } }, "System.Buffers": { @@ -408,9 +431,9 @@ }, "ZstdSharp.Port": { "type": "CentralTransitive", - "requested": "[0.8.1, )", - "resolved": "0.8.1", - "contentHash": "19tNz33kn2EkyViFXuxfVn338UJaRmkwBphVqP2dVJIYQUQgFrgG5h061mxkRRg1Ax6r+6WOj1FxaFZ5qaWqqg==" + "requested": "[0.8.4, )", + "resolved": "0.8.4", + "contentHash": "eieSXq3kakCUXbgdxkKaRqWS6hF0KBJcqok9LlDCs60GOyrynLvPOcQ0pRw7shdPF7lh/VepJ9cP9n9HHc759g==" } } } From 2736b790974c1679ef10e60be7446c9305bfe91e Mon Sep 17 00:00:00 2001 From: majorro Date: Wed, 15 Jan 2025 04:43:16 +0300 Subject: [PATCH 54/65] signed test assembly --- .../SharpCompress.Test/SharpCompress.Test.csproj | 2 ++ tests/SharpCompress.Test/SharpCompress.Test.snk | Bin 0 -> 596 bytes 2 files changed, 2 insertions(+) create mode 100644 tests/SharpCompress.Test/SharpCompress.Test.snk diff --git a/tests/SharpCompress.Test/SharpCompress.Test.csproj b/tests/SharpCompress.Test/SharpCompress.Test.csproj index 3bfeaa3e..a47b2174 100644 --- a/tests/SharpCompress.Test/SharpCompress.Test.csproj +++ b/tests/SharpCompress.Test/SharpCompress.Test.csproj @@ -3,6 +3,8 @@ net8.0;net462 SharpCompress.Test SharpCompress.Test + SharpCompress.Test.snk + true diff --git a/tests/SharpCompress.Test/SharpCompress.Test.snk b/tests/SharpCompress.Test/SharpCompress.Test.snk new file mode 100644 index 0000000000000000000000000000000000000000..5a9ce09750fb5034882bc792f16f3ee64ce03fed GIT binary patch literal 596 zcmZQ)VqjoUVPFUfb~IvOVPIfnU}O;Oe*MwezU=-V({$s57Q6N>Us7szEba!wY%z14 ze81b9SVL}?EK_U$nmzpxSI&zg8Bx#F_SKKVuM2IstGCtdTh(n&4PlGKu81|w{s%1X)~P!zUu`0h_TZIM9S>!4{%GH@E>SrZ{pbIlDY0DHlf^x}mq!SS8o3k}FwHs5!t$N% z?ApSEBK~)ycW&9_YtEwmf70%bt4szRwrgg(_wH1=-+g|$VEpA_f-&$GB7P$WGMndM?2!pWM#~=2-FYD@! zomudr^~=V&`Pv<&ee+Dcu6O^uyy%O0$i?W4hpzise^&Gza%0vuiMze+f8V^d{@R5P zKevYJ9Z%Dgn{_L{wlVL>a`obd)u~R0=VhM@WYd}I*rmaffBcf4=Ij{Frn_b5o?kAJ zRVcljTz>ZO_vx})ccP9R^>sJ5beQ|Zrbn`Ae%rcf#g1G$HUb+QPd{40s}{a$bv*yx z)qD5Wsr&DdWK(+lCiPuJ?De@j@60~&`jV#cgD>|dtuy{B9x++`!ggf~MmCqLcV>S| L-(wOfFKPz>n}H@$ literal 0 HcmV?d00001 From 4f4af6e3fd9c54d5eab56e00eb84b170769fa5f3 Mon Sep 17 00:00:00 2001 From: majorro Date: Wed, 15 Jan 2025 04:46:07 +0300 Subject: [PATCH 55/65] make test friend assembly --- src/SharpCompress/AssemblyInfo.cs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/SharpCompress/AssemblyInfo.cs b/src/SharpCompress/AssemblyInfo.cs index 0270020d..f8bd8bad 100644 --- a/src/SharpCompress/AssemblyInfo.cs +++ b/src/SharpCompress/AssemblyInfo.cs @@ -1,3 +1,5 @@ using System; +using System.Runtime.CompilerServices; [assembly: CLSCompliant(true)] +[assembly: InternalsVisibleTo("SharpCompress.Test,PublicKey=0024000004800000940000000602000000240000525341310004000001000100158bebf1433f76dffc356733c138babea7a47536c65ed8009b16372c6f4edbb20554db74a62687f56b97c20a6ce8c4b123280279e33c894e7b3aa93ab3c573656fde4db576cfe07dba09619ead26375b25d2c4a8e43f7be257d712b0dd2eb546f67adb09281338618a58ac834fc038dd7e2740a7ab3591826252e4f4516306dc")] From 7a1ad6688a339b3fdcf54ee411f63f56a65e60e6 Mon Sep 17 00:00:00 2001 From: majorro Date: Wed, 15 Jan 2025 04:46:22 +0300 Subject: [PATCH 56/65] make helpers internal --- src/SharpCompress/NotNullExtensions.cs | 2 +- src/SharpCompress/Utility.cs | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/src/SharpCompress/NotNullExtensions.cs b/src/SharpCompress/NotNullExtensions.cs index 7342bd7b..29245114 100644 --- a/src/SharpCompress/NotNullExtensions.cs +++ b/src/SharpCompress/NotNullExtensions.cs @@ -6,7 +6,7 @@ using System.Runtime.CompilerServices; namespace SharpCompress.Helpers; -public static class NotNullExtensions +internal static class NotNullExtensions { public static IEnumerable Empty(this IEnumerable? source) => source ?? Enumerable.Empty(); diff --git a/src/SharpCompress/Utility.cs b/src/SharpCompress/Utility.cs index 6a6aeee7..74974850 100644 --- a/src/SharpCompress/Utility.cs +++ b/src/SharpCompress/Utility.cs @@ -9,8 +9,7 @@ using SharpCompress.Readers; namespace SharpCompress.Helpers; -[CLSCompliant(false)] -public static class Utility +internal static class Utility { public static ReadOnlyCollection ToReadOnly(this IList items) => new(items); From 3cfb76a56f45ac52224b5d3d0ba5901935a66b7c Mon Sep 17 00:00:00 2001 From: Adam Hathcock Date: Wed, 15 Jan 2025 16:35:05 +0000 Subject: [PATCH 57/65] Add back net48 and net481 support --- src/SharpCompress/SharpCompress.csproj | 2 +- src/SharpCompress/packages.lock.json | 174 ++++++++++++++++++++++++- 2 files changed, 172 insertions(+), 4 deletions(-) diff --git a/src/SharpCompress/SharpCompress.csproj b/src/SharpCompress/SharpCompress.csproj index f256a084..0d16f160 100644 --- a/src/SharpCompress/SharpCompress.csproj +++ b/src/SharpCompress/SharpCompress.csproj @@ -6,7 +6,7 @@ 0.38.0 0.38.0 Adam Hathcock - netstandard2.0;net6.0;net8.0 + net48;net481;netstandard2.0;net6.0;net8.0 SharpCompress ../../SharpCompress.snk true diff --git a/src/SharpCompress/packages.lock.json b/src/SharpCompress/packages.lock.json index d0e1a2f1..de18ff8d 100644 --- a/src/SharpCompress/packages.lock.json +++ b/src/SharpCompress/packages.lock.json @@ -1,6 +1,174 @@ { "version": 2, "dependencies": { + ".NETFramework,Version=v4.8": { + "Microsoft.SourceLink.GitHub": { + "type": "Direct", + "requested": "[8.0.0, )", + "resolved": "8.0.0", + "contentHash": "G5q7OqtwIyGTkeIOAc3u2ZuV/kicQaec5EaRnc0pIeSnh9LUjj+PYQrJYBURvDt7twGl2PKA7nSN0kz1Zw5bnQ==", + "dependencies": { + "Microsoft.Build.Tasks.Git": "8.0.0", + "Microsoft.SourceLink.Common": "8.0.0" + } + }, + "System.Buffers": { + "type": "Direct", + "requested": "[4.6.0, )", + "resolved": "4.6.0", + "contentHash": "lN6tZi7Q46zFzAbRYXTIvfXcyvQQgxnY7Xm6C6xQ9784dEL1amjM6S6Iw4ZpsvesAKnRVsM4scrDQaDqSClkjA==" + }, + "ZstdSharp.Port": { + "type": "Direct", + "requested": "[0.8.4, )", + "resolved": "0.8.4", + "contentHash": "eieSXq3kakCUXbgdxkKaRqWS6hF0KBJcqok9LlDCs60GOyrynLvPOcQ0pRw7shdPF7lh/VepJ9cP9n9HHc759g==", + "dependencies": { + "Microsoft.Bcl.AsyncInterfaces": "5.0.0", + "System.Memory": "4.5.5", + "System.Runtime.CompilerServices.Unsafe": "6.0.0" + } + }, + "Microsoft.Build.Tasks.Git": { + "type": "Transitive", + "resolved": "8.0.0", + "contentHash": "bZKfSIKJRXLTuSzLudMFte/8CempWjVamNUR5eHJizsy+iuOuO/k2gnh7W0dHJmYY0tBf+gUErfluCv5mySAOQ==" + }, + "Microsoft.SourceLink.Common": { + "type": "Transitive", + "resolved": "8.0.0", + "contentHash": "dk9JPxTCIevS75HyEQ0E4OVAFhB2N+V9ShCXf8Q6FkUQZDkgLI12y679Nym1YqsiSysuQskT7Z+6nUf3yab6Vw==" + }, + "System.Numerics.Vectors": { + "type": "Transitive", + "resolved": "4.5.0", + "contentHash": "QQTlPTl06J/iiDbJCiepZ4H//BVraReU4O4EoRw1U02H5TLUIT7xn3GnDp9AXPSlJUDyFs4uWjWafNX6WrAojQ==" + }, + "System.Runtime.CompilerServices.Unsafe": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "/iUeP3tq1S0XdNNoMz5C9twLSrM/TH+qElHkXWaPvuNOt+99G75NrV0OS2EqHx5wMN7popYjpc8oTjC1y16DLg==" + }, + "System.Threading.Tasks.Extensions": { + "type": "Transitive", + "resolved": "4.5.4", + "contentHash": "zteT+G8xuGu6mS+mzDzYXbzS7rd3K6Fjb9RiZlYlJPam2/hU7JCBZBVEcywNuR+oZ1ncTvc/cq0faRr3P01OVg==", + "dependencies": { + "System.Runtime.CompilerServices.Unsafe": "4.5.3" + } + }, + "Microsoft.Bcl.AsyncInterfaces": { + "type": "CentralTransitive", + "requested": "[8.0.0, )", + "resolved": "5.0.0", + "contentHash": "W8DPQjkMScOMTtJbPwmPyj9c3zYSFGawDW3jwlBOOsnY+EzZFLgNQ/UMkK35JmkNOVPdCyPr2Tw7Vv9N+KA3ZQ==", + "dependencies": { + "System.Threading.Tasks.Extensions": "4.5.4" + } + }, + "System.Memory": { + "type": "CentralTransitive", + "requested": "[4.6.0, )", + "resolved": "4.5.5", + "contentHash": "XIWiDvKPXaTveaB7HVganDlOCRoj03l+jrwNvcge/t8vhGYKvqV+dMv6G4SAX2NoNmN0wZfVPTAlFwZcZvVOUw==", + "dependencies": { + "System.Buffers": "4.5.1", + "System.Numerics.Vectors": "4.5.0", + "System.Runtime.CompilerServices.Unsafe": "4.5.3" + } + } + }, + ".NETFramework,Version=v4.8.1": { + "Microsoft.NETFramework.ReferenceAssemblies": { + "type": "Direct", + "requested": "[1.0.3, )", + "resolved": "1.0.3", + "contentHash": "vUc9Npcs14QsyOD01tnv/m8sQUnGTGOw1BCmKcv77LBJY7OxhJ+zJF7UD/sCL3lYNFuqmQEVlkfS4Quif6FyYg==", + "dependencies": { + "Microsoft.NETFramework.ReferenceAssemblies.net481": "1.0.3" + } + }, + "Microsoft.SourceLink.GitHub": { + "type": "Direct", + "requested": "[8.0.0, )", + "resolved": "8.0.0", + "contentHash": "G5q7OqtwIyGTkeIOAc3u2ZuV/kicQaec5EaRnc0pIeSnh9LUjj+PYQrJYBURvDt7twGl2PKA7nSN0kz1Zw5bnQ==", + "dependencies": { + "Microsoft.Build.Tasks.Git": "8.0.0", + "Microsoft.SourceLink.Common": "8.0.0" + } + }, + "System.Buffers": { + "type": "Direct", + "requested": "[4.6.0, )", + "resolved": "4.6.0", + "contentHash": "lN6tZi7Q46zFzAbRYXTIvfXcyvQQgxnY7Xm6C6xQ9784dEL1amjM6S6Iw4ZpsvesAKnRVsM4scrDQaDqSClkjA==" + }, + "ZstdSharp.Port": { + "type": "Direct", + "requested": "[0.8.4, )", + "resolved": "0.8.4", + "contentHash": "eieSXq3kakCUXbgdxkKaRqWS6hF0KBJcqok9LlDCs60GOyrynLvPOcQ0pRw7shdPF7lh/VepJ9cP9n9HHc759g==", + "dependencies": { + "Microsoft.Bcl.AsyncInterfaces": "5.0.0", + "System.Memory": "4.5.5", + "System.Runtime.CompilerServices.Unsafe": "6.0.0" + } + }, + "Microsoft.Build.Tasks.Git": { + "type": "Transitive", + "resolved": "8.0.0", + "contentHash": "bZKfSIKJRXLTuSzLudMFte/8CempWjVamNUR5eHJizsy+iuOuO/k2gnh7W0dHJmYY0tBf+gUErfluCv5mySAOQ==" + }, + "Microsoft.NETFramework.ReferenceAssemblies.net481": { + "type": "Transitive", + "resolved": "1.0.3", + "contentHash": "Vv/20vgHS7VglVOVh8J3Iz/MA+VYKVRp9f7r2qiKBMuzviTOmocG70yq0Q8T5OTmCONkEAIJwETD1zhEfLkAXQ==" + }, + "Microsoft.SourceLink.Common": { + "type": "Transitive", + "resolved": "8.0.0", + "contentHash": "dk9JPxTCIevS75HyEQ0E4OVAFhB2N+V9ShCXf8Q6FkUQZDkgLI12y679Nym1YqsiSysuQskT7Z+6nUf3yab6Vw==" + }, + "System.Numerics.Vectors": { + "type": "Transitive", + "resolved": "4.5.0", + "contentHash": "QQTlPTl06J/iiDbJCiepZ4H//BVraReU4O4EoRw1U02H5TLUIT7xn3GnDp9AXPSlJUDyFs4uWjWafNX6WrAojQ==" + }, + "System.Runtime.CompilerServices.Unsafe": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "/iUeP3tq1S0XdNNoMz5C9twLSrM/TH+qElHkXWaPvuNOt+99G75NrV0OS2EqHx5wMN7popYjpc8oTjC1y16DLg==" + }, + "System.Threading.Tasks.Extensions": { + "type": "Transitive", + "resolved": "4.5.4", + "contentHash": "zteT+G8xuGu6mS+mzDzYXbzS7rd3K6Fjb9RiZlYlJPam2/hU7JCBZBVEcywNuR+oZ1ncTvc/cq0faRr3P01OVg==", + "dependencies": { + "System.Runtime.CompilerServices.Unsafe": "4.5.3" + } + }, + "Microsoft.Bcl.AsyncInterfaces": { + "type": "CentralTransitive", + "requested": "[8.0.0, )", + "resolved": "5.0.0", + "contentHash": "W8DPQjkMScOMTtJbPwmPyj9c3zYSFGawDW3jwlBOOsnY+EzZFLgNQ/UMkK35JmkNOVPdCyPr2Tw7Vv9N+KA3ZQ==", + "dependencies": { + "System.Threading.Tasks.Extensions": "4.5.4" + } + }, + "System.Memory": { + "type": "CentralTransitive", + "requested": "[4.6.0, )", + "resolved": "4.5.5", + "contentHash": "XIWiDvKPXaTveaB7HVganDlOCRoj03l+jrwNvcge/t8vhGYKvqV+dMv6G4SAX2NoNmN0wZfVPTAlFwZcZvVOUw==", + "dependencies": { + "System.Buffers": "4.5.1", + "System.Numerics.Vectors": "4.5.0", + "System.Runtime.CompilerServices.Unsafe": "4.5.3" + } + } + }, ".NETStandard,Version=v2.0": { "Microsoft.Bcl.AsyncInterfaces": { "type": "Direct", @@ -139,9 +307,9 @@ "net8.0": { "Microsoft.NET.ILLink.Tasks": { "type": "Direct", - "requested": "[8.0.11, )", - "resolved": "8.0.11", - "contentHash": "zk5lnZrYJgtuJG8L4v17Ej8rZ3PUcR2iweNV08BaO5LbYHIi2wNaVNcJoLxvqgQdnjLlKnCCfVGLDr6QHeAarQ==" + "requested": "[8.0.12, )", + "resolved": "8.0.12", + "contentHash": "FV4HnQ3JI15PHnJ5PGTbz+rYvrih42oLi/7UMIshNwCwUZhTq13UzrggtXk4ygrcMcN+4jsS6hhshx2p/Zd0ig==" }, "Microsoft.SourceLink.GitHub": { "type": "Direct", From 1159efc6cc9c468c90b1a82cf83385301d3b95e2 Mon Sep 17 00:00:00 2001 From: majorro Date: Wed, 15 Jan 2025 21:43:10 +0300 Subject: [PATCH 58/65] formatting --- src/SharpCompress/AssemblyInfo.cs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/SharpCompress/AssemblyInfo.cs b/src/SharpCompress/AssemblyInfo.cs index f8bd8bad..e51d97fe 100644 --- a/src/SharpCompress/AssemblyInfo.cs +++ b/src/SharpCompress/AssemblyInfo.cs @@ -2,4 +2,6 @@ using System; using System.Runtime.CompilerServices; [assembly: CLSCompliant(true)] -[assembly: InternalsVisibleTo("SharpCompress.Test,PublicKey=0024000004800000940000000602000000240000525341310004000001000100158bebf1433f76dffc356733c138babea7a47536c65ed8009b16372c6f4edbb20554db74a62687f56b97c20a6ce8c4b123280279e33c894e7b3aa93ab3c573656fde4db576cfe07dba09619ead26375b25d2c4a8e43f7be257d712b0dd2eb546f67adb09281338618a58ac834fc038dd7e2740a7ab3591826252e4f4516306dc")] +[assembly: InternalsVisibleTo( + "SharpCompress.Test,PublicKey=0024000004800000940000000602000000240000525341310004000001000100158bebf1433f76dffc356733c138babea7a47536c65ed8009b16372c6f4edbb20554db74a62687f56b97c20a6ce8c4b123280279e33c894e7b3aa93ab3c573656fde4db576cfe07dba09619ead26375b25d2c4a8e43f7be257d712b0dd2eb546f67adb09281338618a58ac834fc038dd7e2740a7ab3591826252e4f4516306dc" +)] From 6f3124a84f314fa3c13d7b1a0101b6fad1e9d51a Mon Sep 17 00:00:00 2001 From: Adam Hathcock Date: Thu, 16 Jan 2025 08:30:21 +0000 Subject: [PATCH 59/65] Mark for 0.39 --- src/SharpCompress/SharpCompress.csproj | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/SharpCompress/SharpCompress.csproj b/src/SharpCompress/SharpCompress.csproj index 0d16f160..b1397310 100644 --- a/src/SharpCompress/SharpCompress.csproj +++ b/src/SharpCompress/SharpCompress.csproj @@ -2,9 +2,9 @@ SharpCompress - Pure C# Decompression/Compression en-US - 0.38.0 - 0.38.0 - 0.38.0 + 0.39.0 + 0.39.0 + 0.39.0 Adam Hathcock net48;net481;netstandard2.0;net6.0;net8.0 SharpCompress @@ -17,7 +17,7 @@ Copyright (c) 2025 Adam Hathcock false false - SharpCompress is a compression library for NET Standard 2.0/NET 6.0/NET 8.0 that can unrar, decompress 7zip, decompress xz, zip/unzip, tar/untar lzip/unlzip, bzip2/unbzip2 and gzip/ungzip with forward-only reading and file random access APIs. Write support for zip/tar/bzip2/gzip is implemented. + SharpCompress is a compression library for NET Standard 2.0/NET 4.8/NET 4.8.1/NET 6.0/NET 8.0 that can unrar, decompress 7zip, decompress xz, zip/unzip, tar/untar lzip/unlzip, bzip2/unbzip2 and gzip/ungzip with forward-only reading and file random access APIs. Write support for zip/tar/bzip2/gzip is implemented. true true snupkg From 2fb3243a1afd67b075ef65180e5533e6ee5a0768 Mon Sep 17 00:00:00 2001 From: Adam Hathcock Date: Thu, 16 Jan 2025 08:38:11 +0000 Subject: [PATCH 60/65] Tests also on net48 --- build/Program.cs | 2 +- .../SharpCompress.Test.csproj | 2 +- tests/SharpCompress.Test/packages.lock.json | 37 ++++++------------- 3 files changed, 14 insertions(+), 27 deletions(-) diff --git a/build/Program.cs b/build/Program.cs index acafec41..e721f468 100644 --- a/build/Program.cs +++ b/build/Program.cs @@ -61,7 +61,7 @@ Target( Target( Test, DependsOn(Build), - ForEach("net8.0", "net462"), + ForEach("net8.0", "net48"), framework => { IEnumerable GetFiles(string d) diff --git a/tests/SharpCompress.Test/SharpCompress.Test.csproj b/tests/SharpCompress.Test/SharpCompress.Test.csproj index b47aefe0..22f99b20 100644 --- a/tests/SharpCompress.Test/SharpCompress.Test.csproj +++ b/tests/SharpCompress.Test/SharpCompress.Test.csproj @@ -1,6 +1,6 @@  - net8.0;net472 + net8.0;net48 SharpCompress.Test SharpCompress.Test SharpCompress.Test.snk diff --git a/tests/SharpCompress.Test/packages.lock.json b/tests/SharpCompress.Test/packages.lock.json index b0b649c0..babef83e 100644 --- a/tests/SharpCompress.Test/packages.lock.json +++ b/tests/SharpCompress.Test/packages.lock.json @@ -1,7 +1,7 @@ { "version": 2, "dependencies": { - ".NETFramework,Version=v4.7.2": { + ".NETFramework,Version=v4.8": { "FluentAssertions": { "type": "Direct", "requested": "[7.0.0, )", @@ -90,8 +90,8 @@ }, "System.Numerics.Vectors": { "type": "Transitive", - "resolved": "4.6.0", - "contentHash": "t+SoieZsRuEyiw/J+qXUbolyO219tKQQI0+2/YI+Qv7YdGValA6WiuokrNKqjrTNsy5ABWU11bdKOzUdheteXg==" + "resolved": "4.5.0", + "contentHash": "QQTlPTl06J/iiDbJCiepZ4H//BVraReU4O4EoRw1U02H5TLUIT7xn3GnDp9AXPSlJUDyFs4uWjWafNX6WrAojQ==" }, "System.Reflection.Metadata": { "type": "Transitive", @@ -103,8 +103,8 @@ }, "System.Runtime.CompilerServices.Unsafe": { "type": "Transitive", - "resolved": "6.1.0", - "contentHash": "5o/HZxx6RVqYlhKSq8/zronDkALJZUT2Vz0hx43f0gwe8mwlM0y2nYlqdBwLMzr262Bwvpikeb/yEwkAa5PADg==" + "resolved": "6.0.0", + "contentHash": "/iUeP3tq1S0XdNNoMz5C9twLSrM/TH+qElHkXWaPvuNOt+99G75NrV0OS2EqHx5wMN7popYjpc8oTjC1y16DLg==" }, "System.Threading.Tasks.Extensions": { "type": "Transitive", @@ -162,18 +162,15 @@ "sharpcompress": { "type": "Project", "dependencies": { - "Microsoft.Bcl.AsyncInterfaces": "[8.0.0, )", "System.Buffers": "[4.6.0, )", - "System.Memory": "[4.6.0, )", - "System.Text.Encoding.CodePages": "[8.0.0, )", "ZstdSharp.Port": "[0.8.4, )" } }, "Microsoft.Bcl.AsyncInterfaces": { "type": "CentralTransitive", "requested": "[8.0.0, )", - "resolved": "8.0.0", - "contentHash": "3WA9q9yVqJp222P3x1wYIGDAkpjAku0TMUaaQV22g6L67AI0LdOIrVS7Ht2vJfLHGSPVuqN94vIr15qn+HEkHw==", + "resolved": "5.0.0", + "contentHash": "W8DPQjkMScOMTtJbPwmPyj9c3zYSFGawDW3jwlBOOsnY+EzZFLgNQ/UMkK35JmkNOVPdCyPr2Tw7Vv9N+KA3ZQ==", "dependencies": { "System.Threading.Tasks.Extensions": "4.5.4" } @@ -187,22 +184,12 @@ "System.Memory": { "type": "CentralTransitive", "requested": "[4.6.0, )", - "resolved": "4.6.0", - "contentHash": "OEkbBQoklHngJ8UD8ez2AERSk2g+/qpAaSWWCBFbpH727HxDq5ydVkuncBaKcKfwRqXGWx64dS6G1SUScMsitg==", + "resolved": "4.5.5", + "contentHash": "XIWiDvKPXaTveaB7HVganDlOCRoj03l+jrwNvcge/t8vhGYKvqV+dMv6G4SAX2NoNmN0wZfVPTAlFwZcZvVOUw==", "dependencies": { - "System.Buffers": "4.6.0", - "System.Numerics.Vectors": "4.6.0", - "System.Runtime.CompilerServices.Unsafe": "6.1.0" - } - }, - "System.Text.Encoding.CodePages": { - "type": "CentralTransitive", - "requested": "[8.0.0, )", - "resolved": "8.0.0", - "contentHash": "OZIsVplFGaVY90G2SbpgU7EnCoOO5pw1t4ic21dBF3/1omrJFpAGoNAVpPyMVOC90/hvgkGG3VFqR13YgZMQfg==", - "dependencies": { - "System.Memory": "4.5.5", - "System.Runtime.CompilerServices.Unsafe": "6.0.0" + "System.Buffers": "4.5.1", + "System.Numerics.Vectors": "4.5.0", + "System.Runtime.CompilerServices.Unsafe": "4.5.3" } }, "ZstdSharp.Port": { From d2cfc1844cdca9e168a50ebc80920362e21f4283 Mon Sep 17 00:00:00 2001 From: Morilli <35152647+Morilli@users.noreply.github.com> Date: Tue, 28 Jan 2025 01:49:49 +0100 Subject: [PATCH 61/65] add failing test --- tests/SharpCompress.Test/Zip/ZipArchiveTests.cs | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/tests/SharpCompress.Test/Zip/ZipArchiveTests.cs b/tests/SharpCompress.Test/Zip/ZipArchiveTests.cs index 4fb6d89a..cf376ec1 100644 --- a/tests/SharpCompress.Test/Zip/ZipArchiveTests.cs +++ b/tests/SharpCompress.Test/Zip/ZipArchiveTests.cs @@ -808,4 +808,14 @@ public class ZipArchiveTests : ArchiveTests Assert.Equal("きょきゅんきゃんきゅ_wav.frq", reader.Entry.Key); } } + + [Fact] + public void TestDataDescriptorRead() + { + using var archive = ArchiveFactory.Open(Path.Combine(TEST_ARCHIVES_PATH, "Zip.none.datadescriptors.zip")); + var firstEntry = archive.Entries.First(); + Assert.Equal(199, firstEntry.Size); + using var _ = firstEntry.OpenEntryStream(); + Assert.Equal(199, firstEntry.Size); + } } From c14d18b9dfb961d5cd78bc42e89486c5a76f538f Mon Sep 17 00:00:00 2001 From: Morilli <35152647+Morilli@users.noreply.github.com> Date: Tue, 28 Jan 2025 01:56:14 +0100 Subject: [PATCH 62/65] set local header data from directory header when flag is set As described in section 4.4.7-4.4.9 of the zip specification when this flag is set the correct values will be in the data descriptor record and in the directory header. --- src/SharpCompress/Common/Zip/SeekableZipHeaderFactory.cs | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/SharpCompress/Common/Zip/SeekableZipHeaderFactory.cs b/src/SharpCompress/Common/Zip/SeekableZipHeaderFactory.cs index b99d0e2b..816b0b67 100644 --- a/src/SharpCompress/Common/Zip/SeekableZipHeaderFactory.cs +++ b/src/SharpCompress/Common/Zip/SeekableZipHeaderFactory.cs @@ -149,6 +149,12 @@ internal sealed class SeekableZipHeaderFactory : ZipHeaderFactory { throw new InvalidOperationException(); } + if (FlagUtility.HasFlag(localEntryHeader.Flags, HeaderFlags.UsePostDataDescriptor)) + { + localEntryHeader.Crc = directoryEntryHeader.Crc; + localEntryHeader.CompressedSize = directoryEntryHeader.CompressedSize; + localEntryHeader.UncompressedSize = directoryEntryHeader.UncompressedSize; + } return localEntryHeader; } } From 91e672befb94ea8e529a836b44515917973b68bc Mon Sep 17 00:00:00 2001 From: Morilli <35152647+Morilli@users.noreply.github.com> Date: Tue, 28 Jan 2025 02:06:47 +0100 Subject: [PATCH 63/65] remove old hack trying to fix a similar thing Introduced in af264cdc58c9d076bf83477cbdbfe7a5dad282b7; the test included in that commit passes still. --- .../Common/Zip/SeekableZipFilePart.cs | 18 +----------------- 1 file changed, 1 insertion(+), 17 deletions(-) diff --git a/src/SharpCompress/Common/Zip/SeekableZipFilePart.cs b/src/SharpCompress/Common/Zip/SeekableZipFilePart.cs index e37008e5..54c4f527 100644 --- a/src/SharpCompress/Common/Zip/SeekableZipFilePart.cs +++ b/src/SharpCompress/Common/Zip/SeekableZipFilePart.cs @@ -1,6 +1,5 @@ using System.IO; using SharpCompress.Common.Zip.Headers; -using SharpCompress.IO; namespace SharpCompress.Common.Zip; @@ -8,18 +7,13 @@ internal class SeekableZipFilePart : ZipFilePart { private bool _isLocalHeaderLoaded; private readonly SeekableZipHeaderFactory _headerFactory; - private readonly DirectoryEntryHeader _directoryEntryHeader; internal SeekableZipFilePart( SeekableZipHeaderFactory headerFactory, DirectoryEntryHeader header, Stream stream ) - : base(header, stream) - { - _headerFactory = headerFactory; - _directoryEntryHeader = header; - } + : base(header, stream) => _headerFactory = headerFactory; internal override Stream GetCompressedStream() { @@ -44,16 +38,6 @@ internal class SeekableZipFilePart : ZipFilePart { BaseStream.Position = Header.DataStartPosition.NotNull(); - if ( - (Header.CompressedSize == 0) - && FlagUtility.HasFlag(Header.Flags, HeaderFlags.UsePostDataDescriptor) - && _directoryEntryHeader.HasData - && (_directoryEntryHeader.CompressedSize != 0) - ) - { - return new ReadOnlySubStream(BaseStream, _directoryEntryHeader.CompressedSize); - } - return BaseStream; } } From f9a974c1fef3bb34c5c08f51699f599b5edeef5c Mon Sep 17 00:00:00 2001 From: Morilli <35152647+Morilli@users.noreply.github.com> Date: Tue, 28 Jan 2025 02:24:42 +0100 Subject: [PATCH 64/65] fix formatting --- tests/SharpCompress.Test/Zip/ZipArchiveTests.cs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/tests/SharpCompress.Test/Zip/ZipArchiveTests.cs b/tests/SharpCompress.Test/Zip/ZipArchiveTests.cs index cf376ec1..8419f58f 100644 --- a/tests/SharpCompress.Test/Zip/ZipArchiveTests.cs +++ b/tests/SharpCompress.Test/Zip/ZipArchiveTests.cs @@ -812,7 +812,9 @@ public class ZipArchiveTests : ArchiveTests [Fact] public void TestDataDescriptorRead() { - using var archive = ArchiveFactory.Open(Path.Combine(TEST_ARCHIVES_PATH, "Zip.none.datadescriptors.zip")); + using var archive = ArchiveFactory.Open( + Path.Combine(TEST_ARCHIVES_PATH, "Zip.none.datadescriptors.zip") + ); var firstEntry = archive.Entries.First(); Assert.Equal(199, firstEntry.Size); using var _ = firstEntry.OpenEntryStream(); From b6dc58164e3c978aaaa37a50dba3452b367a8bcf Mon Sep 17 00:00:00 2001 From: Adam Hathcock Date: Tue, 28 Jan 2025 08:04:59 +0000 Subject: [PATCH 65/65] don't run net48 on non-windows --- SharpCompress.sln | 1 + build/Program.cs | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/SharpCompress.sln b/SharpCompress.sln index ab4995b1..a86d1652 100644 --- a/SharpCompress.sln +++ b/SharpCompress.sln @@ -20,6 +20,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Config", "Config", "{CDB425 .editorconfig = .editorconfig Directory.Packages.props = Directory.Packages.props NuGet.config = NuGet.config + .github\workflows\dotnetcore.yml = .github\workflows\dotnetcore.yml EndProjectSection EndProject Global diff --git a/build/Program.cs b/build/Program.cs index e721f468..39acd0c0 100644 --- a/build/Program.cs +++ b/build/Program.cs @@ -69,7 +69,7 @@ Target( return Glob.Files(".", d); } - if (!RuntimeInformation.IsOSPlatform(OSPlatform.Windows) && framework == "net462") + if (!RuntimeInformation.IsOSPlatform(OSPlatform.Windows) && framework == "net48") { return; }