Changes 3.1.1:

This version is interface-incompatible with Xerces-C++ 2.8.0 and contains
a large number of improvements, bug fixes, and clean-ups, including:
* Autotools-based build system for the UNIX/Linux/Mac OS X platforms
* Project files for VC++ 9
* Support for the ICU transcoder in VC++ 7.1, 8, and 9 project files
* libcurl-based net accessor
* Support for XInclude in DOM
* Support for both XPath 1 and XPath 2 models in the DOM XPath interface
* Support for the XML Schema subset of XPath 1 in DOM
* Conformance to the final DOM Level 3 interface specification
* Ability to provide custom DOM memory manager as well as tune the global
  DOM heap parameters
* All public and widely used interfaces as well as a large portion of the
  implementation were converted to be 64-bit safe
* Various XML Schema fixes including the fix for the large maxOccurs and
  minOccurs bug as well as for the changed ##other interpretation
* Reviewed and cleaned up diagnostics messages
* Optimizations for SAX/SAX2 and DOM parsing as well as XML Schema validation
This commit is contained in:
adam 2011-02-23 08:31:13 +00:00
parent f54a0ea6c3
commit 2a7bf9dd9e
24 changed files with 79 additions and 1500 deletions

View file

@ -1,74 +1,33 @@
# $NetBSD: Makefile,v 1.38 2009/08/28 05:24:34 hasso Exp $
#
# $NetBSD: Makefile,v 1.39 2011/02/23 08:31:13 adam Exp $
DISTNAME= xerces-c-src_2_8_0
PKGREVISION= 1
PKGNAME= ${DISTNAME:S/-src_/-/:S/_/./g}
DISTNAME= xerces-c-3.1.1
CATEGORIES= textproc
MASTER_SITES= ${MASTER_SITE_APACHE:=xerces/c/2/sources/}
MASTER_SITES= ${MASTER_SITE_APACHE:=xerces/c/3/sources/}
MAINTAINER= pkgsrc-users@NetBSD.org
HOMEPAGE= http://xerces.apache.org/xerces-c/
HOMEPAGE= http://xerces.apache.org/
COMMENT= Validating C++ XML parser with DOM and SAX support
LICENSE= apache-2.0
PKG_INSTALLATION_TYPES= overwrite pkgviews
PKG_DESTDIR_SUPPORT= user-destdir
WRKSRC= ${WRKDIR}/${DISTNAME}/src/xercesc
USE_TOOLS+= gmake
USE_LANGUAGES= c c++
MAKE_JOBS_SAFE= no
USE_LIBTOOL= yes
USE_TOOLS+= gmake
PKGCONFIG_OVERRIDE= ${WRKSRC}/xerces-c.pc.in
GNU_CONFIGURE= yes
.include "../../mk/bsd.prefs.mk"
.if ${OPSYS} == "SunOS"
XERCES_PLATFORM= solaris
.elif ${OPSYS} == "Darwin"
XERCES_PLATFORM= macosx
.else
XERCES_PLATFORM= ${LOWER_OPSYS}
.endif
XERCES_ENV+= XERCESCROOT="${WRKDIR}/${DISTNAME}"
HAS_CONFIGURE= YES
CONFIGURE_SCRIPT= ./runConfigure
CONFIGURE_ARGS+= -P ${PREFIX} # installation prefix
CONFIGURE_ARGS+= -p ${XERCES_PLATFORM} # platform
CONFIGURE_ARGS+= -n socket # net accessor
CONFIGURE_ARGS+= -m inmem # message loader
CONFIGURE_ARGS+= -r none # threading
CONFIGURE_ARGS+= ${CONFIGURE_ARGS.${ICONV_TYPE}-iconv}
PLIST_VARS+= gnuiconv macunicode
PLIST_VARS+= gnu-iconv native-iconv
CONFIGURE_ARGS.gnu-iconv+= -t IconvGNU # transcoder
CONFIGURE_ARGS.native-iconv+= -t native # transcoder
CONFIGURE_ENV+= ${XERCES_ENV}
MAKE_ENV+= ${XERCES_ENV}
# On Darwin, we have to use native (not libiconv) converter. see MacOSPlatformUtils.cpp.
.if ${OPSYS} == "Darwin"
ICONV_TYPE= native
CFLAGS.Darwin+= -DXML_USE_MACOS_UNICODECONVERTER -I${WRKDIR}/${DISTNAME}/src
PLIST.macunicode= yes
.else
.include "../../converters/libiconv/buildlink3.mk"
PLIST.gnuiconv= yes
.endif
post-extract:
${MKDIR} ${WRKSRC}/util/Platforms/DragonFly
${CP} ${WRKSRC}/util/Platforms/NetBSD/NetBSDPlatformUtils.cpp ${WRKSRC}/util/Platforms/DragonFly/DragonFlyPlatformUtils.cpp
pre-configure:
${CP} ${PKGSRCDIR}/mk/gnu-config/config.guess ${WRKSRC}
${CP} ${PKGSRCDIR}/mk/gnu-config/config.sub ${WRKSRC}
post-install:
${INSTALL_DATA} ${WRKSRC}/dom/impl/*.hpp \
${DESTDIR}${PREFIX}/include/xercesc/dom/impl
.include "../../converters/libiconv/buildlink3.mk"
.include "../../mk/pthread.buildlink3.mk"
.include "../../mk/bsd.pkg.mk"
# Must be after bsd.pkg.mk
PLIST.${ICONV_TYPE}-iconv= yes

View file

@ -1,7 +1,22 @@
@comment $NetBSD: PLIST,v 1.8 2009/06/14 18:17:34 joerg Exp $
@comment $NetBSD: PLIST,v 1.9 2011/02/23 08:31:13 adam Exp $
bin/CreateDOMDocument
bin/DOMCount
bin/DOMPrint
bin/EnumVal
bin/MemParse
bin/PParse
bin/PSVIWriter
bin/Redirect
bin/SAX2Count
bin/SAX2Print
bin/SAXCount
bin/SAXPrint
bin/SCMPrint
bin/SEnumVal
bin/StdInParse
bin/XInclude
include/xercesc/dom/DOM.hpp
include/xercesc/dom/DOMAttr.hpp
include/xercesc/dom/DOMBuilder.hpp
include/xercesc/dom/DOMCDATASection.hpp
include/xercesc/dom/DOMCharacterData.hpp
include/xercesc/dom/DOMComment.hpp
@ -14,16 +29,24 @@ include/xercesc/dom/DOMDocumentType.hpp
include/xercesc/dom/DOMElement.hpp
include/xercesc/dom/DOMEntity.hpp
include/xercesc/dom/DOMEntityReference.hpp
include/xercesc/dom/DOMEntityResolver.hpp
include/xercesc/dom/DOMError.hpp
include/xercesc/dom/DOMErrorHandler.hpp
include/xercesc/dom/DOMException.hpp
include/xercesc/dom/DOMImplementation.hpp
include/xercesc/dom/DOMImplementationLS.hpp
include/xercesc/dom/DOMImplementationList.hpp
include/xercesc/dom/DOMImplementationRegistry.hpp
include/xercesc/dom/DOMImplementationSource.hpp
include/xercesc/dom/DOMInputSource.hpp
include/xercesc/dom/DOMLSException.hpp
include/xercesc/dom/DOMLSInput.hpp
include/xercesc/dom/DOMLSOutput.hpp
include/xercesc/dom/DOMLSParser.hpp
include/xercesc/dom/DOMLSParserFilter.hpp
include/xercesc/dom/DOMLSResourceResolver.hpp
include/xercesc/dom/DOMLSSerializer.hpp
include/xercesc/dom/DOMLSSerializerFilter.hpp
include/xercesc/dom/DOMLocator.hpp
include/xercesc/dom/DOMMemoryManager.hpp
include/xercesc/dom/DOMNamedNodeMap.hpp
include/xercesc/dom/DOMNode.hpp
include/xercesc/dom/DOMNodeFilter.hpp
@ -34,12 +57,11 @@ include/xercesc/dom/DOMPSVITypeInfo.hpp
include/xercesc/dom/DOMProcessingInstruction.hpp
include/xercesc/dom/DOMRange.hpp
include/xercesc/dom/DOMRangeException.hpp
include/xercesc/dom/DOMStringList.hpp
include/xercesc/dom/DOMText.hpp
include/xercesc/dom/DOMTreeWalker.hpp
include/xercesc/dom/DOMTypeInfo.hpp
include/xercesc/dom/DOMUserDataHandler.hpp
include/xercesc/dom/DOMWriter.hpp
include/xercesc/dom/DOMWriterFilter.hpp
include/xercesc/dom/DOMXPathEvaluator.hpp
include/xercesc/dom/DOMXPathException.hpp
include/xercesc/dom/DOMXPathExpression.hpp
@ -47,34 +69,6 @@ include/xercesc/dom/DOMXPathNSResolver.hpp
include/xercesc/dom/DOMXPathNamespace.hpp
include/xercesc/dom/DOMXPathResult.hpp
include/xercesc/dom/StDOMNode.hpp
include/xercesc/dom/deprecated/DOM.hpp
include/xercesc/dom/deprecated/DOMParser.hpp
include/xercesc/dom/deprecated/DOMString.hpp
include/xercesc/dom/deprecated/DOM_Attr.hpp
include/xercesc/dom/deprecated/DOM_CDATASection.hpp
include/xercesc/dom/deprecated/DOM_CharacterData.hpp
include/xercesc/dom/deprecated/DOM_Comment.hpp
include/xercesc/dom/deprecated/DOM_DOMException.hpp
include/xercesc/dom/deprecated/DOM_DOMImplementation.hpp
include/xercesc/dom/deprecated/DOM_Document.hpp
include/xercesc/dom/deprecated/DOM_DocumentFragment.hpp
include/xercesc/dom/deprecated/DOM_DocumentType.hpp
include/xercesc/dom/deprecated/DOM_Element.hpp
include/xercesc/dom/deprecated/DOM_Entity.hpp
include/xercesc/dom/deprecated/DOM_EntityReference.hpp
include/xercesc/dom/deprecated/DOM_NamedNodeMap.hpp
include/xercesc/dom/deprecated/DOM_Node.hpp
include/xercesc/dom/deprecated/DOM_NodeFilter.hpp
include/xercesc/dom/deprecated/DOM_NodeIterator.hpp
include/xercesc/dom/deprecated/DOM_NodeList.hpp
include/xercesc/dom/deprecated/DOM_Notation.hpp
include/xercesc/dom/deprecated/DOM_ProcessingInstruction.hpp
include/xercesc/dom/deprecated/DOM_Range.hpp
include/xercesc/dom/deprecated/DOM_RangeException.hpp
include/xercesc/dom/deprecated/DOM_Text.hpp
include/xercesc/dom/deprecated/DOM_TreeWalker.hpp
include/xercesc/dom/deprecated/DOM_XMLDecl.hpp
include/xercesc/dom/deprecated/DomMemDebug.hpp
include/xercesc/dom/impl/DOMAttrImpl.hpp
include/xercesc/dom/impl/DOMAttrMapImpl.hpp
include/xercesc/dom/impl/DOMAttrNSImpl.hpp
@ -96,6 +90,10 @@ include/xercesc/dom/impl/DOMEntityImpl.hpp
include/xercesc/dom/impl/DOMEntityReferenceImpl.hpp
include/xercesc/dom/impl/DOMErrorImpl.hpp
include/xercesc/dom/impl/DOMImplementationImpl.hpp
include/xercesc/dom/impl/DOMImplementationListImpl.hpp
include/xercesc/dom/impl/DOMLSInputImpl.hpp
include/xercesc/dom/impl/DOMLSOutputImpl.hpp
include/xercesc/dom/impl/DOMLSSerializerImpl.hpp
include/xercesc/dom/impl/DOMLocatorImpl.hpp
include/xercesc/dom/impl/DOMNamedNodeMapImpl.hpp
include/xercesc/dom/impl/DOMNodeIDMap.hpp
@ -108,11 +106,14 @@ include/xercesc/dom/impl/DOMNotationImpl.hpp
include/xercesc/dom/impl/DOMParentNode.hpp
include/xercesc/dom/impl/DOMProcessingInstructionImpl.hpp
include/xercesc/dom/impl/DOMRangeImpl.hpp
include/xercesc/dom/impl/DOMStringListImpl.hpp
include/xercesc/dom/impl/DOMStringPool.hpp
include/xercesc/dom/impl/DOMTextImpl.hpp
include/xercesc/dom/impl/DOMTreeWalkerImpl.hpp
include/xercesc/dom/impl/DOMTypeInfoImpl.hpp
include/xercesc/dom/impl/DOMWriterImpl.hpp
include/xercesc/dom/impl/DOMXPathExpressionImpl.hpp
include/xercesc/dom/impl/DOMXPathNSResolverImpl.hpp
include/xercesc/dom/impl/DOMXPathResultImpl.hpp
include/xercesc/dom/impl/XSDElementNSImpl.hpp
include/xercesc/framework/BinOutputStream.hpp
include/xercesc/framework/LocalFileFormatTarget.hpp
@ -124,7 +125,7 @@ include/xercesc/framework/StdInInputSource.hpp
include/xercesc/framework/StdOutFormatTarget.hpp
include/xercesc/framework/URLInputSource.hpp
include/xercesc/framework/ValidationContext.hpp
include/xercesc/framework/Wrapper4DOMInputSource.hpp
include/xercesc/framework/Wrapper4DOMLSInput.hpp
include/xercesc/framework/Wrapper4InputSource.hpp
include/xercesc/framework/XMLAttDef.hpp
include/xercesc/framework/XMLAttDefList.hpp
@ -142,6 +143,7 @@ include/xercesc/framework/XMLErrorReporter.hpp
include/xercesc/framework/XMLFormatter.hpp
include/xercesc/framework/XMLGrammarDescription.hpp
include/xercesc/framework/XMLGrammarPool.hpp
include/xercesc/framework/XMLGrammarPoolImpl.hpp
include/xercesc/framework/XMLNotationDecl.hpp
include/xercesc/framework/XMLPScanToken.hpp
include/xercesc/framework/XMLRecognizer.hpp
@ -185,7 +187,6 @@ include/xercesc/internal/ElemStack.hpp
include/xercesc/internal/EndOfEntityException.hpp
include/xercesc/internal/IANAEncodings.hpp
include/xercesc/internal/IGXMLScanner.hpp
include/xercesc/internal/MemoryManagerArrayImpl.hpp
include/xercesc/internal/MemoryManagerImpl.hpp
include/xercesc/internal/ReaderMgr.hpp
include/xercesc/internal/SGXMLScanner.hpp
@ -193,7 +194,6 @@ include/xercesc/internal/ValidationContextImpl.hpp
include/xercesc/internal/VecAttrListImpl.hpp
include/xercesc/internal/VecAttributesImpl.hpp
include/xercesc/internal/WFXMLScanner.hpp
include/xercesc/internal/XMLGrammarPoolImpl.hpp
include/xercesc/internal/XMLInternalErrorHandler.hpp
include/xercesc/internal/XMLReader.hpp
include/xercesc/internal/XMLScanner.hpp
@ -206,7 +206,7 @@ include/xercesc/internal/XSerializationException.hpp
include/xercesc/internal/XSerializeEngine.hpp
include/xercesc/internal/XTemplateSerializer.hpp
include/xercesc/parsers/AbstractDOMParser.hpp
include/xercesc/parsers/DOMBuilderImpl.hpp
include/xercesc/parsers/DOMLSParserImpl.hpp
include/xercesc/parsers/SAX2XMLFilterImpl.hpp
include/xercesc/parsers/SAX2XMLReaderImpl.hpp
include/xercesc/parsers/SAXParser.hpp
@ -231,7 +231,6 @@ include/xercesc/sax2/SAX2XMLFilter.hpp
include/xercesc/sax2/SAX2XMLReader.hpp
include/xercesc/sax2/XMLReaderFactory.hpp
include/xercesc/util/ArrayIndexOutOfBoundsException.hpp
include/xercesc/util/AutoSense.hpp
include/xercesc/util/Base64.hpp
include/xercesc/util/BaseRefVectorOf.c
include/xercesc/util/BaseRefVectorOf.hpp
@ -240,35 +239,17 @@ include/xercesc/util/BinInputStream.hpp
include/xercesc/util/BinMemInputStream.hpp
include/xercesc/util/BitOps.hpp
include/xercesc/util/BitSet.hpp
include/xercesc/util/Compilers/BorlandCDefs.hpp
include/xercesc/util/Compilers/CSetDefs.hpp
include/xercesc/util/Compilers/CodeWarriorDefs.hpp
include/xercesc/util/Compilers/DECCXXDefs.hpp
include/xercesc/util/Compilers/GCCDefs.hpp
include/xercesc/util/Compilers/HPCCDefs.hpp
include/xercesc/util/Compilers/IBMVAOS2Defs.hpp
include/xercesc/util/Compilers/IBMVAW32Defs.hpp
include/xercesc/util/Compilers/MIPSproDefs.hpp
include/xercesc/util/Compilers/MVSCPPDefs.hpp
include/xercesc/util/Compilers/OS400SetDefs.hpp
include/xercesc/util/Compilers/PTXCCDefs.hpp
include/xercesc/util/Compilers/QCCDefs.hpp
include/xercesc/util/Compilers/SCOCCDefs.hpp
include/xercesc/util/Compilers/SunCCDefs.hpp
include/xercesc/util/Compilers/SunKaiDefs.hpp
include/xercesc/util/Compilers/TandemCCDefs.hpp
include/xercesc/util/Compilers/VCPPDefs.hpp
include/xercesc/util/CountedPointer.c
include/xercesc/util/CountedPointer.hpp
include/xercesc/util/DefaultPanicHandler.hpp
include/xercesc/util/EmptyStackException.hpp
include/xercesc/util/EncodingValidator.hpp
include/xercesc/util/FileManagers/PosixFileMgr.hpp
include/xercesc/util/FlagJanitor.c
include/xercesc/util/FlagJanitor.hpp
include/xercesc/util/HashBase.hpp
include/xercesc/util/HashCMStateSet.hpp
include/xercesc/util/HashPtr.hpp
include/xercesc/util/HashXMLCh.hpp
include/xercesc/util/Hash2KeysSetOf.c
include/xercesc/util/Hash2KeysSetOf.hpp
include/xercesc/util/Hashers.hpp
include/xercesc/util/HexBin.hpp
include/xercesc/util/IOException.hpp
include/xercesc/util/IllegalArgumentException.hpp
@ -283,19 +264,21 @@ include/xercesc/util/KeyValuePair.hpp
include/xercesc/util/LogicalPath.c
include/xercesc/util/MsgLoaders/InMemory/InMemMsgLoader.hpp
include/xercesc/util/MsgLoaders/InMemory/XercesMessages_en_US.hpp
include/xercesc/util/MutexManagers/PosixMutexMgr.hpp
include/xercesc/util/Mutexes.hpp
include/xercesc/util/NameIdPool.c
include/xercesc/util/NameIdPool.hpp
include/xercesc/util/NetAccessors/BinHTTPInputStreamCommon.hpp
include/xercesc/util/NetAccessors/Socket/SocketNetAccessor.hpp
include/xercesc/util/NetAccessors/Socket/UnixHTTPURLInputStream.hpp
include/xercesc/util/NoSuchElementException.hpp
include/xercesc/util/NullPointerException.hpp
include/xercesc/util/NumberFormatException.hpp
include/xercesc/util/OutOfMemoryException.hpp
include/xercesc/util/PSVIUni.hpp
include/xercesc/util/PanicHandler.hpp
include/xercesc/util/ParseException.hpp
include/xercesc/util/PlatformUtils.hpp
include/xercesc/util/Platforms/${OPSYS}/${OPSYS}Defs.hpp
include/xercesc/util/QName.hpp
include/xercesc/util/RefArrayOf.c
include/xercesc/util/RefArrayOf.hpp
@ -319,8 +302,8 @@ include/xercesc/util/SynchronizedStringPool.hpp
include/xercesc/util/TransENameMap.c
include/xercesc/util/TransENameMap.hpp
include/xercesc/util/TransService.hpp
${PLIST.gnu-iconv}include/xercesc/util/Transcoders/IconvGNU/IconvGNUTransService.hpp
${PLIST.native-iconv}include/xercesc/util/Transcoders/Iconv/IconvTransService.hpp
${PLIST.gnuiconv}include/xercesc/util/Transcoders/IconvGNU/IconvGNUTransService.hpp
${PLIST.macunicode}include/xercesc/util/Transcoders/MacOSUnicodeConverter/MacOSUnicodeConverter.hpp
include/xercesc/util/TranscodingException.hpp
include/xercesc/util/UTFDataFormatException.hpp
include/xercesc/util/UnexpectedEOFException.hpp
@ -343,25 +326,22 @@ include/xercesc/util/XMLChTranscoder.hpp
include/xercesc/util/XMLChar.hpp
include/xercesc/util/XMLDOMMsg.hpp
include/xercesc/util/XMLDateTime.hpp
include/xercesc/util/XMLDeleterFor.c
include/xercesc/util/XMLDeleterFor.hpp
include/xercesc/util/XMLDouble.hpp
include/xercesc/util/XMLEBCDICTranscoder.hpp
include/xercesc/util/XMLEntityResolver.hpp
include/xercesc/util/XMLEnumerator.hpp
include/xercesc/util/XMLExceptMsgs.hpp
include/xercesc/util/XMLException.hpp
include/xercesc/util/XMLFileMgr.hpp
include/xercesc/util/XMLFloat.hpp
include/xercesc/util/XMLHolder.c
include/xercesc/util/XMLHolder.hpp
include/xercesc/util/XMLIBM1047Transcoder.hpp
include/xercesc/util/XMLIBM1140Transcoder.hpp
include/xercesc/util/XMLInitializer.hpp
include/xercesc/util/XMLInteger.hpp
include/xercesc/util/XMLMsgLoader.hpp
include/xercesc/util/XMLMutexMgr.hpp
include/xercesc/util/XMLNetAccessor.hpp
include/xercesc/util/XMLNumber.hpp
include/xercesc/util/XMLRegisterCleanup.hpp
include/xercesc/util/XMLResourceIdentifier.hpp
include/xercesc/util/XMLString.hpp
include/xercesc/util/XMLStringTokenizer.hpp
@ -376,15 +356,14 @@ include/xercesc/util/XMLWin1252Transcoder.hpp
include/xercesc/util/XMemory.hpp
include/xercesc/util/XercesDefs.hpp
include/xercesc/util/XercesVersion.hpp
include/xercesc/util/Xerces_autoconf_config.hpp
include/xercesc/util/regx/ASCIIRangeFactory.hpp
include/xercesc/util/regx/BMPattern.hpp
include/xercesc/util/regx/BlockRangeFactory.hpp
include/xercesc/util/regx/CharToken.hpp
include/xercesc/util/regx/ClosureToken.hpp
include/xercesc/util/regx/ConcatToken.hpp
include/xercesc/util/regx/ConditionToken.hpp
include/xercesc/util/regx/Match.hpp
include/xercesc/util/regx/ModifierToken.hpp
include/xercesc/util/regx/Op.hpp
include/xercesc/util/regx/OpFactory.hpp
include/xercesc/util/regx/ParenToken.hpp
@ -419,6 +398,7 @@ include/xercesc/validators/common/CMAny.hpp
include/xercesc/validators/common/CMBinaryOp.hpp
include/xercesc/validators/common/CMLeaf.hpp
include/xercesc/validators/common/CMNode.hpp
include/xercesc/validators/common/CMRepeatingLeaf.hpp
include/xercesc/validators/common/CMStateSet.hpp
include/xercesc/validators/common/CMUnaryOp.hpp
include/xercesc/validators/common/ContentLeafNameTypeVector.hpp
@ -501,9 +481,8 @@ include/xercesc/validators/schema/identity/XPathMatcher.hpp
include/xercesc/validators/schema/identity/XPathMatcherStack.hpp
include/xercesc/validators/schema/identity/XPathSymbols.hpp
include/xercesc/validators/schema/identity/XercesXPath.hpp
lib/libxerces-c.so
lib/libxerces-c.so.28
lib/libxerces-c.so.28.0
lib/libxerces-depdom.so
lib/libxerces-depdom.so.28
lib/libxerces-depdom.so.28.0
include/xercesc/xinclude/XIncludeDOMDocumentProcessor.hpp
include/xercesc/xinclude/XIncludeLocation.hpp
include/xercesc/xinclude/XIncludeUtils.hpp
lib/libxerces-c.la
lib/pkgconfig/xerces-c.pc

View file

@ -1,15 +1,14 @@
# $NetBSD: buildlink3.mk,v 1.11 2009/05/10 11:24:26 hasso Exp $
# $NetBSD: buildlink3.mk,v 1.12 2011/02/23 08:31:13 adam Exp $
BUILDLINK_TREE+= xerces-c
.if !defined(XERCES_C_BUILDLINK3_MK)
XERCES_C_BUILDLINK3_MK:=
BUILDLINK_API_DEPENDS.xerces-c+= xerces-c>=2.8.0
BUILDLINK_ABI_DEPENDS.xerces-c?= xerces-c>=2.8.0
BUILDLINK_PKGSRCDIR.xerces-c?= ../../textproc/xerces-c
BUILDLINK_API_DEPENDS.xerces-c+= xerces-c>=3.1.1
BUILDLINK_PKGSRCDIR.xerces-c?= ../../textproc/xerces-c3
.include "../../converters/libiconv/buildlink3.mk"
.endif # XERCES_C_BUILDLINK3_MK
.endif # XERCES_C_BUILDLINK3_MK
BUILDLINK_TREE+= -xerces-c

View file

@ -1,25 +1,5 @@
$NetBSD: distinfo,v 1.13 2009/08/28 05:24:34 hasso Exp $
$NetBSD: distinfo,v 1.14 2011/02/23 08:31:13 adam Exp $
SHA1 (xerces-c-src_2_8_0.tar.gz) = f0803b1330daec3f44b17dee64c3c99de6b3cd3e
RMD160 (xerces-c-src_2_8_0.tar.gz) = d576df7870b043a338358834a0e1180dca39e838
Size (xerces-c-src_2_8_0.tar.gz) = 7893039 bytes
SHA1 (patch-aa) = fe4865a320c5a8690e41d8e4a6c8465bfc989b96
SHA1 (patch-ab) = 581a7fb3faa93fd390af939d110c90d4b350910b
SHA1 (patch-ac) = 8fe9f17f1a8be5e251885efe1bcf7466cbea7714
SHA1 (patch-ad) = 4ba3a565455cbc5202f309b36365297396221f51
SHA1 (patch-af) = b67265ad5ad7b3a5eb1d6eadf53265dea28a03db
SHA1 (patch-ag) = 778c1f35e20d98336c1aabe968cd673ee80f8c16
SHA1 (patch-ah) = fe86675faa35e458e7729d12c1c343fc1976c9ba
SHA1 (patch-ai) = 1259dc3f5f69a7a218199825cd085a80563c04f6
SHA1 (patch-aj) = f3ebf6265573f93ff1b75eee55fb3698f7cdb841
SHA1 (patch-ak) = d9fba073a165e8b5cfebe546afc35efd6c74f150
SHA1 (patch-al) = ee9aeff252afec1eba6316118e825ef27f187a2d
SHA1 (patch-am) = d9fea604b7b34654ff6cb69d155f2d5e9ccde25b
SHA1 (patch-an) = 168ee08b79bba4cb5e0c8ec8567dbde09e8408f3
SHA1 (patch-ao) = 6d72b85c9883797d80d469554817e5034a77b97b
SHA1 (patch-ap) = ff9169b12d936c9ca093e7e3ee30aa84a1c8ae7f
SHA1 (patch-aq) = 9e25a396655fe11a068ddb4a48c23902214273e6
SHA1 (patch-ar) = 8b8055056afdb0c3d8a556211bf44aec496727a1
SHA1 (patch-as) = 3eaec415b91dcd129eaa7c5c6e0b5b417ad651bc
SHA1 (patch-at) = 31682536fccb69cbf29872793b2eb798e15e3bda
SHA1 (patch-ba) = 5bf2099aa80dfa3c91d5297fd7238a5a049131d9
SHA1 (xerces-c-3.1.1.tar.gz) = 177ec838c5119df57ec77eddec9a29f7e754c8b2
RMD160 (xerces-c-3.1.1.tar.gz) = bbb7ceac470db901d77926cdf21a254df0d8d1db
Size (xerces-c-3.1.1.tar.gz) = 5051308 bytes

View file

@ -1,25 +0,0 @@
$NetBSD: patch-aa,v 1.5 2009/05/10 11:24:27 hasso Exp $
--- ../../samples/Makefile.incl.orig 2007-08-28 21:47:02 +0300
+++ ../../samples/Makefile.incl 2009-05-08 12:50:45 +0300
@@ -270,6 +270,20 @@ ifeq (${PLATFORM}, FREEBSD)
endif
endif
+#=============== DRAGONFLY SPECIFIC OPTIONS =========================
+ifeq (${PLATFORM}, DRAGONFLY)
+ CMP= -c ${CXXFLAGS}
+ CC= ${COMPILER} -c -D${PLATFORM} -fPIC
+ LINK = ${COMPILER} -D${PLATFORM} -fPIC ${LDFLAGS}
+ PLATFORM_LIB_LINK_OPTIONS=-Wl,-rpath,${XERCESCROOT}/lib
+ ifdef ICUROOT
+ PLATFORM_LIB_LINK_OPTIONS+=-L${ICUROOT} -Wl,-rpath,${ICUROOT}
+ EXTRA_LINK_OPTIONS=-licudata -lstdc++ ${EXTRA_LIBS}
+ else
+ EXTRA_LINK_OPTIONS=${EXTRA_LIBS} -lstdc++
+ endif
+endif
+
#=============== NETBSD SPECIFIC OPTIONS =========================
ifeq (${PLATFORM}, NETBSD)
CMP= -c ${CXXFLAGS}

View file

@ -1,12 +0,0 @@
$NetBSD: patch-ab,v 1.5 2006/08/10 13:44:22 abs Exp $
--- ../../samples/configure.orig 2005-09-07 16:56:50.000000000 +0100
+++ ../../samples/configure
@@ -1363,6 +1363,7 @@ case "${host}" in
*-*-linux*) platform=LINUX ;;
*-*-nto*) platform=QNX ;;
*-*-freebsd*) platform=FREEBSD ;;
+ *-*-dragonfly*) platform=DRAGONFLY ;;
*-*-netbsd*) platform=NETBSD ;;
*-*-irix*) platform=IRIX ;;
*-*-aix*) platform=AIX ;;

View file

@ -1,14 +0,0 @@
$NetBSD: patch-ac,v 1.4 2006/08/10 13:44:22 abs Exp $
--- ../../samples/runConfigure.orig 2005-09-07 16:56:50.000000000 +0100
+++ ../../samples/runConfigure
@@ -266,6 +266,9 @@ else
elif test $platform = "freebsd"; then
threadingLibs="-pthread -lc_r"
threadingDefines="-D_THREAD_SAFE -DXML_USE_PTHREADS"
+ elif test $platform = "dragonfly"; then
+ threadingLibs="-pthread -lc_r"
+ threadingDefines="-D_THREAD_SAFE -DXML_USE_PTHREADS"
elif test $platform = "netbsd"; then
threadingLibs="-pthread"
threadingDefines="-D_THREAD_SAFE -DXML_USE_PTHREADS"

View file

@ -1,74 +0,0 @@
$NetBSD: patch-ad,v 1.5 2006/08/10 13:44:22 abs Exp $
--- util/Platforms/DragonFly/DragonFlyDefs.hpp.orig 2006-04-26 14:02:54.000000000 +0100
+++ util/Platforms/DragonFly/DragonFlyDefs.hpp
@@ -0,0 +1,69 @@
+/*
+ * The Apache Software License, Version 1.1
+ *
+ * Copyright (c) 1999-2000 The Apache Software Foundation. All rights
+ * reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * 3. The end-user documentation included with the redistribution,
+ * if any, must include the following acknowledgment:
+ * "This product includes software developed by the
+ * Apache Software Foundation (http://www.apache.org/)."
+ * Alternately, this acknowledgment may appear in the software itself,
+ * if and wherever such third-party acknowledgments normally appear.
+ *
+ * 4. The names "Xerces" and "Apache Software Foundation" must
+ * not be used to endorse or promote products derived from this
+ * software without prior written permission. For written
+ * permission, please contact apache\@apache.org.
+ *
+ * 5. Products derived from this software may not be called "Apache",
+ * nor may "Apache" appear in their name, without prior written
+ * permission of the Apache Software Foundation.
+ *
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
+ * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
+ * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ * ====================================================================
+ *
+ * This software consists of voluntary contributions made by many
+ * individuals on behalf of the Apache Software Foundation, and was
+ * originally based on software copyright (c) 1999, International
+ * Business Machines, Inc., http://www.ibm.com . For more information
+ * on the Apache Software Foundation, please see
+ * <http://www.apache.org/>.
+ */
+
+/*
+ *
+ *
+ */
+
+
+#define ENDIANMODE_LITTLE
+
+typedef void* FileHandle;
+
+#ifndef DRAGONFLY
+#define DRAGONFLY
+#endif

View file

@ -1,46 +0,0 @@
$NetBSD: patch-af,v 1.7 2009/05/10 11:24:27 hasso Exp $
--- Makefile.incl.orig 2007-08-30 15:10:20 +0300
+++ Makefile.incl 2009-05-08 12:55:42 +0300
@@ -603,6 +603,30 @@ ifeq (${PLATFORM}, FREEBSD)
LD_SODEPDOM = -Wl,-soname,${SO_DEPDOM}
endif
+#=============== DRAGONFLY SPECIFIC OPTIONS =========================
+ifeq (${PLATFORM}, DRAGONFLY)
+ PLATFORM_COMPILE_OPTIONS = -D${PLATFORM}
+
+ ifeq (${LIBTYPE},shared)
+ PLATFORM_COMPILE_OPTIONS += -fPIC
+ MAKE_SHARED = ${CXX} -D${PLATFORM} -shared -fPIC ${LDFLAGS}
+ MAKE_SHARED_C = ${CC} -D${PLATFORM} -shared -fPIC ${LDFLAGS}
+ endif
+
+ ifeq (${TRANSCODER}, ICU)
+ PLATFORM_COMPILE_OPTIONS += -I/usr/local/include
+ ALLLIBS = ${LIBS} -L/usr/local/lib -L${ICUROOT} -licuuc -licudata -lgcc
+ else
+ ALLLIBS = ${LIBS}
+ endif
+
+ SHLIBSUFFIX=.so
+ ICUSHLIBSUFFIX=.so
+ ## Compiler switch to embed a library name
+ LD_SONAME = -Wl,-soname,${SO_NAME}
+ LD_SODEPDOM = -Wl,-soname,${SO_DEPDOM}
+endif
+
#=============== NETBSD SPECIFIC OPTIONS =========================
ifeq (${PLATFORM}, NETBSD)
PLATFORM_COMPILE_OPTIONS = -D${PLATFORM}
@@ -969,6 +993,10 @@ LINK_LIBNAME=xercesc
LIBDEPDOM=libxercesdepdom
endif
+ifeq (${TRANSCODER}, IconvGNU)
+ ALLLIBS += -liconv
+endif
+
###################### A_NAME ####################################
#
#

View file

@ -1,29 +0,0 @@
$NetBSD: patch-ag,v 1.6 2009/05/10 11:24:27 hasso Exp $
--- configure.orig 2007-08-28 21:44:56 +0300
+++ configure 2009-05-08 12:58:10 +0300
@@ -3943,6 +3943,7 @@ case "${host}" in
*-*-nto*) platform=QNX ;;
*-*-linux*) platform=LINUX ;;
*-*-freebsd*) platform=FREEBSD ;;
+ *-*-dragonfly*) platform=DRAGONFLY ;;
*-*-netbsd*) platform=NETBSD ;;
*-*-irix*) platform=IRIX ;;
*-*-aix*) platform=AIX
@@ -4024,7 +4025,7 @@ libtype=${LIBTYPE}
bitstobuild=${BITSTOBUILD}
-ac_config_files="$ac_config_files Makefile util/Makefile util/Transcoders/Cygwin/Makefile util/Transcoders/Win32/Makefile util/Transcoders/ICU/Makefile util/Transcoders/Iconv/Makefile util/Transcoders/Iconv390/Makefile util/Transcoders/Uniconv390/Makefile util/Transcoders/Iconv400/Makefile util/Transcoders/IconvFBSD/Makefile util/Transcoders/IconvGNU/Makefile util/Transcoders/MacOSUnicodeConverter/Makefile util/Platforms/Makefile util/Platforms/Solaris/Makefile util/Platforms/AIX/Makefile util/Platforms/BeOS/Makefile util/Platforms/QNX/Makefile util/Platforms/Linux/Makefile util/Platforms/FreeBSD/Makefile util/Platforms/NetBSD/Makefile util/Platforms/HPUX/Makefile util/Platforms/OS390/Makefile util/Platforms/OS400/Makefile util/Platforms/IRIX/Makefile util/Platforms/PTX/Makefile util/Platforms/OpenServer/Makefile util/Platforms/UnixWare/Makefile util/Platforms/Tru64/Makefile util/Platforms/MacOS/Makefile util/Platforms/Win32/Makefile util/Platforms/Cygwin/Makefile util/Compilers/Makefile util/MsgLoaders/InMemory/Makefile util/MsgLoaders/ICU/Makefile util/MsgLoaders/ICU/resources/Makefile util/MsgLoaders/MsgCatalog/Makefile util/MsgLoaders/MsgFile/Makefile util/NetAccessors/Socket/Makefile util/NetAccessors/WinSock/Makefile util/NetAccessors/libWWW/Makefile util/NetAccessors/MacOSURLAccessCF/Makefile util/regx/Makefile validators/Makefile validators/common/Makefile validators/datatype/Makefile validators/DTD/Makefile validators/schema/Makefile validators/schema/identity/Makefile framework/Makefile framework/psvi/Makefile dom/Makefile dom/impl/Makefile dom/deprecated/Makefile parsers/Makefile internal/Makefile sax/Makefile sax2/Makefile ../../obj/Makefile"
+ac_config_files="$ac_config_files Makefile util/Makefile util/Transcoders/Cygwin/Makefile util/Transcoders/Win32/Makefile util/Transcoders/ICU/Makefile util/Transcoders/Iconv/Makefile util/Transcoders/Iconv390/Makefile util/Transcoders/Uniconv390/Makefile util/Transcoders/Iconv400/Makefile util/Transcoders/IconvFBSD/Makefile util/Transcoders/IconvGNU/Makefile util/Transcoders/MacOSUnicodeConverter/Makefile util/Platforms/Makefile util/Platforms/Solaris/Makefile util/Platforms/AIX/Makefile util/Platforms/BeOS/Makefile util/Platforms/QNX/Makefile util/Platforms/Linux/Makefile util/Platforms/FreeBSD/Makefile util/Platforms/DragonFly/Makefile util/Platforms/NetBSD/Makefile util/Platforms/HPUX/Makefile util/Platforms/OS390/Makefile util/Platforms/OS400/Makefile util/Platforms/IRIX/Makefile util/Platforms/PTX/Makefile util/Platforms/OpenServer/Makefile util/Platforms/UnixWare/Makefile util/Platforms/Tru64/Makefile util/Platforms/MacOS/Makefile util/Platforms/Win32/Makefile util/Platforms/Cygwin/Makefile util/Compilers/Makefile util/MsgLoaders/InMemory/Makefile util/MsgLoaders/ICU/Makefile util/MsgLoaders/ICU/resources/Makefile util/MsgLoaders/MsgCatalog/Makefile util/MsgLoaders/MsgFile/Makefile util/NetAccessors/Socket/Makefile util/NetAccessors/WinSock/Makefile util/NetAccessors/libWWW/Makefile util/NetAccessors/MacOSURLAccessCF/Makefile util/regx/Makefile validators/Makefile validators/common/Makefile validators/datatype/Makefile validators/DTD/Makefile validators/schema/Makefile validators/schema/identity/Makefile framework/Makefile framework/psvi/Makefile dom/Makefile dom/impl/Makefile dom/deprecated/Makefile parsers/Makefile internal/Makefile sax/Makefile sax2/Makefile ../../obj/Makefile"
ac_config_commands="$ac_config_commands default"
@@ -4624,6 +4625,7 @@ do
"util/Platforms/QNX/Makefile") CONFIG_FILES="$CONFIG_FILES util/Platforms/QNX/Makefile" ;;
"util/Platforms/Linux/Makefile") CONFIG_FILES="$CONFIG_FILES util/Platforms/Linux/Makefile" ;;
"util/Platforms/FreeBSD/Makefile") CONFIG_FILES="$CONFIG_FILES util/Platforms/FreeBSD/Makefile" ;;
+ "util/Platforms/DragonFly/Makefile") CONFIG_FILES="$CONFIG_FILES util/Platforms/DragonFly/Makefile" ;;
"util/Platforms/NetBSD/Makefile") CONFIG_FILES="$CONFIG_FILES util/Platforms/NetBSD/Makefile" ;;
"util/Platforms/HPUX/Makefile") CONFIG_FILES="$CONFIG_FILES util/Platforms/HPUX/Makefile" ;;
"util/Platforms/OS390/Makefile") CONFIG_FILES="$CONFIG_FILES util/Platforms/OS390/Makefile" ;;

View file

@ -1,14 +0,0 @@
$NetBSD: patch-ah,v 1.5 2006/08/10 13:44:22 abs Exp $
--- dom/impl/DOMDeepNodeListPool.c.orig 2005-09-07 16:54:58.000000000 +0100
+++ dom/impl/DOMDeepNodeListPool.c
@@ -97,6 +97,9 @@ DOMDeepNodeListPool<TVal>::DOMDeepNodeLi
fIdPtrs = (TVal**) fMemoryManager->allocate(fIdPtrsCount * sizeof(TVal*));//new TVal*[fIdPtrsCount];
fIdPtrs[0] = 0;
+
+ // create default hasher
+ fHash = new (fMemoryManager) HashPtr();
}
template <class TVal>

View file

@ -1,23 +0,0 @@
$NetBSD: patch-ai,v 1.5 2006/08/10 13:44:22 abs Exp $
--- runConfigure.orig 2005-09-07 16:55:53.000000000 +0100
+++ runConfigure
@@ -251,7 +251,7 @@ echo "Extra configure options: $configur
#
case $platform in
- aix | openserver | unixware | beos | linux | freebsd | netbsd | solaris | hp-10 | hp-11 | os400 | os390 | irix | ptx | tru64 | macosx | cygwin | qnx | interix | mingw-msys)
+ aix | openserver | unixware | beos | linux | freebsd | netbsd | solaris | hp-10 | hp-11 | os400 | os390 | irix | ptx | tru64 | macosx | cygwin | qnx | interix | mingw-msys | dragonfly)
# platform has been recognized
;;
*)
@@ -334,6 +334,9 @@ else
elif test $platform = "freebsd"; then
threadingLibs="-pthread -lc_r"
threadingDefines="-D_THREAD_SAFE -DXML_USE_PTHREADS"
+ elif test $platform = "dragonfly"; then
+ threadingLibs="-pthread -lc_r"
+ threadingDefines="-D_THREAD_SAFE -DXML_USE_PTHREADS"
elif test $platform = "netbsd"; then
threadingLibs="-pthread -lpthread"
threadingDefines="-D_THREAD_SAFE -DXML_USE_PTHREADS"

View file

@ -1,14 +0,0 @@
$NetBSD: patch-aj,v 1.4 2006/08/10 13:44:22 abs Exp $
--- util/AutoSense.hpp.orig 2005-09-07 16:55:50.000000000 +0100
+++ util/AutoSense.hpp
@@ -61,6 +61,9 @@
#elif defined(__FreeBSD__)
#define XML_FREEBSD
#define XML_UNIX
+#elif defined(__DragonFly__)
+ #define XML_DRAGONFLY
+ #define XML_UNIX
#elif defined(IRIX) || defined(__sgi)
#define XML_IRIX
#define XML_UNIX

View file

@ -1,89 +0,0 @@
$NetBSD: patch-ak,v 1.4 2006/08/10 13:44:22 abs Exp $
--- util/Platforms/DragonFly/Makefile.in.orig 2006-04-26 14:02:54.000000000 +0100
+++ util/Platforms/DragonFly/Makefile.in
@@ -0,0 +1,84 @@
+#
+# The Apache Software License, Version 1.1
+#
+# Copyright (c) 2001 The Apache Software Foundation. All rights
+# reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+#
+# 1. Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# 2. Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in
+# the documentation and/or other materials provided with the
+# distribution.
+#
+# 3. The end-user documentation included with the redistribution,
+# if any, must include the following acknowledgment:
+# "This product includes software developed by the
+# Apache Software Foundation (http://www.apache.org/)."
+# Alternately, this acknowledgment may appear in the software itself,
+# if and wherever such third-party acknowledgments normally appear.
+#
+# 4. The names "Xerces" and "Apache Software Foundation" must
+# not be used to endorse or promote products derived from this
+# software without prior written permission. For written
+# permission, please contact apache\@apache.org.
+#
+# 5. Products derived from this software may not be called "Apache",
+# nor may "Apache" appear in their name, without prior written
+# permission of the Apache Software Foundation.
+#
+# THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+# DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
+# ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
+# USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+# SUCH DAMAGE.
+# ====================================================================
+#
+# This software consists of voluntary contributions made by many
+# individuals on behalf of the Apache Software Foundation, and was
+# originally based on software copyright (c) 2001, International
+# Business Machines, Inc., http://www.ibm.com . For more information
+# on the Apache Software Foundation, please see
+# <http://www.apache.org/>.
+#
+#
+
+PLATFORM = @platform@
+CC = @cc@
+CXX = @cxx@
+GCC = @GCC@
+GXX = @GXX@
+CXXFLAGS = @cxxflags@
+CFLAGS = @cflags@
+PREFIX = @prefix@
+PREFIX_INCLUDE = @prefix_include@
+LDFLAGS = @ldflags@
+LIBS = @libs@
+OSVER = @osver@
+USELIBWWW = @uselibwww@
+MESSAGELOADER = @messageloader@
+TRANSCODER = @transcoder@
+THREADS = @threads@
+
+MODULE = util
+
+include ../../../Makefile.incl
+
+SUBMODULE = Platforms/DragonFly
+CXXFLAGS += -D_GNU_SOURCE -D__USE_GNU
+CPP_PUBHEADERS = DragonFlyDefs.hpp
+CPP_OBJECTS = DragonFlyPlatformUtils.$(TO)
+
+include ../../Makefile.util.submodule

View file

@ -1,14 +0,0 @@
$NetBSD: patch-al,v 1.4 2006/08/10 13:44:22 abs Exp $
--- util/Platforms/Makefile.in.orig 2005-09-07 16:55:34.000000000 +0100
+++ util/Platforms/Makefile.in
@@ -149,6 +149,9 @@ endif
ifeq (${PLATFORM}, FREEBSD)
SUBMODULE = FreeBSD
endif
+ifeq (${PLATFORM}, DRAGONFLY)
+ SUBMODULE = DragonFly
+endif
ifeq (${PLATFORM}, NETBSD)
SUBMODULE = NetBSD
endif

View file

@ -1,22 +0,0 @@
$NetBSD: patch-am,v 1.4 2006/08/10 13:44:22 abs Exp $
--- util/Platforms/NetBSD/NetBSDPlatformUtils.cpp.orig 2005-09-07 16:55:30.000000000 +0100
+++ util/Platforms/NetBSD/NetBSDPlatformUtils.cpp
@@ -54,6 +54,8 @@
#if defined(XML_USE_ICU_TRANSCODER)
#include <xercesc/util/Transcoders/ICU/ICUTransService.hpp>
+#elif defined (XML_USE_GNU_TRANSCODER)
+ #include <xercesc/util/Transcoders/IconvGNU/IconvGNUTransService.hpp>
#else
// Use native transcoder. Same as -DXML_USE_NATIVE_TRANSCODER
#include <xercesc/util/Transcoders/Iconv/IconvTransService.hpp>
@@ -62,6 +64,8 @@
#if defined(XML_USE_ICU_MESSAGELOADER)
#include <xercesc/util/MsgLoaders/ICU/ICUMsgLoader.hpp>
+#elif defined(XML_USE_ICONV_MESSAGELOADER)
+ #include <xercesc/util/MsgLoaders/MsgCatalog/MsgCatalogLoader.hpp>
#else
// Same as -DXML_USE_INMEM_MESSAGELOADER
#include <xercesc/util/MsgLoaders/InMemory/InMemMsgLoader.hpp>

View file

@ -1,168 +0,0 @@
$NetBSD: patch-an,v 1.4 2006/08/10 13:44:22 abs Exp $
--- util/RefArrayOf.c.orig 2005-09-07 16:55:50.000000000 +0100
+++ util/RefArrayOf.c
@@ -39,9 +39,9 @@ RefArrayOf<TElem>::RefArrayOf(const unsi
, fArray(0)
, fMemoryManager(manager)
{
- fArray = (TElem**) fMemoryManager->allocate(fSize * sizeof(TElem*));//new TElem*[fSize];
- for (unsigned int index = 0; index < fSize; index++)
- fArray[index] = 0;
+ this->fArray = (TElem**) this->fMemoryManager->allocate(fSize * sizeof(TElem*));//new TElem*[fSize];
+ for (unsigned int index = 0; index < this->fSize; index++)
+ this->fArray[index] = 0;
}
template <class TElem>
@@ -53,9 +53,9 @@ RefArrayOf<TElem>::RefArrayOf(TElem* val
, fArray(0)
, fMemoryManager(manager)
{
- fArray = (TElem**) fMemoryManager->allocate(fSize * sizeof(TElem*));//new TElem*[fSize];
- for (unsigned int index = 0; index < fSize; index++)
- fArray[index] = values[index];
+ this->fArray = (TElem**) this->fMemoryManager->allocate(this->fSize * sizeof(TElem*));//new TElem*[fSize];
+ for (unsigned int index = 0; index < this->fSize; index++)
+ this->fArray[index] = values[index];
}
template <class TElem> RefArrayOf<TElem>::
@@ -65,14 +65,14 @@ RefArrayOf(const RefArrayOf<TElem>& sour
, fArray(0)
, fMemoryManager(source.fMemoryManager)
{
- fArray = (TElem**) fMemoryManager->allocate(fSize * sizeof(TElem*));//new TElem*[fSize];
- for (unsigned int index = 0; index < fSize; index++)
- fArray[index] = source.fArray[index];
+ this->fArray = (TElem**) this->fMemoryManager->allocate(fSize * sizeof(TElem*));//new TElem*[fSize];
+ for (unsigned int index = 0; index < this->fSize; index++)
+ this->fArray[index] = source.fArray[index];
}
template <class TElem> RefArrayOf<TElem>::~RefArrayOf()
{
- fMemoryManager->deallocate(fArray);//delete [] fArray;
+ this->fMemoryManager->deallocate(this->fArray);//delete [] fArray;
}
@@ -84,7 +84,7 @@ operator[](const unsigned int index)
{
if (index >= fSize)
ThrowXMLwithMemMgr(ArrayIndexOutOfBoundsException, XMLExcepts::Array_BadIndex, fMemoryManager);
- return fArray[index];
+ return this->fArray[index];
}
template <class TElem> const TElem* RefArrayOf<TElem>::
@@ -92,7 +92,7 @@ operator[](const unsigned int index) con
{
if (index >= fSize)
ThrowXMLwithMemMgr(ArrayIndexOutOfBoundsException, XMLExcepts::Array_BadIndex, fMemoryManager);
- return fArray[index];
+ return this->fArray[index];
}
template <class TElem> RefArrayOf<TElem>& RefArrayOf<TElem>::
@@ -104,14 +104,14 @@ operator=(const RefArrayOf<TElem>& toAss
// Reallocate if not the same size
if (toAssign.fSize != fSize)
{
- fMemoryManager->deallocate(fArray);//delete [] fArray;
- fSize = toAssign.fSize;
- fArray = (TElem**) fMemoryManager->allocate(fSize * sizeof(TElem*));//new TElem*[fSize];
+ this->fMemoryManager->deallocate(this->fArray);//delete [] fArray;
+ this->fSize = toAssign.fSize;
+ this->fArray = (TElem**) this->fMemoryManager->allocate(this->fSize * sizeof(TElem*));//new TElem*[fSize];
}
// Copy over the source elements
for (unsigned int index = 0; index < fSize; index++)
- fArray[index] = toAssign.fArray[index];
+ this->fArray[index] = toAssign.fArray[index];
return *this;
}
@@ -182,16 +182,16 @@ template <class TElem> void RefArrayOf<T
if (index >= fSize)
ThrowXMLwithMemMgr(ArrayIndexOutOfBoundsException, XMLExcepts::Array_BadIndex, fMemoryManager);
- delete fArray[index];
- fArray[index] = 0;
+ delete this->fArray[index];
+ this->fArray[index] = 0;
}
template <class TElem> void RefArrayOf<TElem>::deleteAllElements()
{
- for (unsigned int index = 0; index < fSize; index++)
+ for (unsigned int index = 0; index < this->fSize; index++)
{
delete fArray[index];
- fArray[index] = 0;
+ this->fArray[index] = 0;
}
}
@@ -204,7 +204,7 @@ template <class TElem> void RefArrayOf<T
ThrowXMLwithMemMgr(IllegalArgumentException, XMLExcepts::Array_BadNewSize, fMemoryManager);
// Allocate the new array
- TElem** newArray = (TElem**) fMemoryManager->allocate
+ TElem** newArray = (TElem**) this->fMemoryManager->allocate
(
newSize * sizeof(TElem*)
);//new TElem*[newSize];
@@ -212,15 +212,15 @@ template <class TElem> void RefArrayOf<T
// Copy the existing values
unsigned int index = 0;
for (; index < fSize; index++)
- newArray[index] = fArray[index];
+ newArray[index] = this->fArray[index];
for (; index < newSize; index++)
newArray[index] = 0;
// Delete the old array and udpate our members
- fMemoryManager->deallocate(fArray);//delete [] fArray;
- fArray = newArray;
- fSize = newSize;
+ this->fMemoryManager->deallocate(fArray);//delete [] fArray;
+ this->fArray = newArray;
+ this->fSize = newSize;
}
@@ -241,7 +241,7 @@ RefArrayEnumerator( RefArrayOf<T
template <class TElem> RefArrayEnumerator<TElem>::~RefArrayEnumerator()
{
if (fAdopted)
- delete fToEnum;
+ delete this->fToEnum;
}
@@ -250,19 +250,19 @@ template <class TElem> RefArrayEnumerato
// ---------------------------------------------------------------------------
template <class TElem> bool RefArrayEnumerator<TElem>::hasMoreElements() const
{
- if (fCurIndex >= fToEnum->length())
+ if (fCurIndex >= this->fToEnum->length())
return false;
return true;
}
template <class TElem> TElem& RefArrayEnumerator<TElem>::nextElement()
{
- return *(*fToEnum)[fCurIndex++];
+ return *(*this->fToEnum)[this->fCurIndex++];
}
template <class TElem> void RefArrayEnumerator<TElem>::Reset()
{
- fCurIndex = 0;
+ this->fCurIndex = 0;
}
XERCES_CPP_NAMESPACE_END

View file

@ -1,14 +0,0 @@
$NetBSD: patch-ao,v 1.4 2006/08/10 13:44:22 abs Exp $
--- util/RefHash3KeysIdPool.c.orig 2005-09-07 16:55:51.000000000 +0100
+++ util/RefHash3KeysIdPool.c
@@ -97,6 +97,9 @@ RefHash3KeysIdPool<TVal>::RefHash3KeysId
fIdPtrsCount = 256;
fIdPtrs = (TVal**) fMemoryManager->allocate(fIdPtrsCount * sizeof(TVal*)); //new TVal*[fIdPtrsCount];
fIdPtrs[0] = 0;
+
+ // create default hasher
+ fHash = new (fMemoryManager) HashXMLCh();
}
template <class TVal>

View file

@ -1,61 +0,0 @@
$NetBSD: patch-ap,v 1.4 2006/08/10 13:44:22 abs Exp $
--- util/Transcoders/IconvGNU/IconvGNUTransService.cpp.orig 2005-09-07 16:55:44.000000000 +0100
+++ util/Transcoders/IconvGNU/IconvGNUTransService.cpp
@@ -26,7 +26,11 @@
#include <locale.h>
#include <iconv.h>
#include <errno.h>
+#ifdef __NetBSD__
+#include <machine/endian.h>
+#else
#include <endian.h>
+#endif
#include <xercesc/util/XMLString.hpp>
#include <xercesc/util/XMLUniDefs.hpp>
@@ -243,7 +247,7 @@ XMLCh IconvGNUWrapper::toUpper (const
xmlChToMbc (ch, wcbuf);
char tmpArr[4];
- char* ptr = wcbuf;
+ const char* ptr = wcbuf;
size_t len = fUChSize;
char *pTmpArr = tmpArr;
size_t bLen = 2;
@@ -275,7 +279,7 @@ XMLCh IconvGNUWrapper::toLower (const
xmlChToMbc (ch, wcbuf);
char tmpArr[4];
- char* ptr = wcbuf;
+ const char* ptr = wcbuf;
size_t len = fUChSize;
char *pTmpArr = tmpArr;
size_t bLen = 2;
@@ -307,7 +311,7 @@ bool IconvGNUWrapper::isSpace(const X
char tmpArr[4];
xmlChToMbc (toCheck, wcbuf);
- char* ptr = wcbuf;
+ const char* ptr = wcbuf;
size_t len = fUChSize;
char *pTmpArr = tmpArr;
size_t bLen = 2;
@@ -408,7 +412,7 @@ size_t IconvGNUWrapper::iconvFrom ( c
size_t toLen ) const
{
ICONV_LOCK;
- char ** tmpPtr = (char**)&fromPtr;
+ const char ** tmpPtr = &fromPtr;
return ::iconv (fCDFrom, tmpPtr, fromLen, toPtr, &toLen);
}
@@ -418,7 +422,7 @@ size_t IconvGNUWrapper::iconvTo ( con
size_t toLen ) const
{
ICONV_LOCK;
- char ** tmpPtr = (char**)&fromPtr;
+ const char ** tmpPtr = &fromPtr;
return ::iconv (fCDTo, tmpPtr, fromLen, toPtr, &toLen);
}

View file

@ -1,15 +0,0 @@
$NetBSD: patch-aq,v 1.2 2006/08/10 13:44:22 abs Exp $
--- util/XercesDefs.hpp.orig 2005-09-07 16:55:50.000000000 +0100
+++ util/XercesDefs.hpp
@@ -266,6 +266,10 @@
#include <xercesc/util/Platforms/FreeBSD/FreeBSDDefs.hpp>
#endif
+#if defined(XML_DRAGONFLY)
+#include <xercesc/util/Platforms/DragonFly/DragonFlyDefs.hpp>
+#endif
+
#if defined(XML_OS390)
#include <xercesc/util/Platforms/OS390/OS390Defs.hpp>
#endif

View file

@ -1,25 +0,0 @@
$NetBSD: patch-ar,v 1.3 2009/05/10 11:24:27 hasso Exp $
--- ../../tests/Makefile.incl.orig 2007-08-28 21:46:48 +0300
+++ ../../tests/Makefile.incl 2009-05-08 13:00:19 +0300
@@ -269,6 +269,20 @@ ifeq (${PLATFORM}, FREEBSD)
endif
endif
+#=============== DRAGONFLY SPECIFIC OPTIONS =========================
+ifeq (${PLATFORM}, DRAGONFLY)
+ CMP= -c ${CXXFLAGS}
+ CC= ${COMPILER} -c -D${PLATFORM} -fPIC
+ LINK = ${COMPILER} -D${PLATFORM} -fPIC ${LDFLAGS}
+ PLATFORM_LIB_LINK_OPTIONS=-Wl,-rpath,${XERCESCROOT}/lib
+ ifdef ICUROOT
+ PLATFORM_LIB_LINK_OPTIONS+=-L${ICUROOT} -Wl,-rpath,${ICUROOT}
+ EXTRA_LINK_OPTIONS=-licudata -lstdc++ ${EXTRA_LIBS}
+ else
+ EXTRA_LINK_OPTIONS=${EXTRA_LIBS} -lstdc++
+ endif
+endif
+
#=============== NETBSD SPECIFIC OPTIONS =========================
ifeq (${PLATFORM}, NETBSD)
CMP= -c ${CXXFLAGS}

View file

@ -1,12 +0,0 @@
$NetBSD: patch-as,v 1.2 2006/08/10 13:44:22 abs Exp $
--- ../../tests/configure.orig 2005-09-07 16:56:40.000000000 +0100
+++ ../../tests/configure
@@ -1363,6 +1363,7 @@ case "${host}" in
*-*-linux*) platform=LINUX ;;
*-*-nto*) platform=QNX ;;
*-*-freebsd*) platform=FREEBSD ;;
+ *-*-dragonfly*) platform=DRAGONFLY ;;
*-*-netbsd*) platform=NETBSD ;;
*-*-irix*) platform=IRIX ;;
*-*-aix*) platform=AIX ;;

View file

@ -1,14 +0,0 @@
$NetBSD: patch-at,v 1.2 2006/08/10 13:44:22 abs Exp $
--- ../../tests/runConfigure.orig 2005-09-07 16:56:40.000000000 +0100
+++ ../../tests/runConfigure
@@ -265,6 +265,9 @@ else
elif test $platform = "freebsd"; then
threadingLibs="-pthread -lc_r"
threadingDefines="-D_THREAD_SAFE -DXML_USE_PTHREADS"
+ elif test $platform = "dragonfly"; then
+ threadingLibs="-pthread -lc_r"
+ threadingDefines="-D_THREAD_SAFE -DXML_USE_PTHREADS"
elif test $platform = "netbsd"; then
threadingLibs="-pthread"
threadingDefines="-D_THREAD_SAFE -DXML_USE_PTHREADS"

View file

@ -1,653 +0,0 @@
$NetBSD: patch-ba,v 1.1 2009/08/28 05:24:34 hasso Exp $
Fix for CVE-2009-1885 from upstream subversion repo.
--- ../../src/xercesc/validators/DTD/DTDScanner.cpp 2008/05/21 16:42:53 658750
+++ ../../src/xercesc/validators/DTD/DTDScanner.cpp 2009/08/24 14:03:57 807224
@@ -27,7 +27,9 @@
#include <xercesc/util/FlagJanitor.hpp>
#include <xercesc/util/Janitor.hpp>
#include <xercesc/util/XMLUniDefs.hpp>
+#include <xercesc/util/ValueStackOf.hpp>
#include <xercesc/util/UnexpectedEOFException.hpp>
+#include <xercesc/util/OutOfMemoryException.hpp>
#include <xercesc/sax/InputSource.hpp>
#include <xercesc/framework/XMLDocumentHandler.hpp>
#include <xercesc/framework/XMLEntityHandler.hpp>
@@ -39,7 +41,6 @@
#include <xercesc/validators/DTD/DTDEntityDecl.hpp>
#include <xercesc/validators/DTD/DocTypeHandler.hpp>
#include <xercesc/validators/DTD/DTDScanner.hpp>
-#include <xercesc/util/OutOfMemoryException.hpp>
XERCES_CPP_NAMESPACE_BEGIN
@@ -1046,338 +1047,354 @@
// Check for a PE ref here, but don't require spaces
checkForPERef(false, true);
- // We have to check entity nesting here
- unsigned int curReader;
-
+ ValueStackOf<XMLSize_t>* arrNestedDecl=NULL;
//
// We know that the caller just saw an opening parenthesis, so we need
- // to parse until we hit the end of it, recursing for other nested
- // parentheses we see.
+ // to parse until we hit the end of it; if we find several parenthesis,
+ // store them in an array to be processed later.
//
// We have to check for one up front, since it could be something like
// (((a)*)) etc...
//
ContentSpecNode* curNode = 0;
- if (fReaderMgr->skippedChar(chOpenParen))
+ while(fReaderMgr->skippedChar(chOpenParen))
{
- curReader = fReaderMgr->getCurrentReaderNum();
+ // to check entity nesting
+ const unsigned int curReader = fReaderMgr->getCurrentReaderNum();
+ if(arrNestedDecl==NULL)
+ arrNestedDecl=new (fMemoryManager) ValueStackOf<XMLSize_t>(5, fMemoryManager);
+ arrNestedDecl->push(curReader);
- // Lets call ourself and get back the resulting node
- curNode = scanChildren(elemDecl, bufToUse);
+ // Check for a PE ref here, but don't require spaces
+ checkForPERef(false, true);
+ }
- // If that failed, no need to go further, return failure
- if (!curNode)
- return 0;
+ // We must find a leaf node here, either standalone or nested in the parenthesis
+ if (!fReaderMgr->getName(bufToUse))
+ {
+ fScanner->emitError(XMLErrs::ExpectedElementName);
+ return 0;
+ }
- if (curReader != fReaderMgr->getCurrentReaderNum() && fScanner->getDoValidation())
- fScanner->getValidator()->emitError(XMLValid::PartialMarkupInPE);
+ //
+ // Create a leaf node for it. If we can find the element id for
+ // this element, then use it. Else, we have to fault in an element
+ // decl, marked as created because of being in a content model.
+ //
+ XMLElementDecl* decl = fDTDGrammar->getElemDecl(fEmptyNamespaceId, 0, bufToUse.getRawBuffer(), Grammar::TOP_LEVEL_SCOPE);
+ if (!decl)
+ {
+ decl = new (fGrammarPoolMemoryManager) DTDElementDecl
+ (
+ bufToUse.getRawBuffer()
+ , fEmptyNamespaceId
+ , DTDElementDecl::Any
+ , fGrammarPoolMemoryManager
+ );
+ decl->setCreateReason(XMLElementDecl::InContentModel);
+ decl->setExternalElemDeclaration(isReadingExternalEntity());
+ fDTDGrammar->putElemDecl(decl);
}
- else
+ curNode = new (fGrammarPoolMemoryManager) ContentSpecNode
+ (
+ decl->getElementName()
+ , fGrammarPoolMemoryManager
+ );
+
+ // Check for a PE ref here, but don't require spaces
+ const bool gotSpaces = checkForPERef(false, true);
+
+ // Check for a repetition character after the leaf
+ XMLCh repCh = fReaderMgr->peekNextChar();
+ ContentSpecNode* tmpNode = makeRepNode(repCh, curNode, fGrammarPoolMemoryManager);
+ if (tmpNode != curNode)
{
- // Not a nested paren, so it must be a leaf node
- if (!fReaderMgr->getName(bufToUse))
+ if (gotSpaces)
{
- fScanner->emitError(XMLErrs::ExpectedElementName);
- return 0;
+ if (fScanner->emitErrorWillThrowException(XMLErrs::UnexpectedWhitespace))
+ {
+ delete tmpNode;
+ }
+ fScanner->emitError(XMLErrs::UnexpectedWhitespace);
}
+ fReaderMgr->getNextChar();
+ curNode = tmpNode;
+ }
+ while(arrNestedDecl==NULL || !arrNestedDecl->empty())
+ {
+ // Check for a PE ref here, but don't require spaces
+ checkForPERef(false, true);
+
//
- // Create a leaf node for it. If we can find the element id for
- // this element, then use it. Else, we have to fault in an element
- // decl, marked as created because of being in a content model.
+ // Ok, the next character tells us what kind of content this particular
+ // model this particular parentesized section is. Its either a choice if
+ // we see ',', a sequence if we see '|', or a single leaf node if we see
+ // a closing paren.
+ //
+ const XMLCh opCh = fReaderMgr->peekNextChar();
+
+ if ((opCh != chComma)
+ && (opCh != chPipe)
+ && (opCh != chCloseParen))
+ {
+ // Not a legal char, so delete our node and return failure
+ delete curNode;
+ fScanner->emitError(XMLErrs::ExpectedSeqChoiceLeaf);
+ return 0;
+ }
+
//
- XMLElementDecl* decl = fDTDGrammar->getElemDecl(fEmptyNamespaceId, 0, bufToUse.getRawBuffer(), Grammar::TOP_LEVEL_SCOPE);
- if (!decl)
+ // Create the head node of the correct type. We need this to remember
+ // the top of the local tree. If it was a single subexpr, then just
+ // set the head node to the current node. For the others, we'll build
+ // the tree off the second child as we move across.
+ //
+ ContentSpecNode* headNode = 0;
+ ContentSpecNode::NodeTypes curType = ContentSpecNode::UnknownType;
+ if (opCh == chComma)
{
- decl = new (fGrammarPoolMemoryManager) DTDElementDecl
+ curType = ContentSpecNode::Sequence;
+ headNode = new (fGrammarPoolMemoryManager) ContentSpecNode
(
- bufToUse.getRawBuffer()
- , fEmptyNamespaceId
- , DTDElementDecl::Any
+ curType
+ , curNode
+ , 0
+ , true
+ , true
, fGrammarPoolMemoryManager
);
- decl->setCreateReason(XMLElementDecl::InContentModel);
- decl->setExternalElemDeclaration(isReadingExternalEntity());
- fDTDGrammar->putElemDecl(decl);
+ curNode = headNode;
}
- curNode = new (fGrammarPoolMemoryManager) ContentSpecNode
- (
- decl->getElementName()
- , fGrammarPoolMemoryManager
- );
-
- // Check for a PE ref here, but don't require spaces
- const bool gotSpaces = checkForPERef(false, true);
-
- // Check for a repetition character after the leaf
- const XMLCh repCh = fReaderMgr->peekNextChar();
- ContentSpecNode* tmpNode = makeRepNode(repCh, curNode, fGrammarPoolMemoryManager);
- if (tmpNode != curNode)
+ else if (opCh == chPipe)
{
- if (gotSpaces)
- {
- if (fScanner->emitErrorWillThrowException(XMLErrs::UnexpectedWhitespace))
- {
- delete tmpNode;
- }
- fScanner->emitError(XMLErrs::UnexpectedWhitespace);
- }
+ curType = ContentSpecNode::Choice;
+ headNode = new (fGrammarPoolMemoryManager) ContentSpecNode
+ (
+ curType
+ , curNode
+ , 0
+ , true
+ , true
+ , fGrammarPoolMemoryManager
+ );
+ curNode = headNode;
+ }
+ else
+ {
+ headNode = curNode;
fReaderMgr->getNextChar();
- curNode = tmpNode;
}
- }
-
- // Check for a PE ref here, but don't require spaces
- checkForPERef(false, true);
- //
- // Ok, the next character tells us what kind of content this particular
- // model this particular parentesized section is. Its either a choice if
- // we see ',', a sequence if we see '|', or a single leaf node if we see
- // a closing paren.
- //
- const XMLCh opCh = fReaderMgr->peekNextChar();
-
- if ((opCh != chComma)
- && (opCh != chPipe)
- && (opCh != chCloseParen))
- {
- // Not a legal char, so delete our node and return failure
- delete curNode;
- fScanner->emitError(XMLErrs::ExpectedSeqChoiceLeaf);
- return 0;
- }
-
- //
- // Create the head node of the correct type. We need this to remember
- // the top of the local tree. If it was a single subexpr, then just
- // set the head node to the current node. For the others, we'll build
- // the tree off the second child as we move across.
- //
- ContentSpecNode* headNode = 0;
- ContentSpecNode::NodeTypes curType = ContentSpecNode::UnknownType;
- if (opCh == chComma)
- {
- curType = ContentSpecNode::Sequence;
- headNode = new (fGrammarPoolMemoryManager) ContentSpecNode
- (
- curType
- , curNode
- , 0
- , true
- , true
- , fGrammarPoolMemoryManager
- );
- curNode = headNode;
- }
- else if (opCh == chPipe)
- {
- curType = ContentSpecNode::Choice;
- headNode = new (fGrammarPoolMemoryManager) ContentSpecNode
- (
- curType
- , curNode
- , 0
- , true
- , true
- , fGrammarPoolMemoryManager
- );
- curNode = headNode;
- }
- else
- {
- headNode = curNode;
- fReaderMgr->getNextChar();
- }
-
- //
- // If it was a sequence or choice, we just loop until we get to the
- // end of our section, adding each new leaf or sub expression to the
- // right child of the current node, and making that new node the current
- // node.
- //
- if ((opCh == chComma) || (opCh == chPipe))
- {
- ContentSpecNode* lastNode = 0;
- while (true)
+ //
+ // If it was a sequence or choice, we just loop until we get to the
+ // end of our section, adding each new leaf or sub expression to the
+ // right child of the current node, and making that new node the current
+ // node.
+ //
+ if ((opCh == chComma) || (opCh == chPipe))
{
- //
- // The next thing must either be another | or , character followed
- // by another leaf or subexpression, or a closing parenthesis, or a
- // PE ref.
- //
- if (fReaderMgr->lookingAtChar(chPercent))
- {
- checkForPERef(false, true);
- }
- else if (fReaderMgr->skippedSpace())
- {
- // Just skip whitespace
- fReaderMgr->skipPastSpaces();
- }
- else if (fReaderMgr->skippedChar(chCloseParen))
+ ContentSpecNode* lastNode = 0;
+ while (true)
{
//
- // We've hit the end of this section, so break out. But, we
- // need to see if we left a partial sequence of choice node
- // without a second node. If so, we have to undo that and
- // put its left child into the right node of the previous
- // node.
+ // The next thing must either be another | or , character followed
+ // by another leaf or subexpression, or a closing parenthesis, or a
+ // PE ref.
//
- if ((curNode->getType() == ContentSpecNode::Choice)
- || (curNode->getType() == ContentSpecNode::Sequence))
+ if (fReaderMgr->lookingAtChar(chPercent))
+ {
+ checkForPERef(false, true);
+ }
+ else if (fReaderMgr->skippedSpace())
{
- if (!curNode->getSecond())
+ // Just skip whitespace
+ fReaderMgr->skipPastSpaces();
+ }
+ else if (fReaderMgr->skippedChar(chCloseParen))
+ {
+ //
+ // We've hit the end of this section, so break out. But, we
+ // need to see if we left a partial sequence of choice node
+ // without a second node. If so, we have to undo that and
+ // put its left child into the right node of the previous
+ // node.
+ //
+ if ((curNode->getType() == ContentSpecNode::Choice)
+ || (curNode->getType() == ContentSpecNode::Sequence))
{
- ContentSpecNode* saveFirst = curNode->orphanFirst();
- lastNode->setSecond(saveFirst);
- curNode = lastNode;
+ if (!curNode->getSecond())
+ {
+ ContentSpecNode* saveFirst = curNode->orphanFirst();
+ lastNode->setSecond(saveFirst);
+ curNode = lastNode;
+ }
}
+ break;
}
- break;
- }
- else if (fReaderMgr->skippedChar(opCh))
- {
- // Check for a PE ref here, but don't require spaces
- checkForPERef(false, true);
-
- if (fReaderMgr->skippedChar(chOpenParen))
+ else if (fReaderMgr->skippedChar(opCh))
{
- curReader = fReaderMgr->getCurrentReaderNum();
+ // Check for a PE ref here, but don't require spaces
+ checkForPERef(false, true);
- // Recurse to handle this new guy
- ContentSpecNode* subNode;
- try {
- subNode = scanChildren(elemDecl, bufToUse);
- }
- catch (const XMLErrs::Codes)
+ if (fReaderMgr->skippedChar(chOpenParen))
{
- delete headNode;
- throw;
- }
+ const unsigned int curReader = fReaderMgr->getCurrentReaderNum();
- // If it failed, we are done, clean up here and return failure
- if (!subNode)
- {
- delete headNode;
- return 0;
+ // Recurse to handle this new guy
+ ContentSpecNode* subNode;
+ try {
+ subNode = scanChildren(elemDecl, bufToUse);
+ }
+ catch (const XMLErrs::Codes)
+ {
+ delete headNode;
+ throw;
+ }
+
+ // If it failed, we are done, clean up here and return failure
+ if (!subNode)
+ {
+ delete headNode;
+ return 0;
+ }
+
+ if (curReader != fReaderMgr->getCurrentReaderNum() && fScanner->getDoValidation())
+ fScanner->getValidator()->emitError(XMLValid::PartialMarkupInPE);
+
+ // Else patch it in and make it the new current
+ ContentSpecNode* newCur = new (fGrammarPoolMemoryManager) ContentSpecNode
+ (
+ curType
+ , subNode
+ , 0
+ , true
+ , true
+ , fGrammarPoolMemoryManager
+ );
+ curNode->setSecond(newCur);
+ lastNode = curNode;
+ curNode = newCur;
}
+ else
+ {
+ //
+ // Got to be a leaf node, so get a name. If we cannot get
+ // one, then clean up and get outa here.
+ //
+ if (!fReaderMgr->getName(bufToUse))
+ {
+ delete headNode;
+ fScanner->emitError(XMLErrs::ExpectedElementName);
+ return 0;
+ }
+
+ //
+ // Create a leaf node for it. If we can find the element
+ // id for this element, then use it. Else, we have to
+ // fault in an element decl, marked as created because
+ // of being in a content model.
+ //
+ XMLElementDecl* decl = fDTDGrammar->getElemDecl(fEmptyNamespaceId, 0, bufToUse.getRawBuffer(), Grammar::TOP_LEVEL_SCOPE);
+ if (!decl)
+ {
+ decl = new (fGrammarPoolMemoryManager) DTDElementDecl
+ (
+ bufToUse.getRawBuffer()
+ , fEmptyNamespaceId
+ , DTDElementDecl::Any
+ , fGrammarPoolMemoryManager
+ );
+ decl->setCreateReason(XMLElementDecl::InContentModel);
+ decl->setExternalElemDeclaration(isReadingExternalEntity());
+ fDTDGrammar->putElemDecl(decl);
+ }
- if (curReader != fReaderMgr->getCurrentReaderNum() && fScanner->getDoValidation())
- fScanner->getValidator()->emitError(XMLValid::PartialMarkupInPE);
+ ContentSpecNode* tmpLeaf = new (fGrammarPoolMemoryManager) ContentSpecNode
+ (
+ decl->getElementName()
+ , fGrammarPoolMemoryManager
+ );
- // Else patch it in and make it the new current
- ContentSpecNode* newCur = new (fGrammarPoolMemoryManager) ContentSpecNode
- (
- curType
- , subNode
- , 0
- , true
- , true
- , fGrammarPoolMemoryManager
- );
- curNode->setSecond(newCur);
- lastNode = curNode;
- curNode = newCur;
+ // Check for a repetition character after the leaf
+ const XMLCh repCh = fReaderMgr->peekNextChar();
+ ContentSpecNode* tmpLeaf2 = makeRepNode(repCh, tmpLeaf, fGrammarPoolMemoryManager);
+ if (tmpLeaf != tmpLeaf2)
+ fReaderMgr->getNextChar();
+
+ //
+ // Create a new sequence or choice node, with the leaf
+ // (or rep surrounding it) we just got as its first node.
+ // Make the new node the second node of the current node,
+ // and then make it the current node.
+ //
+ ContentSpecNode* newCur = new (fGrammarPoolMemoryManager) ContentSpecNode
+ (
+ curType
+ , tmpLeaf2
+ , 0
+ , true
+ , true
+ , fGrammarPoolMemoryManager
+ );
+ curNode->setSecond(newCur);
+ lastNode = curNode;
+ curNode = newCur;
+ }
}
else
{
- //
- // Got to be a leaf node, so get a name. If we cannot get
- // one, then clean up and get outa here.
- //
- if (!fReaderMgr->getName(bufToUse))
+ // Cannot be valid
+ delete headNode; // emitError may do a throw so need to clean-up first
+ if (opCh == chComma)
{
- delete headNode;
- fScanner->emitError(XMLErrs::ExpectedElementName);
- return 0;
+ fScanner->emitError(XMLErrs::ExpectedChoiceOrCloseParen);
}
-
- //
- // Create a leaf node for it. If we can find the element
- // id for this element, then use it. Else, we have to
- // fault in an element decl, marked as created because
- // of being in a content model.
- //
- XMLElementDecl* decl = fDTDGrammar->getElemDecl(fEmptyNamespaceId, 0, bufToUse.getRawBuffer(), Grammar::TOP_LEVEL_SCOPE);
- if (!decl)
+ else
{
- decl = new (fGrammarPoolMemoryManager) DTDElementDecl
+ fScanner->emitError
(
- bufToUse.getRawBuffer()
- , fEmptyNamespaceId
- , DTDElementDecl::Any
- , fGrammarPoolMemoryManager
+ XMLErrs::ExpectedSeqOrCloseParen
+ , elemDecl.getFullName()
);
- decl->setCreateReason(XMLElementDecl::InContentModel);
- decl->setExternalElemDeclaration(isReadingExternalEntity());
- fDTDGrammar->putElemDecl(decl);
- }
+ }
+ return 0;
+ }
+ }
+ }
- ContentSpecNode* tmpLeaf = new (fGrammarPoolMemoryManager) ContentSpecNode
- (
- decl->getElementName()
- , fGrammarPoolMemoryManager
- );
+ //
+ // We saw the terminating parenthesis so lets check for any repetition
+ // character, and create a node for that, making the head node the child
+ // of it.
+ //
+ const XMLCh repCh = fReaderMgr->peekNextChar();
+ curNode = makeRepNode(repCh, headNode, fGrammarPoolMemoryManager);
+ if (curNode != headNode)
+ fReaderMgr->getNextChar();
+
+ // prepare for recursion
+ if(arrNestedDecl==NULL)
+ break;
+ else
+ {
+ // If that failed, no need to go further, return failure
+ if (!curNode)
+ return 0;
- // Check for a repetition character after the leaf
- const XMLCh repCh = fReaderMgr->peekNextChar();
- ContentSpecNode* tmpLeaf2 = makeRepNode(repCh, tmpLeaf, fGrammarPoolMemoryManager);
- if (tmpLeaf != tmpLeaf2)
- fReaderMgr->getNextChar();
+ const unsigned int curReader = arrNestedDecl->pop();
+ if (curReader != fReaderMgr->getCurrentReaderNum() && fScanner->getValidationScheme() == XMLScanner::Val_Always)
+ fScanner->getValidator()->emitError(XMLValid::PartialMarkupInPE);
- //
- // Create a new sequence or choice node, with the leaf
- // (or rep surrounding it) we just got as its first node.
- // Make the new node the second node of the current node,
- // and then make it the current node.
- //
- ContentSpecNode* newCur = new (fGrammarPoolMemoryManager) ContentSpecNode
- (
- curType
- , tmpLeaf2
- , 0
- , true
- , true
- , fGrammarPoolMemoryManager
- );
- curNode->setSecond(newCur);
- lastNode = curNode;
- curNode = newCur;
- }
- }
- else
+ if(arrNestedDecl->empty())
{
- // Cannot be valid
- delete headNode; // emitError may do a throw so need to clean-up first
- if (opCh == chComma)
- {
- fScanner->emitError(XMLErrs::ExpectedChoiceOrCloseParen);
- }
- else
- {
- fScanner->emitError
- (
- XMLErrs::ExpectedSeqOrCloseParen
- , elemDecl.getFullName()
- );
- }
- return 0;
+ delete arrNestedDecl;
+ arrNestedDecl=NULL;
}
}
}
- //
- // We saw the terminating parenthesis so lets check for any repetition
- // character, and create a node for that, making the head node the child
- // of it.
- //
- XMLCh repCh = fReaderMgr->peekNextChar();
- ContentSpecNode* retNode = makeRepNode(repCh, headNode, fGrammarPoolMemoryManager);
- if (retNode != headNode)
- fReaderMgr->getNextChar();
-
- return retNode;
+ return curNode;
}