diff --git a/src/SharpCompress/Common/Rar/RarEntry.cs b/src/SharpCompress/Common/Rar/RarEntry.cs
index 623bc9bf..fc084d5c 100644
--- a/src/SharpCompress/Common/Rar/RarEntry.cs
+++ b/src/SharpCompress/Common/Rar/RarEntry.cs
@@ -10,7 +10,7 @@ namespace SharpCompress.Common.Rar
///
/// As the V2017 port isn't complete, add this check to use the legacy Rar code.
///
- internal bool IsRarV3 => FileHeader.CompressionAlgorithm == 29 || FileHeader.CompressionAlgorithm == 36;
+ internal bool IsRarV3 => FileHeader.CompressionAlgorithm == 20 || FileHeader.CompressionAlgorithm == 26 || FileHeader.CompressionAlgorithm == 29 || FileHeader.CompressionAlgorithm == 36; //Nanook - Added 20+26 as Test arc from WinRar2.8 (algo 20) was failing with 2017 code
///
/// The File's 32 bit CRC Hash
diff --git a/tests/SharpCompress.Test/Rar/RarArchiveTests.cs b/tests/SharpCompress.Test/Rar/RarArchiveTests.cs
index 7133e8e8..59a66016 100644
--- a/tests/SharpCompress.Test/Rar/RarArchiveTests.cs
+++ b/tests/SharpCompress.Test/Rar/RarArchiveTests.cs
@@ -360,6 +360,31 @@ namespace SharpCompress.Test.Rar
ArchiveFileRead("Rar5.solid.rar");
}
+ [Fact]
+ public void Rar2_Multi_ArchiveStreamRead()
+ {
+ DoRar_Multi_ArchiveStreamRead(new string[] {
+ "Rar2.multi.rar",
+ "Rar2.multi.r00",
+ "Rar2.multi.r01",
+ "Rar2.multi.r02",
+ "Rar2.multi.r03",
+ "Rar2.multi.r04",
+ "Rar2.multi.r05"}, false);
+ }
+
+ [Fact]
+ public void Rar2_Multi_ArchiveFileRead()
+ {
+ ArchiveFileRead("Rar2.multi.rar"); //r00, r01...
+ }
+
+ [Fact]
+ public void Rar2_ArchiveFileRead()
+ {
+ ArchiveFileRead("Rar2.rar");
+ }
+
[Fact]
public void Rar_Multi_ArchiveFileRead()
{
diff --git a/tests/TestArchives/Archives/Rar2.multi.r00 b/tests/TestArchives/Archives/Rar2.multi.r00
new file mode 100644
index 00000000..22bce2e1
Binary files /dev/null and b/tests/TestArchives/Archives/Rar2.multi.r00 differ
diff --git a/tests/TestArchives/Archives/Rar2.multi.r01 b/tests/TestArchives/Archives/Rar2.multi.r01
new file mode 100644
index 00000000..878b6d8a
Binary files /dev/null and b/tests/TestArchives/Archives/Rar2.multi.r01 differ
diff --git a/tests/TestArchives/Archives/Rar2.multi.r02 b/tests/TestArchives/Archives/Rar2.multi.r02
new file mode 100644
index 00000000..cc5fbc57
Binary files /dev/null and b/tests/TestArchives/Archives/Rar2.multi.r02 differ
diff --git a/tests/TestArchives/Archives/Rar2.multi.r03 b/tests/TestArchives/Archives/Rar2.multi.r03
new file mode 100644
index 00000000..259cafdd
Binary files /dev/null and b/tests/TestArchives/Archives/Rar2.multi.r03 differ
diff --git a/tests/TestArchives/Archives/Rar2.multi.r04 b/tests/TestArchives/Archives/Rar2.multi.r04
new file mode 100644
index 00000000..d46e4c7a
Binary files /dev/null and b/tests/TestArchives/Archives/Rar2.multi.r04 differ
diff --git a/tests/TestArchives/Archives/Rar2.multi.r05 b/tests/TestArchives/Archives/Rar2.multi.r05
new file mode 100644
index 00000000..48ff0c66
Binary files /dev/null and b/tests/TestArchives/Archives/Rar2.multi.r05 differ
diff --git a/tests/TestArchives/Archives/Rar2.multi.rar b/tests/TestArchives/Archives/Rar2.multi.rar
new file mode 100644
index 00000000..3621383f
Binary files /dev/null and b/tests/TestArchives/Archives/Rar2.multi.rar differ
diff --git a/tests/TestArchives/Archives/Rar2.rar b/tests/TestArchives/Archives/Rar2.rar
new file mode 100644
index 00000000..60b82f21
Binary files /dev/null and b/tests/TestArchives/Archives/Rar2.rar differ