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

◆ StripBidiControlCharacters()

static unsafe string System.UriHelper.StripBidiControlCharacters ( ReadOnlySpan< char > strToClean,
string backingString = null )
inlinestaticpackage

Definition at line 485 of file UriHelper.cs.

486 {
487 int num = 0;
488 ReadOnlySpan<char> readOnlySpan = strToClean;
489 for (int i = 0; i < readOnlySpan.Length; i++)
490 {
491 char c = readOnlySpan[i];
492 if ((uint)(c - 8206) <= 32u && IsBidiControlCharacter(c))
493 {
494 num++;
495 }
496 }
497 if (num == 0)
498 {
499 return backingString ?? new string(strToClean);
500 }
501 if (num == strToClean.Length)
502 {
503 return string.Empty;
504 }
505 fixed (char* ptr = &MemoryMarshal.GetReference(strToClean))
506 {
507 return string.Create(strToClean.Length - num, ((IntPtr)ptr, strToClean.Length), delegate(Span<char> buffer, (IntPtr StrToClean, int Length) state)
508 {
509 ReadOnlySpan<char> readOnlySpan2 = new ReadOnlySpan<char>((void*)state.StrToClean, state.Length);
510 int num2 = 0;
511 ReadOnlySpan<char> readOnlySpan3 = readOnlySpan2;
512 for (int j = 0; j < readOnlySpan3.Length; j++)
513 {
514 char c2 = readOnlySpan3[j];
515 if ((uint)(c2 - 8206) > 32u || !IsBidiControlCharacter(c2))
516 {
517 buffer[num2++] = c2;
518 }
519 }
520 });
521 }
522 }
static bool IsBidiControlCharacter(char ch)
Definition UriHelper.cs:476

References System.buffer, System.UriHelper.IsBidiControlCharacter(), System.ReadOnlySpan< T >.Length, and System.state.

Referenced by System.Uri.CheckAuthorityHelperHandleDnsIri(), System.DomainNameHelper.IdnEquivalent(), and System.Uri.ReCreateParts().