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

◆ EscapeString() [1/2]

static void System.UriHelper.EscapeString ( ReadOnlySpan< char > stringToEscape,
ref System::Text::ValueStringBuilder dest,
bool checkExistingEscaped,
char forceEscape1 = '\0',
char forceEscape2 = '\0' )
inlinestaticpackage

Definition at line 157 of file UriHelper.cs.

158 {
159 ReadOnlySpan<bool> readOnlySpan = default(Span<bool>);
160 if ((forceEscape1 | forceEscape2) == 0)
161 {
162 readOnlySpan = UnreservedReservedTable;
163 }
164 else
165 {
166 Span<bool> span = stackalloc bool[128];
167 UnreservedReservedTable.CopyTo(span);
168 span[forceEscape1] = false;
169 span[forceEscape2] = false;
170 readOnlySpan = span;
171 }
172 int i;
173 for (i = 0; i < stringToEscape.Length; i++)
174 {
175 char index;
176 if ((index = stringToEscape[i]) > '\u007f')
177 {
178 break;
179 }
180 if (!readOnlySpan[index])
181 {
182 break;
183 }
184 }
185 if (i == stringToEscape.Length)
186 {
187 dest.Append(stringToEscape);
188 return;
189 }
190 dest.Append(stringToEscape.Slice(0, i));
191 ReadOnlySpan<bool> noEscape = MemoryMarshal.CreateReadOnlySpan(ref MemoryMarshal.GetReference(readOnlySpan), readOnlySpan.Length);
192 EscapeStringToBuilder(stringToEscape.Slice(i), ref dest, noEscape, checkExistingEscaped);
193 }
static ReadOnlySpan< bool > UnreservedReservedTable
Definition UriHelper.cs:12
static void EscapeStringToBuilder(ReadOnlySpan< char > stringToEscape, ref System.Text.ValueStringBuilder vsb, ReadOnlySpan< bool > noEscape, bool checkExistingEscaped)
Definition UriHelper.cs:195
ReadOnlySpan< T > Slice(int start)

References System.UriHelper.EscapeStringToBuilder(), System.index, System.ReadOnlySpan< T >.Length, System.ReadOnlySpan< T >.Slice(), and System.UriHelper.UnreservedReservedTable.