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

◆ EncodeBytes()

int System.Net.Mime.QuotedPrintableStream.EncodeBytes ( byte[] buffer,
int offset,
int count )
inline

Definition at line 255 of file QuotedPrintableStream.cs.

256 {
257 int i;
258 for (i = offset; i < count + offset; i++)
259 {
260 if ((_lineLength != -1 && WriteState.CurrentLineLength + 3 + 2 >= _lineLength && (buffer[i] == 32 || buffer[i] == 9 || buffer[i] == 13 || buffer[i] == 10)) || _writeState.CurrentLineLength + 3 + 2 >= 70)
261 {
262 if (WriteState.Buffer.Length - WriteState.Length < 3)
263 {
264 return i - offset;
265 }
266 WriteState.Append(61);
267 WriteState.AppendCRLF(includeSpace: false);
268 }
269 if (buffer[i] == 13 && i + 1 < count + offset && buffer[i + 1] == 10)
270 {
271 if (WriteState.Buffer.Length - WriteState.Length < (_encodeCRLF ? 6 : 2))
272 {
273 return i - offset;
274 }
275 i++;
276 if (_encodeCRLF)
277 {
278 WriteState.Append(61, 48, 68, 61, 48, 65);
279 }
280 else
281 {
282 WriteState.AppendCRLF(includeSpace: false);
283 }
284 continue;
285 }
286 if ((buffer[i] < 32 && buffer[i] != 9) || buffer[i] == 61 || buffer[i] > 126)
287 {
288 if (WriteState.Buffer.Length - WriteState.Length < 3)
289 {
290 return i - offset;
291 }
292 WriteState.Append(61);
293 WriteState.Append(HexEncodeMap[buffer[i] >> 4]);
294 WriteState.Append(HexEncodeMap[buffer[i] & 0xF]);
295 continue;
296 }
297 if (WriteState.Buffer.Length - WriteState.Length < 1)
298 {
299 return i - offset;
300 }
301 if ((buffer[i] == 9 || buffer[i] == 32) && i + 1 >= count + offset)
302 {
303 if (WriteState.Buffer.Length - WriteState.Length < 3)
304 {
305 return i - offset;
306 }
307 WriteState.Append(61);
308 WriteState.Append(HexEncodeMap[buffer[i] >> 4]);
309 WriteState.Append(HexEncodeMap[buffer[i] & 0xF]);
310 }
311 else
312 {
313 WriteState.Append(buffer[i]);
314 }
315 }
316 return i - offset;
317 }

References System.Net.Mime.QuotedPrintableStream._encodeCRLF, System.Net.Mime.QuotedPrintableStream._lineLength, System.Net.Mime.QuotedPrintableStream._writeState, System.buffer, System.count, System.Net.Mime.WriteStateInfoBase.CurrentLineLength, System.Net.Mime.QuotedPrintableStream.HexEncodeMap, and System.offset.

Referenced by System.Net.Mime.QuotedPrintableStream.EncodeString(), System.Net.Mime.QuotedPrintableStream.WriteAsyncResult.Write(), and System.Net.Mime.QuotedPrintableStream.Write().