MCPcopy Create free account
hub / github.com/Kitware/CMake / doCdataSection

Function doCdataSection

Utilities/cmexpat/lib/xmlparse.c:4591–4715  ·  view source on GitHub ↗

startPtr gets set to non-null if the section is closed, and to null if the section is not yet closed. */

Source from the content-addressed store, hash-verified

4589 the section is not yet closed.
4590*/
4591static enum XML_Error
4592doCdataSection(XML_Parser parser, const ENCODING *enc, const char **startPtr,
4593 const char *end, const char **nextPtr, XML_Bool haveMore,
4594 enum XML_Account account) {
4595 const char *s = *startPtr;
4596 const char **eventPP;
4597 const char **eventEndPP;
4598 if (enc == parser->m_encoding) {
4599 eventPP = &parser->m_eventPtr;
4600 *eventPP = s;
4601 eventEndPP = &parser->m_eventEndPtr;
4602 } else {
4603 eventPP = &(parser->m_openInternalEntities->internalEventPtr);
4604 eventEndPP = &(parser->m_openInternalEntities->internalEventEndPtr);
4605 }
4606 *eventPP = s;
4607 *startPtr = NULL;
4608
4609 for (;;) {
4610 const char *next = s; /* in case of XML_TOK_NONE or XML_TOK_PARTIAL */
4611 int tok = XmlCdataSectionTok(enc, s, end, &next);
4612#if XML_GE == 1
4613 if (! accountingDiffTolerated(parser, tok, s, next, __LINE__, account)) {
4614 accountingOnAbort(parser);
4615 return XML_ERROR_AMPLIFICATION_LIMIT_BREACH;
4616 }
4617#else
4618 UNUSED_P(account);
4619#endif
4620 *eventEndPP = next;
4621 switch (tok) {
4622 case XML_TOK_CDATA_SECT_CLOSE:
4623 if (parser->m_endCdataSectionHandler)
4624 parser->m_endCdataSectionHandler(parser->m_handlerArg);
4625 /* BEGIN disabled code */
4626 /* see comment under XML_TOK_CDATA_SECT_OPEN */
4627 else if ((0) && parser->m_characterDataHandler)
4628 parser->m_characterDataHandler(parser->m_handlerArg, parser->m_dataBuf,
4629 0);
4630 /* END disabled code */
4631 else if (parser->m_defaultHandler)
4632 reportDefault(parser, enc, s, next);
4633 *startPtr = next;
4634 *nextPtr = next;
4635 if (parser->m_parsingStatus.parsing == XML_FINISHED)
4636 return XML_ERROR_ABORTED;
4637 else
4638 return XML_ERROR_NONE;
4639 case XML_TOK_DATA_NEWLINE:
4640 if (parser->m_characterDataHandler) {
4641 XML_Char c = 0xA;
4642 parser->m_characterDataHandler(parser->m_handlerArg, &c, 1);
4643 } else if (parser->m_defaultHandler)
4644 reportDefault(parser, enc, s, next);
4645 break;
4646 case XML_TOK_DATA_CHARS: {
4647 XML_CharacterDataHandler charDataHandler = parser->m_characterDataHandler;
4648 if (charDataHandler) {

Callers 2

doContentFunction · 0.85
cdataSectionProcessorFunction · 0.85

Calls 3

accountingDiffToleratedFunction · 0.85
accountingOnAbortFunction · 0.85
reportDefaultFunction · 0.85

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…