Index: third_party/libxslt/libexslt/sets.c |
diff --git a/third_party/libxslt/libexslt/sets.c b/third_party/libxslt/libexslt/sets.c |
deleted file mode 100644 |
index a5a79130261f561fb6c894d72495a9ebf2c982cc..0000000000000000000000000000000000000000 |
--- a/third_party/libxslt/libexslt/sets.c |
+++ /dev/null |
@@ -1,334 +0,0 @@ |
-#define IN_LIBEXSLT |
-#include "libexslt/libexslt.h" |
- |
-#if defined(WIN32) && !defined (__CYGWIN__) && (!__MINGW32__) |
-#include <win32config.h> |
-#else |
-#include "config.h" |
-#endif |
- |
-#include <libxml/tree.h> |
-#include <libxml/xpath.h> |
-#include <libxml/xpathInternals.h> |
- |
-#include <libxslt/xsltutils.h> |
-#include <libxslt/xsltInternals.h> |
-#include <libxslt/extensions.h> |
- |
-#include "exslt.h" |
- |
-/** |
- * exsltSetsDifferenceFunction: |
- * @ctxt: an XPath parser context |
- * @nargs: the number of arguments |
- * |
- * Wraps #xmlXPathDifference for use by the XPath processor |
- */ |
-static void |
-exsltSetsDifferenceFunction (xmlXPathParserContextPtr ctxt, int nargs) { |
- xmlNodeSetPtr arg1, arg2, ret; |
- |
- if (nargs != 2) { |
- xmlXPathSetArityError(ctxt); |
- return; |
- } |
- |
- arg2 = xmlXPathPopNodeSet(ctxt); |
- if (xmlXPathCheckError(ctxt)) { |
- xmlXPathSetTypeError(ctxt); |
- return; |
- } |
- |
- arg1 = xmlXPathPopNodeSet(ctxt); |
- if (xmlXPathCheckError(ctxt)) { |
- xmlXPathSetTypeError(ctxt); |
- return; |
- } |
- |
- ret = xmlXPathDifference(arg1, arg2); |
- |
- if (ret != arg1) |
- xmlXPathFreeNodeSet(arg1); |
- xmlXPathFreeNodeSet(arg2); |
- |
- xmlXPathReturnNodeSet(ctxt, ret); |
-} |
- |
-/** |
- * exsltSetsIntersectionFunction: |
- * @ctxt: an XPath parser context |
- * @nargs: the number of arguments |
- * |
- * Wraps #xmlXPathIntersection for use by the XPath processor |
- */ |
-static void |
-exsltSetsIntersectionFunction (xmlXPathParserContextPtr ctxt, int nargs) { |
- xmlNodeSetPtr arg1, arg2, ret; |
- |
- if (nargs != 2) { |
- xmlXPathSetArityError(ctxt); |
- return; |
- } |
- |
- arg2 = xmlXPathPopNodeSet(ctxt); |
- if (xmlXPathCheckError(ctxt)) { |
- xmlXPathSetTypeError(ctxt); |
- return; |
- } |
- |
- arg1 = xmlXPathPopNodeSet(ctxt); |
- if (xmlXPathCheckError(ctxt)) { |
- xmlXPathSetTypeError(ctxt); |
- return; |
- } |
- |
- ret = xmlXPathIntersection(arg1, arg2); |
- |
- xmlXPathFreeNodeSet(arg1); |
- xmlXPathFreeNodeSet(arg2); |
- |
- xmlXPathReturnNodeSet(ctxt, ret); |
-} |
- |
-/** |
- * exsltSetsDistinctFunction: |
- * @ctxt: an XPath parser context |
- * @nargs: the number of arguments |
- * |
- * Wraps #xmlXPathDistinct for use by the XPath processor |
- */ |
-static void |
-exsltSetsDistinctFunction (xmlXPathParserContextPtr ctxt, int nargs) { |
- xmlXPathObjectPtr obj; |
- xmlNodeSetPtr ns, ret; |
- int boolval = 0; |
- void *user = NULL; |
- |
- if (nargs != 1) { |
- xmlXPathSetArityError(ctxt); |
- return; |
- } |
- |
- if (ctxt->value != NULL) { |
- boolval = ctxt->value->boolval; |
- user = ctxt->value->user; |
- ctxt->value->boolval = 0; |
- ctxt->value->user = NULL; |
- } |
- ns = xmlXPathPopNodeSet(ctxt); |
- if (xmlXPathCheckError(ctxt)) |
- return; |
- |
- /* !!! must be sorted !!! */ |
- ret = xmlXPathDistinctSorted(ns); |
- |
- if (ret != ns) |
- xmlXPathFreeNodeSet(ns); |
- |
- obj = xmlXPathWrapNodeSet(ret); |
- obj->user = user; |
- obj->boolval = boolval; |
- valuePush((ctxt), obj); |
-} |
- |
-/** |
- * exsltSetsHasSameNodesFunction: |
- * @ctxt: an XPath parser context |
- * @nargs: the number of arguments |
- * |
- * Wraps #xmlXPathHasSameNodes for use by the XPath processor |
- */ |
-static void |
-exsltSetsHasSameNodesFunction (xmlXPathParserContextPtr ctxt, |
- int nargs) { |
- xmlNodeSetPtr arg1, arg2; |
- int ret; |
- |
- if (nargs != 2) { |
- xmlXPathSetArityError(ctxt); |
- return; |
- } |
- |
- arg2 = xmlXPathPopNodeSet(ctxt); |
- if (xmlXPathCheckError(ctxt)) { |
- xmlXPathSetTypeError(ctxt); |
- return; |
- } |
- |
- arg1 = xmlXPathPopNodeSet(ctxt); |
- if (xmlXPathCheckError(ctxt)) { |
- xmlXPathSetTypeError(ctxt); |
- return; |
- } |
- |
- ret = xmlXPathHasSameNodes(arg1, arg2); |
- |
- xmlXPathFreeNodeSet(arg1); |
- xmlXPathFreeNodeSet(arg2); |
- |
- xmlXPathReturnBoolean(ctxt, ret); |
-} |
- |
-/** |
- * exsltSetsLeadingFunction: |
- * @ctxt: an XPath parser context |
- * @nargs: the number of arguments |
- * |
- * Wraps #xmlXPathLeading for use by the XPath processor |
- */ |
-static void |
-exsltSetsLeadingFunction (xmlXPathParserContextPtr ctxt, int nargs) { |
- xmlNodeSetPtr arg1, arg2, ret; |
- |
- if (nargs != 2) { |
- xmlXPathSetArityError(ctxt); |
- return; |
- } |
- |
- arg2 = xmlXPathPopNodeSet(ctxt); |
- if (xmlXPathCheckError(ctxt)) { |
- xmlXPathSetTypeError(ctxt); |
- return; |
- } |
- |
- arg1 = xmlXPathPopNodeSet(ctxt); |
- if (xmlXPathCheckError(ctxt)) { |
- xmlXPathSetTypeError(ctxt); |
- return; |
- } |
- |
- /* If the second node set is empty, then the first node set is |
- * returned. |
- */ |
- if (xmlXPathNodeSetIsEmpty(arg2)) { |
- xmlXPathReturnNodeSet(ctxt, arg1); |
- |
- xmlXPathFreeNodeSet(arg2); |
- |
- return; |
- } |
- /* !!! must be sorted */ |
- ret = xmlXPathNodeLeadingSorted(arg1, xmlXPathNodeSetItem(arg2, 0)); |
- |
- xmlXPathFreeNodeSet(arg1); |
- xmlXPathFreeNodeSet(arg2); |
- |
- xmlXPathReturnNodeSet(ctxt, ret); |
-} |
- |
-/** |
- * exsltSetsTrailingFunction: |
- * @ctxt: an XPath parser context |
- * @nargs: the number of arguments |
- * |
- * Wraps #xmlXPathTrailing for use by the XPath processor |
- */ |
-static void |
-exsltSetsTrailingFunction (xmlXPathParserContextPtr ctxt, int nargs) { |
- xmlNodeSetPtr arg1, arg2, ret; |
- |
- if (nargs != 2) { |
- xmlXPathSetArityError(ctxt); |
- return; |
- } |
- |
- arg2 = xmlXPathPopNodeSet(ctxt); |
- if (xmlXPathCheckError(ctxt)) { |
- xmlXPathSetTypeError(ctxt); |
- return; |
- } |
- |
- arg1 = xmlXPathPopNodeSet(ctxt); |
- if (xmlXPathCheckError(ctxt)) { |
- xmlXPathSetTypeError(ctxt); |
- return; |
- } |
- |
- /* If the second node set is empty, then the first node set is |
- * returned. |
- */ |
- if (xmlXPathNodeSetIsEmpty(arg2)) { |
- xmlXPathReturnNodeSet(ctxt, arg1); |
- |
- xmlXPathFreeNodeSet(arg2); |
- |
- return; |
- } |
- /* !!! mist be sorted */ |
- ret = xmlXPathNodeTrailingSorted(arg1, xmlXPathNodeSetItem(arg2, 0)); |
- |
- xmlXPathFreeNodeSet(arg1); |
- xmlXPathFreeNodeSet(arg2); |
- |
- xmlXPathReturnNodeSet(ctxt, ret); |
-} |
- |
-/** |
- * exsltSetsRegister: |
- * |
- * Registers the EXSLT - Sets module |
- */ |
- |
-void |
-exsltSetsRegister (void) { |
- xsltRegisterExtModuleFunction ((const xmlChar *) "difference", |
- EXSLT_SETS_NAMESPACE, |
- exsltSetsDifferenceFunction); |
- xsltRegisterExtModuleFunction ((const xmlChar *) "intersection", |
- EXSLT_SETS_NAMESPACE, |
- exsltSetsIntersectionFunction); |
- xsltRegisterExtModuleFunction ((const xmlChar *) "distinct", |
- EXSLT_SETS_NAMESPACE, |
- exsltSetsDistinctFunction); |
- xsltRegisterExtModuleFunction ((const xmlChar *) "has-same-node", |
- EXSLT_SETS_NAMESPACE, |
- exsltSetsHasSameNodesFunction); |
- xsltRegisterExtModuleFunction ((const xmlChar *) "leading", |
- EXSLT_SETS_NAMESPACE, |
- exsltSetsLeadingFunction); |
- xsltRegisterExtModuleFunction ((const xmlChar *) "trailing", |
- EXSLT_SETS_NAMESPACE, |
- exsltSetsTrailingFunction); |
-} |
- |
-/** |
- * exsltSetsXpathCtxtRegister: |
- * |
- * Registers the EXSLT - Sets module for use outside XSLT |
- */ |
-int |
-exsltSetsXpathCtxtRegister (xmlXPathContextPtr ctxt, const xmlChar *prefix) |
-{ |
- if (ctxt |
- && prefix |
- && !xmlXPathRegisterNs(ctxt, |
- prefix, |
- (const xmlChar *) EXSLT_SETS_NAMESPACE) |
- && !xmlXPathRegisterFuncNS(ctxt, |
- (const xmlChar *) "difference", |
- (const xmlChar *) EXSLT_SETS_NAMESPACE, |
- exsltSetsDifferenceFunction) |
- && !xmlXPathRegisterFuncNS(ctxt, |
- (const xmlChar *) "intersection", |
- (const xmlChar *) EXSLT_SETS_NAMESPACE, |
- exsltSetsIntersectionFunction) |
- && !xmlXPathRegisterFuncNS(ctxt, |
- (const xmlChar *) "distinct", |
- (const xmlChar *) EXSLT_SETS_NAMESPACE, |
- exsltSetsDistinctFunction) |
- && !xmlXPathRegisterFuncNS(ctxt, |
- (const xmlChar *) "has-same-node", |
- (const xmlChar *) EXSLT_SETS_NAMESPACE, |
- exsltSetsHasSameNodesFunction) |
- && !xmlXPathRegisterFuncNS(ctxt, |
- (const xmlChar *) "leading", |
- (const xmlChar *) EXSLT_SETS_NAMESPACE, |
- exsltSetsLeadingFunction) |
- && !xmlXPathRegisterFuncNS(ctxt, |
- (const xmlChar *) "trailing", |
- (const xmlChar *) EXSLT_SETS_NAMESPACE, |
- exsltSetsTrailingFunction)) { |
- return 0; |
- } |
- return -1; |
-} |