diff --git a/dev-libs/tinyxml/patches/tinyxml-2.6.2.patchset b/dev-libs/tinyxml/patches/tinyxml-2.6.2.patchset new file mode 100644 index 000000000..ea836f598 --- /dev/null +++ b/dev-libs/tinyxml/patches/tinyxml-2.6.2.patchset @@ -0,0 +1,80 @@ +From b26eb7cfd1164c717ece02c8fe2ee0bee9f21505 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zolt=C3=A1n=20Mizsei?= +Date: Fri, 5 Mar 2021 09:07:15 +0100 +Subject: Gentoo patches: tinyxml-2.6.1-entity.patch, + tinyxml-2.6.2-defineSTL.patch + + +diff --git a/tinyxml.cpp b/tinyxml.cpp +index 9c161df..fccd8dc 100644 +--- a/tinyxml.cpp ++++ b/tinyxml.cpp +@@ -57,30 +57,7 @@ void TiXmlBase::EncodeString( const TIXML_STRING& str, TIXML_STRING* outString ) + { + unsigned char c = (unsigned char) str[i]; + +- if ( c == '&' +- && i < ( (int)str.length() - 2 ) +- && str[i+1] == '#' +- && str[i+2] == 'x' ) +- { +- // Hexadecimal character reference. +- // Pass through unchanged. +- // © -- copyright symbol, for example. +- // +- // The -1 is a bug fix from Rob Laveaux. It keeps +- // an overflow from happening if there is no ';'. +- // There are actually 2 ways to exit this loop - +- // while fails (error case) and break (semicolon found). +- // However, there is no mechanism (currently) for +- // this function to return an error. +- while ( i<(int)str.length()-1 ) +- { +- outString->append( str.c_str() + i, 1 ); +- ++i; +- if ( str[i] == ';' ) +- break; +- } +- } +- else if ( c == '&' ) ++ if ( c == '&' ) + { + outString->append( entity[0].str, entity[0].strLength ); + ++i; +diff --git a/tinyxml.h b/tinyxml.h +index a3589e5..a6201b6 100644 +--- a/tinyxml.h ++++ b/tinyxml.h +@@ -26,6 +26,8 @@ distribution. + #ifndef TINYXML_INCLUDED + #define TINYXML_INCLUDED + ++#define TIXML_USE_STL 1 ++ + #ifdef _MSC_VER + #pragma warning( push ) + #pragma warning( disable : 4530 ) +diff --git a/xmltest.cpp b/xmltest.cpp +index 663c157..b38587f 100644 +--- a/xmltest.cpp ++++ b/xmltest.cpp +@@ -1366,6 +1366,16 @@ int main() + }*/ + } + ++ #ifdef TIXML_USE_STL ++ { ++ TiXmlDocument xml; ++ xml.Parse("foo&#xa+bar"); ++ std::string str; ++ str << xml; ++ XmlTest( "Entity escaping", "foo&#xa+bar", str.c_str() ); ++ } ++ #endif ++ + /* 1417717 experiment + { + TiXmlDocument xml; +-- +2.30.0 + diff --git a/dev-libs/tinyxml/tinyxml-2.6.2.recipe b/dev-libs/tinyxml/tinyxml-2.6.2.recipe index 73335724e..90e9aca68 100644 --- a/dev-libs/tinyxml/tinyxml-2.6.2.recipe +++ b/dev-libs/tinyxml/tinyxml-2.6.2.recipe @@ -8,11 +8,12 @@ document from scratch with C++ objects." HOMEPAGE="http://www.grinninglizard.com/tinyxml/index.html" COPYRIGHT="2001-2010 Lee Thomason" LICENSE="Zlib" -REVISION="4" +REVISION="5" SOURCE_URI="http://downloads.sourceforge.net/project/tinyxml/tinyxml/$portVersion/tinyxml_2_6_2.tar.gz" CHECKSUM_SHA256="15bdfdcec58a7da30adc87ac2b078e4417dbe5392f3afb719f9ba6d062645593" SOURCE_DIR="tinyxml" ADDITIONAL_FILES="Makefile" +PATCHES="tinyxml-$portVersion.patchset" ARCHITECTURES="x86_gcc2 x86 x86_64" SECONDARY_ARCHITECTURES="x86_gcc2 x86"