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

◆ WriteElementTextBlock()

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

Definition at line 833 of file XmlEncodedRawTextWriter.cs.

834 {
835 fixed (char* ptr = _bufChars)
836 {
837 char* ptr2 = ptr + _bufPos;
838 int num = 0;
839 while (true)
840 {
841 char* ptr3 = ptr2 + (pSrcEnd - pSrc);
842 if (ptr3 > ptr + _bufLen)
843 {
844 ptr3 = ptr + _bufLen;
845 }
846 while (ptr2 < ptr3 && XmlCharType.IsAttributeValueChar((char)(num = *pSrc)))
847 {
848 *ptr2 = (char)num;
849 ptr2++;
850 pSrc++;
851 }
852 if (pSrc >= pSrcEnd)
853 {
854 break;
855 }
856 if (ptr2 >= ptr3)
857 {
858 _bufPos = (int)(ptr2 - ptr);
859 FlushBuffer();
860 ptr2 = ptr + 1;
861 continue;
862 }
863 switch (num)
864 {
865 case 38:
867 break;
868 case 60:
869 ptr2 = LtEntity(ptr2);
870 break;
871 case 62:
872 ptr2 = GtEntity(ptr2);
873 break;
874 case 9:
875 case 34:
876 case 39:
877 *ptr2 = (char)num;
878 ptr2++;
879 break;
880 case 10:
881 if (_newLineHandling == NewLineHandling.Replace)
882 {
884 break;
885 }
886 *ptr2 = (char)num;
887 ptr2++;
888 break;
889 case 13:
890 switch (_newLineHandling)
891 {
892 case NewLineHandling.Replace:
893 if (pSrc + 1 < pSrcEnd && pSrc[1] == '\n')
894 {
895 pSrc++;
896 }
898 break;
899 case NewLineHandling.Entitize:
901 break;
902 case NewLineHandling.None:
903 *ptr2 = (char)num;
904 ptr2++;
905 break;
906 }
907 break;
908 default:
909 if (XmlCharType.IsSurrogate(num))
910 {
912 pSrc += 2;
913 }
914 else if (num <= 127 || num >= 65534)
915 {
917 pSrc++;
918 }
919 else
920 {
921 *ptr2 = (char)num;
922 ptr2++;
923 pSrc++;
924 }
925 continue;
926 }
927 pSrc++;
928 }
929 _bufPos = (int)(ptr2 - ptr);
931 _contentPos = 0;
932 }
933 }
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 * 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._contentPos, System.Xml.XmlEncodedRawTextWriter._newLineHandling, System.Xml.XmlEncodedRawTextWriter._textPos, 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.LtEntity(), and System.Xml.XmlEncodedRawTextWriter.WriteNewLine().

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