1
0
mirror of https://git.FreeBSD.org/ports.git synced 2024-11-28 01:06:17 +00:00

textproc/xqilla: unbreak by adding patches for the Xerces-C 3.2.0 case

- support for the old style (Xerces-C 3.1) castToNode and
  the new style (Xerces-C 3.2) fContainingNode replacement.
  This will allow xqilla to use the new xerces in the ports tree.
  Upstream ticket: https://sourceforge.net/p/xqilla/bugs/48/

PR:		222400
Submitted by:	Roger Leigh <rleigh@codelibre.net>
Reviewed by:	Walter Schwarzenfeld <w.schwarzenfeld@utanet.at>
This commit is contained in:
Kurt Jaeger 2018-02-12 20:00:26 +00:00
parent 0c875fcc47
commit 72af6916c2
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=461645
3 changed files with 56 additions and 2 deletions

View File

@ -3,6 +3,7 @@
PORTNAME= xqilla
PORTVERSION= 2.3.3
PORTREVISION= 1
PORTEPOCH= 1
CATEGORIES= textproc
MASTER_SITES= SF/${PORTNAME}
@ -14,8 +15,6 @@ COMMENT= XQuery and XPath2 library
LICENSE= APACHE20
LICENSE_FILE= ${WRKSRC}/LICENSE
BROKEN= fails to build
LIB_DEPENDS= libxerces-c.so:textproc/xerces-c3 \
libtidy.so:www/tidy-lib

View File

@ -0,0 +1,14 @@
--- src/dom-api/impl/XPathDocumentImpl.cpp.orig 2017-09-03 19:24:35 UTC
+++ src/dom-api/impl/XPathDocumentImpl.cpp
@@ -62,7 +62,11 @@ DOMNode *XPathDocumentImpl::insertBefore
if (thisNodeImpl->isReadOnly())
throw DOMException(DOMException::NO_MODIFICATION_ALLOWED_ERR, 0, getMemoryManager());
+#if _XERCES_VERSION >= 30200
+ DOMNode* thisNode = fParent.fContainingNode;
+#else
DOMNode* thisNode = castToNode(&fParent);
+#endif
if (newChild->getOwnerDocument() != thisNode)
throw DOMException(DOMException::WRONG_DOCUMENT_ERR, 0, getMemoryManager());

View File

@ -0,0 +1,41 @@
--- src/dom-api/impl/XPathNamespaceImpl.cpp.orig 2017-09-03 20:26:37 UTC
+++ src/dom-api/impl/XPathNamespaceImpl.cpp
@@ -33,7 +33,11 @@ XERCES_CPP_NAMESPACE_USE;
XPathNamespaceImpl::XPathNamespaceImpl(const XMLCh* const nsPrefix,
const XMLCh* const nsUri, DOMElement *owner, DOMDocument *docOwner)
+#if _XERCES_VERSION >= 30200
+ : fNode(this, docOwner)
+#else
: fNode(docOwner)
+#endif
{
DOMNodeImpl *argImpl = castToNodeImpl(this);
@@ -54,7 +58,13 @@ XPathNamespaceImpl::XPathNamespaceImpl(c
}
XPathNamespaceImpl::XPathNamespaceImpl(const XPathNamespaceImpl &other)
- : fNode(other.fNode), uri(other.uri), prefix(other.prefix)
+#if _XERCES_VERSION >= 30200
+ : fNode(this, other.fNode),
+#else
+ : fNode(other.fNode),
+
+#endif
+ uri(other.uri), prefix(other.prefix)
{
}
@@ -196,7 +206,11 @@ short XPathNamespaceImpl::com
//if it is a custom node and bigger than us we must ask it for the order
if(otherType > DOMXPathNamespace::XPATH_NAMESPACE_NODE) {
+#if _XERCES_VERSION >= 30200
+ DOMNodeImpl tmp(const_cast<XPathNamespaceImpl *>(this), 0);
+#else
DOMNodeImpl tmp(0);
+#endif
#if _XERCES_VERSION >= 30000
return tmp.reverseTreeOrderBitPattern(other->compareDocumentPosition(this));
#else