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

◆ WriteUriAttributeText()

unsafe void System.Xml.HtmlEncodedRawTextWriter.WriteUriAttributeText ( char * pSrc,
char * pSrcEnd )
inlineprivate

Definition at line 441 of file HtmlEncodedRawTextWriter.cs.

442 {
444 {
445 if (pSrcEnd - pSrc > 0 && *pSrc != '{')
446 {
448 }
449 _endsWithAmpersand = false;
450 }
451 fixed (char* ptr = _bufChars)
452 {
453 char* ptr2 = ptr + _bufPos;
454 char c = '\0';
455 while (true)
456 {
457 char* ptr3 = ptr2 + (pSrcEnd - pSrc);
458 if (ptr3 > ptr + _bufLen)
459 {
460 ptr3 = ptr + _bufLen;
461 }
462 while (ptr2 < ptr3 && XmlCharType.IsAttributeValueChar(c = *pSrc) && c < '\u0080')
463 {
464 *(ptr2++) = c;
465 pSrc++;
466 }
467 if (pSrc >= pSrcEnd)
468 {
469 break;
470 }
471 if (ptr2 >= ptr3)
472 {
473 _bufPos = (int)(ptr2 - ptr);
474 FlushBuffer();
475 ptr2 = ptr + 1;
476 continue;
477 }
478 switch (c)
479 {
480 case '&':
481 if (pSrc + 1 == pSrcEnd)
482 {
483 _endsWithAmpersand = true;
484 }
485 else if (pSrc[1] != '{')
486 {
487 ptr2 = XmlEncodedRawTextWriter.AmpEntity(ptr2);
488 break;
489 }
490 *(ptr2++) = c;
491 break;
492 case '"':
493 ptr2 = XmlEncodedRawTextWriter.QuoteEntity(ptr2);
494 break;
495 case '\t':
496 case '\'':
497 case '<':
498 case '>':
499 *(ptr2++) = c;
500 break;
501 case '\r':
502 ptr2 = XmlEncodedRawTextWriter.CarriageReturnEntity(ptr2);
503 break;
504 case '\n':
505 ptr2 = XmlEncodedRawTextWriter.LineFeedEntity(ptr2);
506 break;
507 default:
509 {
510 byte* ptr5 = ptr4;
511 byte* pDst = ptr5;
512 XmlUtf8RawTextWriter.CharToUTF8(ref pSrc, pSrcEnd, ref pDst);
513 for (; ptr5 < pDst; ptr5++)
514 {
515 *(ptr2++) = '%';
518 }
519 }
520 continue;
521 }
522 pSrc++;
523 }
524 _bufPos = (int)(ptr2 - ptr);
525 }
526 }
static char ToCharUpper(int value)
XmlEncodedRawTextWriter(XmlWriterSettings settings)

References System.Xml.XmlEncodedRawTextWriter._bufChars, System.Xml.XmlEncodedRawTextWriter._bufLen, System.Xml.XmlEncodedRawTextWriter._bufPos, System.Xml.HtmlEncodedRawTextWriter._endsWithAmpersand, System.Xml.HtmlEncodedRawTextWriter._uriEscapingBuffer, System.Xml.XmlEncodedRawTextWriter.AmpEntity(), System.Xml.XmlEncodedRawTextWriter.CarriageReturnEntity(), System.Xml.XmlUtf8RawTextWriter.CharToUTF8(), System.Xml.Dictionary, System.Xml.XmlEncodedRawTextWriter.FlushBuffer(), System.Xml.XmlCharType.IsAttributeValueChar(), System.Xml.XmlEncodedRawTextWriter.LineFeedEntity(), System.Xml.HtmlEncodedRawTextWriter.OutputRestAmps(), System.Xml.XmlEncodedRawTextWriter.QuoteEntity(), and System.HexConverter.ToCharUpper().

Referenced by System.Xml.HtmlEncodedRawTextWriter.WriteHtmlAttributeTextBlock().

1.10.0