Terraria
v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
EncoderLatin1BestFitFallbackBuffer.cs
Go to the documentation of this file.
1
namespace
System.Text
;
2
3
internal
sealed
class
EncoderLatin1BestFitFallbackBuffer
:
EncoderFallbackBuffer
4
{
5
private
char
_cBestFit
;
6
7
private
int
_iCount
= -1;
8
9
private
int
_iSize
;
10
11
private
static
readonly
char
[]
s_arrayCharBestFit
=
new
char
[604]
12
{
13
'Ā'
,
'A'
,
'ā'
,
'a'
,
'Ă'
,
'A'
,
'ă'
,
'a'
,
'Ą'
,
'A'
,
14
'ą'
,
'a'
,
'Ć'
,
'C'
,
'ć'
,
'c'
,
'Ĉ'
,
'C'
,
'ĉ'
,
'c'
,
15
'Ċ'
,
'C'
,
'ċ'
,
'c'
,
'Č'
,
'C'
,
'č'
,
'c'
,
'Ď'
,
'D'
,
16
'ď'
,
'd'
,
'Đ'
,
'D'
,
'đ'
,
'd'
,
'Ē'
,
'E'
,
'ē'
,
'e'
,
17
'Ĕ'
,
'E'
,
'ĕ'
,
'e'
,
'Ė'
,
'E'
,
'ė'
,
'e'
,
'Ę'
,
'E'
,
18
'ę'
,
'e'
,
'Ě'
,
'E'
,
'ě'
,
'e'
,
'Ĝ'
,
'G'
,
'ĝ'
,
'g'
,
19
'Ğ'
,
'G'
,
'ğ'
,
'g'
,
'Ġ'
,
'G'
,
'ġ'
,
'g'
,
'Ģ'
,
'G'
,
20
'ģ'
,
'g'
,
'Ĥ'
,
'H'
,
'ĥ'
,
'h'
,
'Ħ'
,
'H'
,
'ħ'
,
'h'
,
21
'Ĩ'
,
'I'
,
'ĩ'
,
'i'
,
'Ī'
,
'I'
,
'ī'
,
'i'
,
'Ĭ'
,
'I'
,
22
'ĭ'
,
'i'
,
'Į'
,
'I'
,
'į'
,
'i'
,
'İ'
,
'I'
,
'ı'
,
'i'
,
23
'Ĵ'
,
'J'
,
'ĵ'
,
'j'
,
'Ķ'
,
'K'
,
'ķ'
,
'k'
,
'Ĺ'
,
'L'
,
24
'ĺ'
,
'l'
,
'Ļ'
,
'L'
,
'ļ'
,
'l'
,
'Ľ'
,
'L'
,
'ľ'
,
'l'
,
25
'Ł'
,
'L'
,
'ł'
,
'l'
,
'Ń'
,
'N'
,
'ń'
,
'n'
,
'Ņ'
,
'N'
,
26
'ņ'
,
'n'
,
'Ň'
,
'N'
,
'ň'
,
'n'
,
'Ō'
,
'O'
,
'ō'
,
'o'
,
27
'Ŏ'
,
'O'
,
'ŏ'
,
'o'
,
'Ő'
,
'O'
,
'ő'
,
'o'
,
'Œ'
,
'O'
,
28
'œ'
,
'o'
,
'Ŕ'
,
'R'
,
'ŕ'
,
'r'
,
'Ŗ'
,
'R'
,
'ŗ'
,
'r'
,
29
'Ř'
,
'R'
,
'ř'
,
'r'
,
'Ś'
,
'S'
,
'ś'
,
's'
,
'Ŝ'
,
'S'
,
30
'ŝ'
,
's'
,
'Ş'
,
'S'
,
'ş'
,
's'
,
'Š'
,
'S'
,
'š'
,
's'
,
31
'Ţ'
,
'T'
,
'ţ'
,
't'
,
'Ť'
,
'T'
,
'ť'
,
't'
,
'Ŧ'
,
'T'
,
32
'ŧ'
,
't'
,
'Ũ'
,
'U'
,
'ũ'
,
'u'
,
'Ū'
,
'U'
,
'ū'
,
'u'
,
33
'Ŭ'
,
'U'
,
'ŭ'
,
'u'
,
'Ů'
,
'U'
,
'ů'
,
'u'
,
'Ű'
,
'U'
,
34
'ű'
,
'u'
,
'Ų'
,
'U'
,
'ų'
,
'u'
,
'Ŵ'
,
'W'
,
'ŵ'
,
'w'
,
35
'Ŷ'
,
'Y'
,
'ŷ'
,
'y'
,
'Ÿ'
,
'Y'
,
'Ź'
,
'Z'
,
'ź'
,
'z'
,
36
'Ż'
,
'Z'
,
'ż'
,
'z'
,
'Ž'
,
'Z'
,
'ž'
,
'z'
,
'ƀ'
,
'b'
,
37
'Ɖ'
,
'D'
,
'Ƒ'
,
'F'
,
'ƒ'
,
'f'
,
'Ɨ'
,
'I'
,
'ƚ'
,
'l'
,
38
'Ɵ'
,
'O'
,
'Ơ'
,
'O'
,
'ơ'
,
'o'
,
'ƫ'
,
't'
,
'Ʈ'
,
'T'
,
39
'Ư'
,
'U'
,
'ư'
,
'u'
,
'ƶ'
,
'z'
,
'Ǎ'
,
'A'
,
'ǎ'
,
'a'
,
40
'Ǐ'
,
'I'
,
'ǐ'
,
'i'
,
'Ǒ'
,
'O'
,
'ǒ'
,
'o'
,
'Ǔ'
,
'U'
,
41
'ǔ'
,
'u'
,
'Ǖ'
,
'U'
,
'ǖ'
,
'u'
,
'Ǘ'
,
'U'
,
'ǘ'
,
'u'
,
42
'Ǚ'
,
'U'
,
'ǚ'
,
'u'
,
'Ǜ'
,
'U'
,
'ǜ'
,
'u'
,
'Ǟ'
,
'A'
,
43
'ǟ'
,
'a'
,
'Ǥ'
,
'G'
,
'ǥ'
,
'g'
,
'Ǧ'
,
'G'
,
'ǧ'
,
'g'
,
44
'Ǩ'
,
'K'
,
'ǩ'
,
'k'
,
'Ǫ'
,
'O'
,
'ǫ'
,
'o'
,
'Ǭ'
,
'O'
,
45
'ǭ'
,
'o'
,
'ǰ'
,
'j'
,
'ɡ'
,
'g'
,
'ʹ'
,
'\''
,
'ʺ'
,
'"'
,
46
'ʼ'
,
'\''
,
'\u02c4'
,
'^'
,
'ˆ'
,
'^'
,
'ˈ'
,
'\''
,
'ˉ'
,
'?'
,
47
'ˊ'
,
'?'
,
'ˋ'
,
'`'
,
'ˍ'
,
'_'
,
'\u02da'
,
'?'
,
'\u02dc'
,
'~'
,
48
'\u0300'
,
'`'
,
'\u0302'
,
'^'
,
'\u0303'
,
'~'
,
'\u030e'
,
'"'
,
'\u0331'
,
'_'
,
49
'\u0332'
,
'_'
,
'\u2000'
,
' '
,
'\u2001'
,
' '
,
'\u2002'
,
' '
,
'\u2003'
,
' '
,
50
'\u2004'
,
' '
,
'\u2005'
,
' '
,
'\u2006'
,
' '
,
'‐'
,
'-'
,
'‑'
,
'-'
,
51
'–'
,
'-'
,
'—'
,
'-'
,
'‘'
,
'\''
,
'’'
,
'\''
,
'‚'
,
','
,
52
'“'
,
'"'
,
'”'
,
'"'
,
'„'
,
'"'
,
'†'
,
'?'
,
'‡'
,
'?'
,
53
'•'
,
'.'
,
'…'
,
'.'
,
'‰'
,
'?'
,
'′'
,
'\''
,
'‵'
,
'`'
,
54
'‹'
,
'<'
,
'›'
,
'>'
,
'™'
,
'T'
,
'!'
,
'!'
,
'"'
,
'"'
,
55
'#'
,
'#'
,
'$'
,
'$'
,
'%'
,
'%'
,
'&'
,
'&'
,
'''
,
'\''
,
56
'('
,
'('
,
')'
,
')'
,
'*'
,
'*'
,
'+'
,
'+'
,
','
,
','
,
57
'-'
,
'-'
,
'.'
,
'.'
,
'/'
,
'/'
,
'0'
,
'0'
,
'1'
,
'1'
,
58
'2'
,
'2'
,
'3'
,
'3'
,
'4'
,
'4'
,
'5'
,
'5'
,
'6'
,
'6'
,
59
'7'
,
'7'
,
'8'
,
'8'
,
'9'
,
'9'
,
':'
,
':'
,
';'
,
';'
,
60
'<'
,
'<'
,
'='
,
'='
,
'>'
,
'>'
,
'?'
,
'?'
,
'@'
,
'@'
,
61
'A'
,
'A'
,
'B'
,
'B'
,
'C'
,
'C'
,
'D'
,
'D'
,
'E'
,
'E'
,
62
'F'
,
'F'
,
'G'
,
'G'
,
'H'
,
'H'
,
'I'
,
'I'
,
'J'
,
'J'
,
63
'K'
,
'K'
,
'L'
,
'L'
,
'M'
,
'M'
,
'N'
,
'N'
,
'O'
,
'O'
,
64
'P'
,
'P'
,
'Q'
,
'Q'
,
'R'
,
'R'
,
'S'
,
'S'
,
'T'
,
'T'
,
65
'U'
,
'U'
,
'V'
,
'V'
,
'W'
,
'W'
,
'X'
,
'X'
,
'Y'
,
'Y'
,
66
'Z'
,
'Z'
,
'['
,
'['
,
'\'
,
'\\'
,
']'
,
']'
,
'\uff3e'
,
'^'
,
67
'\uff3f'
,
'_'
,
'\uff40'
,
'`'
,
'a'
,
'a'
,
'b'
,
'b'
,
'c'
,
'c'
,
68
'd'
,
'd'
,
'e'
,
'e'
,
'f'
,
'f'
,
'g'
,
'g'
,
'h'
,
'h'
,
69
'i'
,
'i'
,
'j'
,
'j'
,
'k'
,
'k'
,
'l'
,
'l'
,
'm'
,
'm'
,
70
'n'
,
'n'
,
'o'
,
'o'
,
'p'
,
'p'
,
'q'
,
'q'
,
'r'
,
'r'
,
71
's'
,
's'
,
't'
,
't'
,
'u'
,
'u'
,
'v'
,
'v'
,
'w'
,
'w'
,
72
'x'
,
'x'
,
'y'
,
'y'
,
'z'
,
'z'
,
'{'
,
'{'
,
'|'
,
'|'
,
73
'}'
,
'}'
,
'~'
,
'~'
74
};
75
76
public
override
int
Remaining
77
{
78
get
79
{
80
if
(
_iCount
<= 0)
81
{
82
return
0;
83
}
84
return
_iCount
;
85
}
86
}
87
88
public
override
bool
Fallback
(
char
charUnknown,
int
index
)
89
{
90
_iCount
= (
_iSize
= 1);
91
_cBestFit
=
TryBestFit
(charUnknown);
92
if
(
_cBestFit
==
'\0'
)
93
{
94
_cBestFit
=
'?'
;
95
}
96
return
true
;
97
}
98
99
public
override
bool
Fallback
(
char
charUnknownHigh,
char
charUnknownLow,
int
index
)
100
{
101
if
(!
char
.IsHighSurrogate(charUnknownHigh))
102
{
103
throw
new
ArgumentOutOfRangeException
(
"charUnknownHigh"
,
SR
.
Format
(
SR
.
ArgumentOutOfRange_Range
, 55296, 56319));
104
}
105
if
(!
char
.IsLowSurrogate(charUnknownLow))
106
{
107
throw
new
ArgumentOutOfRangeException
(
"charUnknownLow"
,
SR
.
Format
(
SR
.
ArgumentOutOfRange_Range
, 56320, 57343));
108
}
109
_cBestFit
=
'?'
;
110
_iCount
= (
_iSize
= 2);
111
return
true
;
112
}
113
114
public
override
char
GetNextChar
()
115
{
116
_iCount
--;
117
if
(
_iCount
< 0)
118
{
119
return
'\0'
;
120
}
121
if
(
_iCount
==
int
.MaxValue)
122
{
123
_iCount
= -1;
124
return
'\0'
;
125
}
126
return
_cBestFit
;
127
}
128
129
public
override
bool
MovePrevious
()
130
{
131
if
(
_iCount
>= 0)
132
{
133
_iCount
++;
134
}
135
if
(
_iCount
>= 0)
136
{
137
return
_iCount
<=
_iSize
;
138
}
139
return
false
;
140
}
141
142
public
unsafe
override
void
Reset
()
143
{
144
_iCount
= -1;
145
charStart
=
null
;
146
bFallingBack
=
false
;
147
}
148
149
private
static
char
TryBestFit
(
char
cUnknown)
150
{
151
int
num = 0;
152
int
num2 =
s_arrayCharBestFit
.Length;
153
int
num3;
154
while
((num3 = num2 - num) > 6)
155
{
156
int
num4 = (num3 / 2 + num) & 0xFFFE;
157
char
c =
s_arrayCharBestFit
[num4];
158
if
(c == cUnknown)
159
{
160
return
s_arrayCharBestFit
[num4 + 1];
161
}
162
if
(c < cUnknown)
163
{
164
num = num4;
165
}
166
else
167
{
168
num2 = num4;
169
}
170
}
171
for
(
int
num4 = num; num4 < num2; num4 += 2)
172
{
173
if
(
s_arrayCharBestFit
[num4] == cUnknown)
174
{
175
return
s_arrayCharBestFit
[num4 + 1];
176
}
177
}
178
return
'\0'
;
179
}
180
}
System.ArgumentOutOfRangeException
Definition
ArgumentOutOfRangeException.cs:9
System.SR.ArgumentOutOfRange_Range
static string ArgumentOutOfRange_Range
Definition
SR.cs:1096
System.SR.Format
static string Format(string resourceFormat, object p1)
Definition
SR.cs:118
System.SR
Definition
SR.cs:7
System.Text.EncoderFallbackBuffer.charStart
unsafe char * charStart
Definition
EncoderFallbackBuffer.cs:8
System.Text.EncoderFallbackBuffer.bFallingBack
bool bFallingBack
Definition
EncoderFallbackBuffer.cs:18
System.Text.EncoderFallbackBuffer
Definition
EncoderFallbackBuffer.cs:7
System.Text.EncoderLatin1BestFitFallbackBuffer.TryBestFit
static char TryBestFit(char cUnknown)
Definition
EncoderLatin1BestFitFallbackBuffer.cs:149
System.Text.EncoderLatin1BestFitFallbackBuffer.Fallback
override bool Fallback(char charUnknown, int index)
Definition
EncoderLatin1BestFitFallbackBuffer.cs:88
System.Text.EncoderLatin1BestFitFallbackBuffer.GetNextChar
override char GetNextChar()
Definition
EncoderLatin1BestFitFallbackBuffer.cs:114
System.Text.EncoderLatin1BestFitFallbackBuffer._iCount
int _iCount
Definition
EncoderLatin1BestFitFallbackBuffer.cs:7
System.Text.EncoderLatin1BestFitFallbackBuffer.Fallback
override bool Fallback(char charUnknownHigh, char charUnknownLow, int index)
Definition
EncoderLatin1BestFitFallbackBuffer.cs:99
System.Text.EncoderLatin1BestFitFallbackBuffer.Remaining
override int Remaining
Definition
EncoderLatin1BestFitFallbackBuffer.cs:77
System.Text.EncoderLatin1BestFitFallbackBuffer.s_arrayCharBestFit
static readonly char[] s_arrayCharBestFit
Definition
EncoderLatin1BestFitFallbackBuffer.cs:11
System.Text.EncoderLatin1BestFitFallbackBuffer._iSize
int _iSize
Definition
EncoderLatin1BestFitFallbackBuffer.cs:9
System.Text.EncoderLatin1BestFitFallbackBuffer.Reset
unsafe override void Reset()
Definition
EncoderLatin1BestFitFallbackBuffer.cs:142
System.Text.EncoderLatin1BestFitFallbackBuffer._cBestFit
char _cBestFit
Definition
EncoderLatin1BestFitFallbackBuffer.cs:5
System.Text.EncoderLatin1BestFitFallbackBuffer.MovePrevious
override bool MovePrevious()
Definition
EncoderLatin1BestFitFallbackBuffer.cs:129
System.Text.EncoderLatin1BestFitFallbackBuffer
Definition
EncoderLatin1BestFitFallbackBuffer.cs:4
System.Text
Definition
ConsoleEncoding.cs:1
System.ExceptionArgument.index
@ index
source
System.Private.CoreLib
System.Text
EncoderLatin1BestFitFallbackBuffer.cs
Generated by
1.10.0