diff --git a/Aaru.Archives/Aaru.Archives.csproj b/Aaru.Archives/Aaru.Archives.csproj index 5f8e1dece..d40894f9a 100644 --- a/Aaru.Archives/Aaru.Archives.csproj +++ b/Aaru.Archives/Aaru.Archives.csproj @@ -45,6 +45,7 @@ + diff --git a/Aaru.Archives/Zoo/Extern.cs b/Aaru.Archives/Zoo/Extern.cs index 2cadfd6ed..cc0e561fe 100644 --- a/Aaru.Archives/Zoo/Extern.cs +++ b/Aaru.Archives/Zoo/Extern.cs @@ -6,7 +6,7 @@ namespace Aaru.Archives; public sealed partial class Zoo : IArchive { - [LibraryImport("Aaru.Compression.Native")] + [LibraryImport("libAaru.Compression.Native")] private static partial IntPtr CreateLZDContext(); [LibraryImport("libAaru.Compression.Native")] diff --git a/Aaru.Archives/Zoo/Files.cs b/Aaru.Archives/Zoo/Files.cs index 040bf7766..a8a85cf38 100644 --- a/Aaru.Archives/Zoo/Files.cs +++ b/Aaru.Archives/Zoo/Files.cs @@ -32,6 +32,7 @@ using System.Runtime.InteropServices; using Aaru.CommonTypes.Enums; using Aaru.CommonTypes.Interfaces; using Aaru.CommonTypes.Structs; +using Aaru.Compression; using Aaru.Filters; using Aaru.Helpers; using Aaru.Helpers.IO; @@ -175,7 +176,7 @@ public sealed partial class Zoo Direntry entry = _files[entryNumber]; - if(entry.packing_method > 1) return ErrorNumber.NotImplemented; + if(entry.packing_method > 2) return ErrorNumber.InvalidArgument; Stream stream = new OffsetStream(new NonClosableStream(_stream), _files[entryNumber].offset, @@ -185,6 +186,8 @@ public sealed partial class Zoo if(entry.packing_method == 1) stream = new ForcedSeekStream(entry.org_size, stream); + if(entry.packing_method == 2) stream = new Lh5Stream(stream, entry.org_size); + filter = new ZZZNoFilter(); ErrorNumber errno = filter.Open(stream);