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

◆ WriteHtmlAttributeText()

unsafe void System.Xml.HtmlEncodedRawTextWriter.WriteHtmlAttributeText ( char * pSrc,
char * pSrcEnd )
inlineprivateinherited

Definition at line 365 of file HtmlEncodedRawTextWriter.cs.

366 {
368 {
369 if (pSrcEnd - pSrc > 0 && *pSrc != '{')
370 {
372 }
373 _endsWithAmpersand = false;
374 }
375 fixed (char* ptr = _bufChars)
376 {
377 char* pDst = ptr + _bufPos;
378 char c = '\0';
379 while (true)
380 {
381 char* ptr2 = pDst + (pSrcEnd - pSrc);
382 if (ptr2 > ptr + _bufLen)
383 {
384 ptr2 = ptr + _bufLen;
385 }
386 while (pDst < ptr2 && XmlCharType.IsAttributeValueChar(c = *pSrc))
387 {
388 *(pDst++) = c;
389 pSrc++;
390 }
391 if (pSrc >= pSrcEnd)
392 {
393 break;
394 }
395 if (pDst >= ptr2)
396 {
397 _bufPos = (int)(pDst - ptr);
398 FlushBuffer();
399 pDst = ptr + 1;
400 continue;
401 }
402 switch (c)
403 {
404 case '&':
405 if (pSrc + 1 == pSrcEnd)
406 {
407 _endsWithAmpersand = true;
408 }
409 else if (pSrc[1] != '{')
410 {
411 pDst = XmlEncodedRawTextWriter.AmpEntity(pDst);
412 break;
413 }
414 *(pDst++) = c;
415 break;
416 case '"':
417 pDst = XmlEncodedRawTextWriter.QuoteEntity(pDst);
418 break;
419 case '\t':
420 case '\'':
421 case '<':
422 case '>':
423 *(pDst++) = c;
424 break;
425 case '\r':
426 pDst = XmlEncodedRawTextWriter.CarriageReturnEntity(pDst);
427 break;
428 case '\n':
429 pDst = XmlEncodedRawTextWriter.LineFeedEntity(pDst);
430 break;
431 default:
433 continue;
434 }
435 pSrc++;
436 }
437 _bufPos = (int)(pDst - ptr);
438 }
439 }
XmlEncodedRawTextWriter(XmlWriterSettings settings)
unsafe void EncodeChar(ref char *pSrc, char *pSrcEnd, ref char *pDst)

References System.Xml.XmlEncodedRawTextWriter._bufChars, System.Xml.XmlEncodedRawTextWriter._bufLen, System.Xml.XmlEncodedRawTextWriter._bufPos, System.Xml.HtmlEncodedRawTextWriter._endsWithAmpersand, System.Xml.XmlEncodedRawTextWriter.AmpEntity(), System.Xml.XmlEncodedRawTextWriter.CarriageReturnEntity(), System.Xml.Dictionary, System.Xml.XmlEncodedRawTextWriter.EncodeChar(), System.Xml.XmlEncodedRawTextWriter.FlushBuffer(), System.Xml.XmlCharType.IsAttributeValueChar(), System.Xml.XmlEncodedRawTextWriter.LineFeedEntity(), System.Xml.HtmlEncodedRawTextWriter.OutputRestAmps(), and System.Xml.XmlEncodedRawTextWriter.QuoteEntity().

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