commit 39cb72740326645358bbf238f4940fbb77adc6ff Author: Olli Pottonen Date: Sat Jul 11 09:02:48 2015 +1000 Fix order of distinct documents. In xmlXPathCmpNodesExt, fix case where two nodes are from distinct documents. diff --git a/xpath.c b/xpath.c index e9f5bf9..441c14d 100644 --- a/xpath.c +++ b/xpath.c @@ -152,7 +152,7 @@ xmlXPathCmpNodesExt(xmlNodePtr node1, xmlNodePtr node2) { int depth1, depth2; int misc = 0, precedence1 = 0, precedence2 = 0; xmlNodePtr miscNode1 = NULL, miscNode2 = NULL; - xmlNodePtr cur, root; + xmlNodePtr cur, root1, root2; long l1, l2; if ((node1 == NULL) || (node2 == NULL)) @@ -365,17 +365,18 @@ turtle_comparison: if (cur == node1) return(1); depth2++; + root1 = cur; } - root = cur; for (depth1 = 0, cur = node1; cur != NULL; cur = cur->parent) { if (cur == node2) return(-1); depth1++; + root2 = cur; } /* * Distinct document (or distinct entities :-( ) case. */ - if (root != cur) { + if (root1 != root2) { return(-2); } /*