From bb7d061bba74d9425d09036b254f37ec5eaa5aa6 Mon Sep 17 00:00:00 2001 From: Michael Oborne Date: Fri, 13 Oct 2023 15:31:28 +1100 Subject: [PATCH] BinaryLog: fix raw data extraction aka FILE --- ExtLibs/Utilities/BinaryLog.cs | 2 +- Log/LogBrowse.cs | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/ExtLibs/Utilities/BinaryLog.cs b/ExtLibs/Utilities/BinaryLog.cs index cde8157f8f..d3928ad26c 100644 --- a/ExtLibs/Utilities/BinaryLog.cs +++ b/ExtLibs/Utilities/BinaryLog.cs @@ -545,7 +545,7 @@ private object[] ProcessMessageObjects(byte[] message, string name, string forma return (mode, 1); case 'Z': - return (Encoding.ASCII.GetString(message, offset, 64).Trim('\0'), 64); + return (new ReadOnlySpan(message, offset, 64).ToArray(), 64); case 'a': return (new UnionArray(new ReadOnlySpan(message, offset, 64).ToArray()), 2 * 32); diff --git a/Log/LogBrowse.cs b/Log/LogBrowse.cs index 830266f5a8..e37320ceb5 100644 --- a/Log/LogBrowse.cs +++ b/Log/LogBrowse.cs @@ -3802,7 +3802,7 @@ private void exportFilesToolStripMenuItem_Click(object sender, EventArgs e) var name = file.GetRaw("FileName"); var offset = file.GetRaw("Offset"); var length = file.GetRaw("Length"); - var data = file.GetRaw("Data"); + var data = file.GetRaw("Data"); var path = Path.Combine(dir, name); @@ -3813,10 +3813,11 @@ private void exportFilesToolStripMenuItem_Click(object sender, EventArgs e) { f = File.OpenWrite(path); filehandles.Add(name, f); + f.SetLength(0); } f.Seek(offset, SeekOrigin.Begin); - var data2 = data.Select(a => (byte) a).ToArray().MakeSize(length); + var data2 = data.MakeSize(length); f.Write(data2, 0, length); }