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

◆ ReadQuotedString() [2/2]

static string System.Net.Mime.MailBnfHelper.ReadQuotedString ( string data,
ref int offset,
StringBuilder builder,
bool doesntRequireQuotes,
bool permitUnicodeInDisplayName )
inlinestaticpackage

Definition at line 232 of file MailBnfHelper.cs.

233 {
234 if (!doesntRequireQuotes)
235 {
236 offset++;
237 }
238 int num = offset;
239 StringBuilder stringBuilder = ((builder != null) ? builder : new StringBuilder());
240 while (offset < data.Length)
241 {
242 if (data[offset] == '\\')
243 {
244 stringBuilder.Append(data, num, offset - num);
245 num = ++offset;
246 }
247 else
248 {
249 if (data[offset] == '"')
250 {
251 stringBuilder.Append(data, num, offset - num);
252 offset++;
253 if (builder == null)
254 {
255 return stringBuilder.ToString();
256 }
257 return null;
258 }
259 if (data[offset] == '=' && data.Length > offset + 3 && data[offset + 1] == '\r' && data[offset + 2] == '\n' && (data[offset + 3] == ' ' || data[offset + 3] == '\t'))
260 {
261 offset += 3;
262 }
263 else if (permitUnicodeInDisplayName)
264 {
265 if (data[offset] <= '\u007f' && !Qtext[(uint)data[offset]])
266 {
267 throw new FormatException(System.SR.Format(System.SR.MailHeaderFieldInvalidCharacter, data[offset]));
268 }
269 }
270 else if (data[offset] > '\u007f' || !Qtext[(uint)data[offset]])
271 {
272 throw new FormatException(System.SR.Format(System.SR.MailHeaderFieldInvalidCharacter, data[offset]));
273 }
274 }
275 offset++;
276 }
277 if (doesntRequireQuotes)
278 {
279 stringBuilder.Append(data, num, offset - num);
280 if (builder == null)
281 {
282 return stringBuilder.ToString();
283 }
284 return null;
285 }
286 throw new FormatException(System.SR.MailHeaderFieldMalformedHeader);
287 }
static readonly bool[] Qtext
static string Format(string resourceFormat, object p1)
Definition SR.cs:118
static string MailHeaderFieldMalformedHeader
Definition SR.cs:38
static string MailHeaderFieldInvalidCharacter
Definition SR.cs:140
Definition SR.cs:7
override string ToString()
StringBuilder Append(char value, int repeatCount)

References System.Text.StringBuilder.Append(), System.SR.Format(), System.SR.MailHeaderFieldInvalidCharacter, System.SR.MailHeaderFieldMalformedHeader, System.offset, System.Net.Mime.MailBnfHelper.Qtext, and System.Text.StringBuilder.ToString().