Author: akhaldi Date: Fri Apr 18 22:10:41 2014 New Revision: 62783
URL: http://svn.reactos.org/svn/reactos?rev=62783&view=rev Log: * Addendum to r62773 (I don't know how did this file escape earlier).
Modified: trunk/reactos/lib/3rdparty/libxml2/xpath.c
Modified: trunk/reactos/lib/3rdparty/libxml2/xpath.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/lib/3rdparty/libxml2/xpath.... ============================================================================== --- trunk/reactos/lib/3rdparty/libxml2/xpath.c [iso-8859-1] (original) +++ trunk/reactos/lib/3rdparty/libxml2/xpath.c [iso-8859-1] Fri Apr 18 22:10:41 2014 @@ -12399,7 +12399,7 @@ break; } } else if (cur->type == type) { - if (type == XML_NAMESPACE_DECL) + if (cur->type == XML_NAMESPACE_DECL) XP_TEST_HIT_NS else XP_TEST_HIT @@ -15079,6 +15079,49 @@ }
/** + * xmlXPathSetContextNode: + * @node: the node to to use as the context node + * @ctx: the XPath context + * + * Sets 'node' as the context node. The node must be in the same + * document as that associated with the context. + * + * Returns -1 in case of error or 0 if successful + */ +int +xmlXPathSetContextNode(xmlNodePtr node, xmlXPathContextPtr ctx) { + if ((node == NULL) || (ctx == NULL)) + return(-1); + + if (node->doc == ctx->doc) { + ctx->node = node; + return(0); + } + return(-1); +} + +/** + * xmlXPathNodeEval: + * @node: the node to to use as the context node + * @str: the XPath expression + * @ctx: the XPath context + * + * Evaluate the XPath Location Path in the given context. The node 'node' + * is set as the context node. The context node is not restored. + * + * Returns the xmlXPathObjectPtr resulting from the evaluation or NULL. + * the caller has to free the object. + */ +xmlXPathObjectPtr +xmlXPathNodeEval(xmlNodePtr node, const xmlChar *str, xmlXPathContextPtr ctx) { + if (str == NULL) + return(NULL); + if (xmlXPathSetContextNode(node, ctx) < 0) + return(NULL); + return(xmlXPathEval(str, ctx)); +} + +/** * xmlXPathEvalExpression: * @str: the XPath expression * @ctxt: the XPath context