From 2ec7a4ba4c18089d09764afa237ddf0bd67040f7 Mon Sep 17 00:00:00 2001 From: wiz Date: Sun, 16 Feb 2014 23:16:05 +0000 Subject: [PATCH] Fix entity encoding. From http://sourceforge.net/p/tinyxml/patches/51/ Bump PKGREVISION. --- textproc/tinyxml/Makefile | 8 ++--- textproc/tinyxml/distinfo | 4 ++- textproc/tinyxml/patches/patch-tinyxml.cpp | 39 ++++++++++++++++++++++ textproc/tinyxml/patches/patch-xmltest.cpp | 24 +++++++++++++ 4 files changed, 70 insertions(+), 5 deletions(-) create mode 100644 textproc/tinyxml/patches/patch-tinyxml.cpp create mode 100644 textproc/tinyxml/patches/patch-xmltest.cpp diff --git a/textproc/tinyxml/Makefile b/textproc/tinyxml/Makefile index bf8d5ba734d8..b56cfe0d8bb9 100644 --- a/textproc/tinyxml/Makefile +++ b/textproc/tinyxml/Makefile @@ -1,8 +1,8 @@ -# $NetBSD: Makefile,v 1.1 2014/02/16 23:05:33 wiz Exp $ +# $NetBSD: Makefile,v 1.2 2014/02/16 23:16:05 wiz Exp $ -PKGVERSION= 2.6.2 -DISTNAME= tinyxml_${PKGVERSION:S/./_/g} -PKGNAME= tinyxml-${PKGVERSION} +DISTNAME= tinyxml_2_6_2 +PKGNAME= tinyxml-2.6.2 +PKGREVISION= 1 CATEGORIES= textproc devel lang MASTER_SITES= ${MASTER_SITE_SOURCEFORGE:=tinyxml/} EXTRACT_SUFX= .zip diff --git a/textproc/tinyxml/distinfo b/textproc/tinyxml/distinfo index 0f95ae7fb01e..01973d23a390 100644 --- a/textproc/tinyxml/distinfo +++ b/textproc/tinyxml/distinfo @@ -1,6 +1,8 @@ -$NetBSD: distinfo,v 1.1 2014/02/16 23:05:33 wiz Exp $ +$NetBSD: distinfo,v 1.2 2014/02/16 23:16:05 wiz Exp $ SHA1 (tinyxml_2_6_2.zip) = a425a22ff331dafa570b2a508a37a85a4eaa4127 RMD160 (tinyxml_2_6_2.zip) = 162880af0cb1a284268cc18ec582f51c55120a76 Size (tinyxml_2_6_2.zip) = 290881 bytes +SHA1 (patch-tinyxml.cpp) = 2f5c988d9acbf269e3d6b86eb02ee236a3cf074c SHA1 (patch-tinyxml.h) = aa78b0b8764e460cdab43530ad951ccbe24feef9 +SHA1 (patch-xmltest.cpp) = 3c8674e24bc9d8b3156943e2d3ebe504a63b7a8f diff --git a/textproc/tinyxml/patches/patch-tinyxml.cpp b/textproc/tinyxml/patches/patch-tinyxml.cpp new file mode 100644 index 000000000000..631559536035 --- /dev/null +++ b/textproc/tinyxml/patches/patch-tinyxml.cpp @@ -0,0 +1,39 @@ +$NetBSD: patch-tinyxml.cpp,v 1.1 2014/02/16 23:16:05 wiz Exp $ + +Fix entity encoding. From +http://sourceforge.net/p/tinyxml/patches/51/ + +--- tinyxml.cpp.orig 2011-05-15 02:24:57.000000000 +0000 ++++ tinyxml.cpp +@@ -57,30 +57,7 @@ void TiXmlBase::EncodeString( const TIXM + { + 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/textproc/tinyxml/patches/patch-xmltest.cpp b/textproc/tinyxml/patches/patch-xmltest.cpp new file mode 100644 index 000000000000..ad486a651adc --- /dev/null +++ b/textproc/tinyxml/patches/patch-xmltest.cpp @@ -0,0 +1,24 @@ +$NetBSD: patch-xmltest.cpp,v 1.1 2014/02/16 23:16:05 wiz Exp $ + +Fix entity encoding. From +http://sourceforge.net/p/tinyxml/patches/51/ + +--- xmltest.cpp.orig 2011-05-15 02:24:57.000000000 +0000 ++++ 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;