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