From 73ec66e6271c706604b2bd308d1647193e1bf531 Mon Sep 17 00:00:00 2001 From: Matt Nadareski Date: Mon, 3 Jun 2024 11:55:12 -0400 Subject: [PATCH] Fix ISv3 deserialization --- .../Deserializers/InstallShieldArchiveV3.cs | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/SabreTools.Serialization/Deserializers/InstallShieldArchiveV3.cs b/SabreTools.Serialization/Deserializers/InstallShieldArchiveV3.cs index 7e0d4f6c..5fc303c6 100644 --- a/SabreTools.Serialization/Deserializers/InstallShieldArchiveV3.cs +++ b/SabreTools.Serialization/Deserializers/InstallShieldArchiveV3.cs @@ -1,5 +1,6 @@ using System.Collections.Generic; using System.IO; +using System.Text; using SabreTools.IO.Extensions; using SabreTools.Models.InstallShieldArchiveV3; @@ -114,7 +115,17 @@ namespace SabreTools.Serialization.Deserializers /// Filled directory on success, null on error public static Models.InstallShieldArchiveV3.Directory? ParseDirectory(Stream data) { - return data.ReadType(); + var directory = new Models.InstallShieldArchiveV3.Directory(); + + directory.FileCount = data.ReadUInt16(); + directory.ChunkSize = data.ReadUInt16(); + + // TODO: Is there any equivilent automatic type for UInt16-prefixed ANSI? + ushort nameLength = data.ReadUInt16(); + byte[] nameBytes = data.ReadBytes(nameLength); + directory.Name = Encoding.ASCII.GetString(nameBytes); + + return directory; } ///