# # From http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/games-puzzle/enigma/files/enigma-1.01-xerces-c.patch?revision=1.2 # --- configure.ac 2008-11-18 14:09:53.724778996 +0500 +++ configure.ac3 2008-11-18 14:42:30.322032537 +0500 @@ -167,14 +167,14 @@ dnl ------------------------------------ dnl Check for xerces dnl ---------------------------------------- if test "$MINGW32" = yes; then - AC_MSG_CHECKING([for Xerces 3.0 experimental version]) - AC_EGREP_HEADER([gXercesMajVersion = 3],[xercesc/util/XercesVersion.hpp], + AC_MSG_CHECKING([for Xerces 3 version]) + AC_EGREP_HEADER([XERCES_VERSION_MAJOR 3],[xercesc/util/XercesVersion.hpp], [AC_MSG_RESULT([found])], [AC_MSG_ERROR([not found])]) AC_CHECK_LIB(xerces, main,,[AC_MSG_ERROR([xerces is required to compile Enigma])]) else - AC_MSG_CHECKING([for Xerces 3.0 experimental version]) - AC_EGREP_HEADER([gXercesMajVersion = 3],[xercesc/util/XercesVersion.hpp], + AC_MSG_CHECKING([for Xerces 3 version]) + AC_EGREP_HEADER([XERCES_VERSION_MAJOR 3],[xercesc/util/XercesVersion.hpp], xerces3exp="yes", xerces3exp="no") if test "x$xerces3exp" = xyes; then --- src/lev/ScoreManager.cc +++ src/lev/ScoreManager.cc @@ -65,15 +65,23 @@ class ScoreDomSerFilter : public DOMWriterFilter { #endif public: +#if _XERCES_VERSION >= 30000 + virtual DOMNodeFilter::FilterAction acceptNode(const DOMNode *node) const; +#else virtual short acceptNode(const DOMNode *node) const; +#endif virtual unsigned long getWhatToShow () const { return DOMNodeFilter::SHOW_ALL; } virtual void setWhatToShow (unsigned long toShow) {} }; - + +#if _XERCES_VERSION >= 30000 + DOMNodeFilter::FilterAction ScoreDomSerFilter::acceptNode(const DOMNode *node) const { +#else short ScoreDomSerFilter::acceptNode(const DOMNode *node) const { - if (node->getNodeType () == DOMNode::ELEMENT_NODE && +#endif + if (node->getNodeType () == DOMNode::ELEMENT_NODE && std::string(XMLtoUtf8(node->getNodeName()).c_str()) == "level") { const DOMElement *e = dynamic_cast(node); std::string id = XMLtoUtf8(e->getAttribute(Utf8ToXML("id").x_str())).c_str(); --- src/Utf8ToXML.cc~ 2008-12-29 00:12:26.000000000 +0600 +++ src/Utf8ToXML.cc 2008-12-29 00:15:19.000000000 +0600 @@ -40,11 +40,11 @@ } void Utf8ToXML::init(const char * const toTranscode) { - unsigned int srcLength = std::strlen(toTranscode) + 1; + XMLSize_t srcLength = std::strlen(toTranscode) + 1; // make safe assumptions on utf-16 size - unsigned int maxDestLength = srcLength; - unsigned int charsEaten; - unsigned int destLength; + XMLSize_t maxDestLength = srcLength; + XMLSize_t charsEaten; + XMLSize_t destLength; unsigned char *charSizes = new unsigned char[maxDestLength]; // just junk // make a buffer - size does not matter - the object is temporary xmlString = new XMLCh[maxDestLength]; --- src/XMLtoUtf8.cc~ 2008-12-29 00:12:12.000000000 +0600 +++ src/XMLtoUtf8.cc 2008-12-29 00:14:47.000000000 +0600 @@ -27,11 +27,11 @@ namespace enigma { XMLtoUtf8::XMLtoUtf8(const XMLCh* const toTranscode) { - unsigned int srcLength = XMLString::stringLen(toTranscode) + 1; + XMLSize_t srcLength = XMLString::stringLen(toTranscode) + 1; // make safe assumptions on utf-8 size - unsigned int maxDestLength = 3 * srcLength; - unsigned int charsEaten; - unsigned int destLength; + XMLSize_t maxDestLength = 3 * srcLength; + XMLSize_t charsEaten; + XMLSize_t destLength; // make a buffer - size does not matter - the object is temporary utf8String = new char[maxDestLength]; // transcode to utf-8 -- there are no unrepresentable chars .