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

◆ IcuGetUnicodeCore() [2/2]

unsafe string System.Globalization.IdnMapping.IcuGetUnicodeCore ( string asciiString,
char * ascii,
int count,
uint flags,
char * output,
int outputLength,
bool reattempt )
inlineprivate

Definition at line 744 of file IdnMapping.cs.

745 {
746 int num = Interop.Globalization.ToUnicode(flags, ascii, count, output, outputLength);
747 if (num == 0)
748 {
749 throw new ArgumentException(SR.Argument_IdnIllegalName, "ascii");
750 }
751 if (num <= outputLength)
752 {
753 return GetStringForOutput(asciiString, ascii, count, output, num);
754 }
755 if (reattempt)
756 {
757 fixed (char* output2 = new char[num])
758 {
759 return IcuGetUnicodeCore(asciiString, ascii, count, flags, output2, num, reattempt: false);
760 }
761 }
762 throw new ArgumentException(SR.Argument_IdnIllegalName, "ascii");
763 }
static unsafe int ToUnicode(uint flags, char *src, int srcLen, char *dstBuffer, int dstBufferCapacity)
unsafe string IcuGetUnicodeCore(string asciiString, char *ascii, int count)
static unsafe string GetStringForOutput(string originalString, char *input, int inputLength, char *output, int outputLength)

References System.SR.Argument_IdnIllegalName, System.count, System.Globalization.IdnMapping.GetStringForOutput(), System.Globalization.IdnMapping.IcuGetUnicodeCore(), and Interop.Globalization.ToUnicode().