MCPcopy Create free account
hub / github.com/Geant4/geant4 / externalEntityInitProcessor3

Function externalEntityInitProcessor3

source/externals/expat/src/xmlparse.c:2677–2722  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2675}
2676
2677static enum XML_Error PTRCALL
2678externalEntityInitProcessor3(XML_Parser parser, const char *start,
2679 const char *end, const char **endPtr) {
2680 int tok;
2681 const char *next = start; /* XmlContentTok doesn't always set the last arg */
2682 parser->m_eventPtr = start;
2683 tok = XmlContentTok(parser->m_encoding, start, end, &next);
2684 /* Note: These bytes are accounted later in:
2685 - processXmlDecl
2686 - externalEntityContentProcessor
2687 */
2688 parser->m_eventEndPtr = next;
2689
2690 switch (tok) {
2691 case XML_TOK_XML_DECL: {
2692 enum XML_Error result;
2693 result = processXmlDecl(parser, 1, start, next);
2694 if (result != XML_ERROR_NONE)
2695 return result;
2696 switch (parser->m_parsingStatus.parsing) {
2697 case XML_SUSPENDED:
2698 *endPtr = next;
2699 return XML_ERROR_NONE;
2700 case XML_FINISHED:
2701 return XML_ERROR_ABORTED;
2702 default:
2703 start = next;
2704 }
2705 } break;
2706 case XML_TOK_PARTIAL:
2707 if (! parser->m_parsingStatus.finalBuffer) {
2708 *endPtr = start;
2709 return XML_ERROR_NONE;
2710 }
2711 return XML_ERROR_UNCLOSED_TOKEN;
2712 case XML_TOK_PARTIAL_CHAR:
2713 if (! parser->m_parsingStatus.finalBuffer) {
2714 *endPtr = start;
2715 return XML_ERROR_NONE;
2716 }
2717 return XML_ERROR_PARTIAL_CHAR;
2718 }
2719 parser->m_processor = externalEntityContentProcessor;
2720 parser->m_tagLevel = 1;
2721 return externalEntityContentProcessor(parser, start, end, endPtr);
2722}
2723
2724static enum XML_Error PTRCALL
2725externalEntityContentProcessor(XML_Parser parser, const char *start,

Callers 1

Calls 2

processXmlDeclFunction · 0.85

Tested by

no test coverage detected