summaryrefslogtreecommitdiff
path: root/Client/Assembly-CSharp/MemSafeStringExtensions.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Client/Assembly-CSharp/MemSafeStringExtensions.cs')
-rw-r--r--Client/Assembly-CSharp/MemSafeStringExtensions.cs37
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));
+ }
+ }
+}