Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
EncoderReplacementFallbackBuffer.cs
Go to the documentation of this file.
1namespace System.Text;
2
4{
5 private readonly string _strDefault;
6
7 private int _fallbackCount = -1;
8
9 private int _fallbackIndex = -1;
10
11 public override int Remaining
12 {
13 get
14 {
15 if (_fallbackCount >= 0)
16 {
17 return _fallbackCount;
18 }
19 return 0;
20 }
21 }
22
24 {
25 _strDefault = fallback.DefaultString + fallback.DefaultString;
26 }
27
28 public override bool Fallback(char charUnknown, int index)
29 {
30 if (_fallbackCount >= 1)
31 {
32 if (char.IsHighSurrogate(charUnknown) && _fallbackCount >= 0 && char.IsLowSurrogate(_strDefault[_fallbackIndex + 1]))
33 {
34 EncoderFallbackBuffer.ThrowLastCharRecursive(char.ConvertToUtf32(charUnknown, _strDefault[_fallbackIndex + 1]));
35 }
37 }
38 _fallbackCount = _strDefault.Length / 2;
39 _fallbackIndex = -1;
40 return _fallbackCount != 0;
41 }
42
43 public override bool Fallback(char charUnknownHigh, char charUnknownLow, int index)
44 {
45 if (!char.IsHighSurrogate(charUnknownHigh))
46 {
47 throw new ArgumentOutOfRangeException("charUnknownHigh", SR.Format(SR.ArgumentOutOfRange_Range, 55296, 56319));
48 }
49 if (!char.IsLowSurrogate(charUnknownLow))
50 {
51 throw new ArgumentOutOfRangeException("charUnknownLow", SR.Format(SR.ArgumentOutOfRange_Range, 56320, 57343));
52 }
53 if (_fallbackCount >= 1)
54 {
55 EncoderFallbackBuffer.ThrowLastCharRecursive(char.ConvertToUtf32(charUnknownHigh, charUnknownLow));
56 }
58 _fallbackIndex = -1;
59 return _fallbackCount != 0;
60 }
61
62 public override char GetNextChar()
63 {
66 if (_fallbackCount < 0)
67 {
68 return '\0';
69 }
70 if (_fallbackCount == int.MaxValue)
71 {
72 _fallbackCount = -1;
73 return '\0';
74 }
76 }
77
78 public override bool MovePrevious()
79 {
80 if (_fallbackCount >= -1 && _fallbackIndex >= 0)
81 {
84 return true;
85 }
86 return false;
87 }
88
89 public unsafe override void Reset()
90 {
91 _fallbackCount = -1;
93 charStart = null;
94 bFallingBack = false;
95 }
96}
static string ArgumentOutOfRange_Range
Definition SR.cs:1096
static string Format(string resourceFormat, object p1)
Definition SR.cs:118
Definition SR.cs:7
static void ThrowLastCharRecursive(int charRecursive)
override bool Fallback(char charUnknownHigh, char charUnknownLow, int index)
EncoderReplacementFallbackBuffer(EncoderReplacementFallback fallback)
override bool Fallback(char charUnknown, int index)