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

◆ ReadEscapedCharacter()

void System.Runtime.Serialization.Json.XmlJsonReader.ReadEscapedCharacter ( bool moveToText)
inlineprivate

Definition at line 968 of file XmlJsonReader.cs.

969 {
970 base.BufferReader.SkipByte();
971 char c = (char)base.BufferReader.GetByte();
972 switch (c)
973 {
974 case 'u':
975 {
976 base.BufferReader.SkipByte();
977 int offset;
978 byte[] buffer = base.BufferReader.GetBuffer(5, out offset);
979 string @string = Encoding.UTF8.GetString(buffer, offset, 4);
980 base.BufferReader.Advance(4);
981 int num = ParseChar(@string, NumberStyles.HexNumber);
982 if (char.IsHighSurrogate((char)num))
983 {
984 byte @byte = base.BufferReader.GetByte();
985 if (@byte == 92)
986 {
987 base.BufferReader.SkipByte();
989 buffer = base.BufferReader.GetBuffer(5, out offset);
990 @string = Encoding.UTF8.GetString(buffer, offset, 4);
991 base.BufferReader.Advance(4);
992 char c2 = ParseChar(@string, NumberStyles.HexNumber);
993 if (!char.IsLowSurrogate(c2))
994 {
996 }
997 num = new SurrogateChar(c2, (char)num).Char;
998 }
999 }
1000 if (buffer[offset + 4] == 34)
1001 {
1002 base.BufferReader.SkipByte();
1003 if (moveToText)
1004 {
1006 }
1007 _complexTextMode = JsonComplexTextMode.None;
1008 }
1009 else
1010 {
1011 if (moveToText)
1012 {
1014 }
1015 _complexTextMode = JsonComplexTextMode.QuotedText;
1016 }
1017 return;
1018 }
1019 case 'b':
1020 c = '\b';
1021 break;
1022 case 'f':
1023 c = '\f';
1024 break;
1025 case 'n':
1026 c = '\n';
1027 break;
1028 case 'r':
1029 c = '\r';
1030 break;
1031 case 't':
1032 c = '\t';
1033 break;
1034 default:
1036 break;
1037 case '"':
1038 case '/':
1039 case '\\':
1040 break;
1041 }
1042 base.BufferReader.SkipByte();
1043 if (base.BufferReader.GetByte() == 34)
1044 {
1045 base.BufferReader.SkipByte();
1046 if (moveToText)
1047 {
1049 }
1050 _complexTextMode = JsonComplexTextMode.None;
1051 }
1052 else
1053 {
1054 if (moveToText)
1055 {
1057 }
1058 _complexTextMode = JsonComplexTextMode.QuotedText;
1059 }
1060 }
static char ParseChar(string value, NumberStyles style)
void SkipExpectedByteInBufferReader(byte characterToSkip)
static string Format(string resourceFormat, object p1)
Definition SR.cs:118
static string XmlInvalidLowSurrogate
Definition SR.cs:342
static string JsonEncounteredUnexpectedCharacter
Definition SR.cs:540
Definition SR.cs:7
static Encoding UTF8
Definition Encoding.cs:526
void SetCharValue(int ch)
XmlComplexTextNode MoveToComplexText()
XmlAtomicTextNode MoveToAtomicText()
static void ThrowXmlException(XmlDictionaryReader reader, string res)

References System.Runtime.Serialization.Json.XmlJsonReader._complexTextMode, System.buffer, System.Text.SurrogateChar.Char, System.Runtime.Serialization.Dictionary, System.SR.Format(), System.SR.JsonEncounteredUnexpectedCharacter, System.Xml.XmlBaseReader.MoveToAtomicText(), System.Xml.XmlBaseReader.MoveToComplexText(), System.offset, System.Runtime.Serialization.Json.XmlJsonReader.ParseChar(), System.Xml.ValueHandle.SetCharValue(), System.Runtime.Serialization.Json.XmlJsonReader.SkipExpectedByteInBufferReader(), System.Xml.XmlExceptionHelper.ThrowXmlException(), System.Text.Encoding.UTF8, System.Xml.XmlBaseReader.XmlNode.Value, System.Xml.XmlException, and System.SR.XmlInvalidLowSurrogate.

Referenced by System.Runtime.Serialization.Json.XmlJsonReader.ParseAndSetLocalName(), System.Runtime.Serialization.Json.XmlJsonReader.Read(), System.Runtime.Serialization.Json.XmlJsonReader.ReadQuotedText(), and System.Runtime.Serialization.Json.XmlJsonReader.ReadServerTypeAttribute().