From 086e8e608869e03a6bddc207e5306ed6f9ce4b58 Mon Sep 17 00:00:00 2001 From: Michael Becker Date: Fri, 30 Aug 2019 00:00:02 -0400 Subject: [PATCH] hack hack hack for reading null-terminated unicode strings --- CSharp/Libraries/UniversalEditor.Core/IO/Reader.cs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/CSharp/Libraries/UniversalEditor.Core/IO/Reader.cs b/CSharp/Libraries/UniversalEditor.Core/IO/Reader.cs index 68114c14..f921b48a 100644 --- a/CSharp/Libraries/UniversalEditor.Core/IO/Reader.cs +++ b/CSharp/Libraries/UniversalEditor.Core/IO/Reader.cs @@ -834,6 +834,10 @@ namespace UniversalEditor.IO return retval; } + /// + /// Reads a 64-bit floating-point value. + /// + /// The double. public double ReadDouble() { byte[] buffer = ReadBytes((uint)8); @@ -945,7 +949,7 @@ namespace UniversalEditor.IO while (true) { byte nextChar = ReadByte(); - if (nextChar == 0) + if ((nextChar == 0 && !(encoding == Encoding.UTF16LittleEndian)) || ((encoding == Encoding.UTF16LittleEndian) && (nextChar == 0 && (r.Count > 2 && r[r.Count - 1] == 0)))) { string result = encoding.GetString(r.ToArray()); return result;