From 708620252e837f2111213c6e36d5f8cc8cfd03e8 Mon Sep 17 00:00:00 2001 From: Thomas Guillemard Date: Thu, 4 Jul 2019 17:20:40 +0200 Subject: ITimeZoneService rewrite (#722) * Clean up ITimeZoneService Add error codes and simplify parsing * Add accurate timezone logic TOOD: LoadTimeZoneRule and location name cmds. * Integrate the new TimeZone logic * SCREAMING_UNIX_CASE => PascalCase * Address comments * Reduce use of pointer in the LoadTimeZoneRule logic * Address comments * Realign tzIfStream logic in LoadTimeZoneRule * Address gdk's comments --- Ryujinx.HLE/Utilities/StreamUtils.cs | 16 ++++++++++++++++ Ryujinx.HLE/Utilities/StringUtils.cs | 26 ++++++++++++++++++++++++++ 2 files changed, 42 insertions(+) create mode 100644 Ryujinx.HLE/Utilities/StreamUtils.cs (limited to 'Ryujinx.HLE/Utilities') diff --git a/Ryujinx.HLE/Utilities/StreamUtils.cs b/Ryujinx.HLE/Utilities/StreamUtils.cs new file mode 100644 index 00000000..7b44bc17 --- /dev/null +++ b/Ryujinx.HLE/Utilities/StreamUtils.cs @@ -0,0 +1,16 @@ +using System.IO; + +namespace Ryujinx.HLE.Utilities +{ + static class StreamUtils + { + public static byte[] StreamToBytes(Stream input) + { + using (MemoryStream ms = new MemoryStream()) + { + input.CopyTo(ms); + return ms.ToArray(); + } + } + } +} diff --git a/Ryujinx.HLE/Utilities/StringUtils.cs b/Ryujinx.HLE/Utilities/StringUtils.cs index ad18192e..4ce0823c 100644 --- a/Ryujinx.HLE/Utilities/StringUtils.cs +++ b/Ryujinx.HLE/Utilities/StringUtils.cs @@ -95,5 +95,31 @@ namespace Ryujinx.HLE.Utilities return Encoding.UTF8.GetString(ms.ToArray()); } } + + public static unsafe int CompareCStr(char* s1, char* s2) + { + int s1Index = 0; + int s2Index = 0; + + while (s1[s1Index] != 0 && s2[s2Index] != 0 && s1[s1Index] == s2[s2Index]) + { + s1Index += 1; + s2Index += 1; + } + + return s2[s2Index] - s1[s1Index]; + } + + public static unsafe int LengthCstr(char* s) + { + int i = 0; + + while (s[i] != '\0') + { + i++; + } + + return i; + } } } -- cgit v1.2.3