MCPcopy Create free account
hub / github.com/Kitware/VTK / xmlXPtrInsideRange

Function xmlXPtrInsideRange

ThirdParty/libxml2/vtklibxml2/xpointer.c:2079–2153  ·  view source on GitHub ↗

* xmlXPtrInsideRange: * @ctxt: the XPointer Parser context * @loc: the location for which the inside range must be computed * * A inside range is a range described in the range-inside() description * * Returns a new location or NULL in case of error */

Source from the content-addressed store, hash-verified

2077 * Returns a new location or NULL in case of error
2078 */
2079static xmlXPathObjectPtr
2080xmlXPtrInsideRange(xmlXPathParserContextPtr ctxt, xmlXPathObjectPtr loc) {
2081 if (loc == NULL)
2082 return(NULL);
2083 if ((ctxt == NULL) || (ctxt->context == NULL) ||
2084 (ctxt->context->doc == NULL))
2085 return(NULL);
2086 switch (loc->type) {
2087 case XPATH_POINT: {
2088 xmlNodePtr node = (xmlNodePtr) loc->user;
2089 switch (node->type) {
2090 case XML_PI_NODE:
2091 case XML_COMMENT_NODE:
2092 case XML_TEXT_NODE:
2093 case XML_CDATA_SECTION_NODE: {
2094 if (node->content == NULL) {
2095 return(xmlXPtrNewRange(node, 0, node, 0));
2096 } else {
2097 return(xmlXPtrNewRange(node, 0, node,
2098 xmlStrlen(node->content)));
2099 }
2100 }
2101 case XML_ATTRIBUTE_NODE:
2102 case XML_ELEMENT_NODE:
2103 case XML_ENTITY_REF_NODE:
2104 case XML_DOCUMENT_NODE:
2105 case XML_NOTATION_NODE:
2106 case XML_HTML_DOCUMENT_NODE: {
2107 return(xmlXPtrNewRange(node, 0, node,
2108 xmlXPtrGetArity(node)));
2109 }
2110 default:
2111 break;
2112 }
2113 return(NULL);
2114 }
2115 case XPATH_RANGE: {
2116 xmlNodePtr node = (xmlNodePtr) loc->user;
2117 if (loc->user2 != NULL) {
2118 return(xmlXPtrNewRange(node, loc->index,
2119 loc->user2, loc->index2));
2120 } else {
2121 switch (node->type) {
2122 case XML_PI_NODE:
2123 case XML_COMMENT_NODE:
2124 case XML_TEXT_NODE:
2125 case XML_CDATA_SECTION_NODE: {
2126 if (node->content == NULL) {
2127 return(xmlXPtrNewRange(node, 0, node, 0));
2128 } else {
2129 return(xmlXPtrNewRange(node, 0, node,
2130 xmlStrlen(node->content)));
2131 }
2132 }
2133 case XML_ATTRIBUTE_NODE:
2134 case XML_ELEMENT_NODE:
2135 case XML_ENTITY_REF_NODE:
2136 case XML_DOCUMENT_NODE:

Callers 1

Calls 3

xmlStrlenFunction · 0.85
xmlXPtrGetArityFunction · 0.85
xmlXPtrNewRangeFunction · 0.70

Tested by

no test coverage detected