Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ CompareStringIgnoreCase()

static int System.Globalization.InvariantModeCasing.CompareStringIgnoreCase ( ref char strA,
int lengthA,
ref char strB,
int lengthB )
inlinestaticpackage

Definition at line 160 of file InvariantModeCasing.cs.

161 {
162 int num = Math.Min(lengthA, lengthB);
163 ref char source = ref strA;
164 ref char source2 = ref strB;
165 int num2 = 0;
166 while (num2 < num)
167 {
168 var (num3, num4) = GetScalar(ref source, num2, lengthA);
169 var (num5, elementOffset) = GetScalar(ref source2, num2, lengthB);
170 if (num3 == num5)
171 {
172 num2 += num4;
173 source = ref Unsafe.Add(ref source, num4);
174 source2 = ref Unsafe.Add(ref source2, elementOffset);
175 continue;
176 }
177 uint num6 = CharUnicodeInfo.ToUpper(num3);
178 uint num7 = CharUnicodeInfo.ToUpper(num5);
179 if (num6 == num7)
180 {
181 num2 += num4;
182 source = ref Unsafe.Add(ref source, num4);
183 source2 = ref Unsafe.Add(ref source2, elementOffset);
184 continue;
185 }
186 return (int)(num3 - num5);
187 }
188 return lengthA - lengthB;
189 }
static int GetScalar(ref char source, int index, int length)

References System.Globalization.InvariantModeCasing.GetScalar(), System.Math.Min(), System.source, and System.Globalization.CharUnicodeInfo.ToUpper().

Referenced by System.Globalization.CompareInfo.CompareOptionIgnoreCase(), and System.Globalization.Ordinal.CompareStringIgnoreCaseNonAscii().