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

◆ WriteAttributeTextBlock()

unsafe void System.Xml.XmlEncodedRawTextWriter.WriteAttributeTextBlock ( char * pSrc,
char * pSrcEnd )
inlineprotectedinherited

Definition at line 727 of file XmlEncodedRawTextWriter.cs.

728 {
729 fixed (char* ptr = _bufChars)
730 {
731 char* ptr2 = ptr + _bufPos;
732 int num = 0;
733 while (true)
734 {
735 char* ptr3 = ptr2 + (pSrcEnd - pSrc);
736 if (ptr3 > ptr + _bufLen)
737 {
738 ptr3 = ptr + _bufLen;
739 }
740 while (ptr2 < ptr3 && XmlCharType.IsAttributeValueChar((char)(num = *pSrc)))
741 {
742 *ptr2 = (char)num;
743 ptr2++;
744 pSrc++;
745 }
746 if (pSrc >= pSrcEnd)
747 {
748 break;
749 }
750 if (ptr2 >= ptr3)
751 {
752 _bufPos = (int)(ptr2 - ptr);
753 FlushBuffer();
754 ptr2 = ptr + 1;
755 continue;
756 }
757 switch (num)
758 {
759 case 38:
761 break;
762 case 60:
763 ptr2 = LtEntity(ptr2);
764 break;
765 case 62:
766 ptr2 = GtEntity(ptr2);
767 break;
768 case 34:
770 break;
771 case 39:
772 *ptr2 = (char)num;
773 ptr2++;
774 break;
775 case 9:
776 if (_newLineHandling == NewLineHandling.None)
777 {
778 *ptr2 = (char)num;
779 ptr2++;
780 }
781 else
782 {
784 }
785 break;
786 case 13:
787 if (_newLineHandling == NewLineHandling.None)
788 {
789 *ptr2 = (char)num;
790 ptr2++;
791 }
792 else
793 {
795 }
796 break;
797 case 10:
798 if (_newLineHandling == NewLineHandling.None)
799 {
800 *ptr2 = (char)num;
801 ptr2++;
802 }
803 else
804 {
806 }
807 break;
808 default:
809 if (XmlCharType.IsSurrogate(num))
810 {
812 pSrc += 2;
813 }
814 else if (num <= 127 || num >= 65534)
815 {
817 pSrc++;
818 }
819 else
820 {
821 *ptr2 = (char)num;
822 ptr2++;
823 pSrc++;
824 }
825 continue;
826 }
827 pSrc++;
828 }
829 _bufPos = (int)(ptr2 - ptr);
830 }
831 }
static unsafe char * AmpEntity(char *pDst)
static unsafe char * LtEntity(char *pDst)
unsafe char * InvalidXmlChar(int ch, char *pDst, bool entitize)
static unsafe char * GtEntity(char *pDst)
static unsafe char * QuoteEntity(char *pDst)
static unsafe char * LineFeedEntity(char *pDst)
static unsafe char * TabEntity(char *pDst)
static unsafe char * CarriageReturnEntity(char *pDst)
static unsafe char * EncodeSurrogate(char *pSrc, char *pSrcEnd, char *pDst)

References System.Xml.XmlEncodedRawTextWriter._bufChars, System.Xml.XmlEncodedRawTextWriter._bufLen, System.Xml.XmlEncodedRawTextWriter._bufPos, System.Xml.XmlEncodedRawTextWriter._newLineHandling, System.Xml.XmlEncodedRawTextWriter.AmpEntity(), System.Xml.XmlEncodedRawTextWriter.CarriageReturnEntity(), System.Xml.Dictionary, System.Xml.XmlEncodedRawTextWriter.EncodeSurrogate(), System.Xml.XmlEncodedRawTextWriter.FlushBuffer(), System.Xml.XmlEncodedRawTextWriter.GtEntity(), System.Xml.XmlEncodedRawTextWriter.InvalidXmlChar(), System.Xml.XmlCharType.IsAttributeValueChar(), System.Xml.XmlCharType.IsSurrogate(), System.Xml.XmlEncodedRawTextWriter.LineFeedEntity(), System.Xml.XmlEncodedRawTextWriter.LtEntity(), System.Xml.XmlEncodedRawTextWriter.QuoteEntity(), and System.Xml.XmlEncodedRawTextWriter.TabEntity().

Referenced by System.Xml.HtmlEncodedRawTextWriter.WriteChars(), System.Xml.XmlEncodedRawTextWriter.WriteChars(), System.Xml.HtmlEncodedRawTextWriter.WriteHtmlAttributeTextBlock(), System.Xml.XmlEncodedRawTextWriter.WriteString(), and System.Xml.XmlEncodedRawTextWriter.WriteWhitespace().