diff options
Diffstat (limited to 'Client/Assembly-CSharp/MemSafeStringExtensions.cs')
-rw-r--r-- | Client/Assembly-CSharp/MemSafeStringExtensions.cs | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/Client/Assembly-CSharp/MemSafeStringExtensions.cs b/Client/Assembly-CSharp/MemSafeStringExtensions.cs new file mode 100644 index 0000000..034b2bc --- /dev/null +++ b/Client/Assembly-CSharp/MemSafeStringExtensions.cs @@ -0,0 +1,37 @@ +using System; +using System.Collections.Generic; + +public static class MemSafeStringExtensions +{ + public static void SafeSplit(this SubString subString, List<SubString> output, char delim) + { + subString.Source.SafeSplit(output, delim, subString.Start, subString.Length); + } + + public static void SafeSplit(this string source, List<SubString> output, char delim) + { + source.SafeSplit(output, delim, 0, source.Length); + } + + public static void SafeSplit(this string source, List<SubString> output, char delim, int start, int length) + { + output.Clear(); + int num = start; + int num2 = start + length; + for (int i = start; i < num2; i++) + { + if (source[i] == delim) + { + if (num != i) + { + output.Add(new SubString(source, num, i - num)); + } + num = i + 1; + } + } + if (num != num2) + { + output.Add(new SubString(source, num, num2 - num)); + } + } +} |