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

◆ WriteAttributeTextBlockNoFlush() [1/3]

unsafe int System.Xml.XmlEncodedRawTextWriter.WriteAttributeTextBlockNoFlush ( char * pSrc,
char * pSrcEnd )
inlineprotectedinherited

Definition at line 2165 of file XmlEncodedRawTextWriter.cs.

2166 {
2167 char* ptr = pSrc;
2168 fixed (char* ptr2 = _bufChars)
2169 {
2170 char* ptr3 = ptr2 + _bufPos;
2171 int num = 0;
2172 while (true)
2173 {
2174 char* ptr4 = ptr3 + (pSrcEnd - pSrc);
2175 if (ptr4 > ptr2 + _bufLen)
2176 {
2177 ptr4 = ptr2 + _bufLen;
2178 }
2179 while (ptr3 < ptr4 && XmlCharType.IsAttributeValueChar((char)(num = *pSrc)))
2180 {
2181 *ptr3 = (char)num;
2182 ptr3++;
2183 pSrc++;
2184 }
2185 if (pSrc >= pSrcEnd)
2186 {
2187 break;
2188 }
2189 if (ptr3 >= ptr4)
2190 {
2191 _bufPos = (int)(ptr3 - ptr2);
2192 return (int)(pSrc - ptr);
2193 }
2194 switch (num)
2195 {
2196 case 38:
2197 ptr3 = AmpEntity(ptr3);
2198 break;
2199 case 60:
2200 ptr3 = LtEntity(ptr3);
2201 break;
2202 case 62:
2203 ptr3 = GtEntity(ptr3);
2204 break;
2205 case 34:
2207 break;
2208 case 39:
2209 *ptr3 = (char)num;
2210 ptr3++;
2211 break;
2212 case 9:
2213 if (_newLineHandling == NewLineHandling.None)
2214 {
2215 *ptr3 = (char)num;
2216 ptr3++;
2217 }
2218 else
2219 {
2220 ptr3 = TabEntity(ptr3);
2221 }
2222 break;
2223 case 13:
2224 if (_newLineHandling == NewLineHandling.None)
2225 {
2226 *ptr3 = (char)num;
2227 ptr3++;
2228 }
2229 else
2230 {
2232 }
2233 break;
2234 case 10:
2235 if (_newLineHandling == NewLineHandling.None)
2236 {
2237 *ptr3 = (char)num;
2238 ptr3++;
2239 }
2240 else
2241 {
2243 }
2244 break;
2245 default:
2246 if (XmlCharType.IsSurrogate(num))
2247 {
2249 pSrc += 2;
2250 }
2251 else if (num <= 127 || num >= 65534)
2252 {
2254 pSrc++;
2255 }
2256 else
2257 {
2258 *ptr3 = (char)num;
2259 ptr3++;
2260 pSrc++;
2261 }
2262 continue;
2263 }
2264 pSrc++;
2265 }
2266 _bufPos = (int)(ptr3 - ptr2);
2267 }
2268 return -1;
2269 }
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.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.XmlEncodedRawTextWriter._WriteAttributeTextBlockAsync(), System.Xml.XmlEncodedRawTextWriter.WriteAttributeTextBlockAsync(), System.Xml.XmlEncodedRawTextWriter.WriteAttributeTextBlockAsync(), System.Xml.XmlEncodedRawTextWriter.WriteAttributeTextBlockNoFlush(), and System.Xml.XmlEncodedRawTextWriter.WriteAttributeTextBlockNoFlush().