From ebd6f8f538690236fe331814e154c3915b8504f0 Mon Sep 17 00:00:00 2001 From: Syrone Wong Date: Thu, 11 Aug 2016 09:31:46 +0800 Subject: [PATCH] Update NuGet packages Signed-off-by: Syrone Wong --- shadowsocks-csharp/FodyWeavers.xml | 2 +- shadowsocks-csharp/StringEx.cs | 79 +++++++++++++++++++++++++++- shadowsocks-csharp/packages.config | 6 +-- shadowsocks-csharp/shadowsocks-csharp.csproj | 4 +- 4 files changed, 84 insertions(+), 7 deletions(-) diff --git a/shadowsocks-csharp/FodyWeavers.xml b/shadowsocks-csharp/FodyWeavers.xml index 7d3f21a9..93db61b8 100644 --- a/shadowsocks-csharp/FodyWeavers.xml +++ b/shadowsocks-csharp/FodyWeavers.xml @@ -1,4 +1,4 @@ - + diff --git a/shadowsocks-csharp/StringEx.cs b/shadowsocks-csharp/StringEx.cs index 5f107a50..09194dd4 100644 --- a/shadowsocks-csharp/StringEx.cs +++ b/shadowsocks-csharp/StringEx.cs @@ -5,6 +5,9 @@ using System.IO; using System.Linq; using System.Text; +#if EXPOSE_EVERYTHING || EXPOSE_STRINGEX +public +#endif static partial class StringEx { #pragma warning disable 1591 @@ -29,7 +32,7 @@ static partial class StringEx public static bool IsWhiteSpace(this string value) { - foreach(var c in value) + foreach (var c in value) { if (char.IsWhiteSpace(c)) continue; @@ -56,6 +59,80 @@ static partial class StringEx } #endif +#if UNSAFE + public static unsafe string ToLowerForASCII(this string value) + { + if (value.IsNullOrWhiteSpace()) + return value; + + value = string.Copy(value); + fixed (char* low = value) + { + var end = low + value.Length; + for (var p = low; p < end; p++) + { + var c = *p; + if (c < 'A' || c > 'Z') + continue; + *p = (char)(c + 0x20); + } + } + return value; + } + + public static unsafe string ToUpperForASCII(this string value) + { + if (value.IsNullOrWhiteSpace()) + return value; + + value = string.Copy(value); + fixed (char* low = value) + { + var end = low + value.Length; + for (var p = low; p < end; p++) + { + var c = *p; + if (c < 'a' || c > 'z') + continue; + *p = (char)(c - 0x20); + } + } + return value; + } +#else + public static string ToLowerForASCII(this string value) + { + if (value.IsNullOrWhiteSpace()) + return value; + + var sb = new StringBuilder(value.Length); + foreach (var c in value) + { + if (c < 'A' || c > 'Z') + sb.Append(c); + else + sb.Append((char)(c + 0x20)); + } + return sb.ToString(); + } + + public static string ToUpperForASCII(this string value) + { + if (value.IsNullOrWhiteSpace()) + return value; + + var sb = new StringBuilder(value.Length); + foreach (var c in value) + { + if (c < 'a' || c > 'z') + sb.Append(c); + else + sb.Append((char)(c - 0x20)); + } + return sb.ToString(); + } +#endif + #endregion #region comparing diff --git a/shadowsocks-csharp/packages.config b/shadowsocks-csharp/packages.config index b80520d3..ea2a7bce 100644 --- a/shadowsocks-csharp/packages.config +++ b/shadowsocks-csharp/packages.config @@ -1,8 +1,8 @@  - + - - + + \ No newline at end of file diff --git a/shadowsocks-csharp/shadowsocks-csharp.csproj b/shadowsocks-csharp/shadowsocks-csharp.csproj index 9b0899b1..8e9c153a 100644 --- a/shadowsocks-csharp/shadowsocks-csharp.csproj +++ b/shadowsocks-csharp/shadowsocks-csharp.csproj @@ -67,8 +67,8 @@ - - 3rd\Newtonsoft.Json.8.0.2\lib\net40\Newtonsoft.Json.dll + + 3rd\Newtonsoft.Json.9.0.1\lib\net40\Newtonsoft.Json.dll True