From 3c4a7f750afbb05c9f478cfef08c530ef40514d1 Mon Sep 17 00:00:00 2001 From: Kevin Lo Date: Mon, 26 Jul 2010 07:33:50 +0000 Subject: Fix incorrect entity encoding, results in invalid XML. Pointing this out by jsa@ Obtained from: upstream --- textproc/tinyxml/Makefile | 1 + textproc/tinyxml/files/patch-tinyxml.cpp | 34 ++++++++++++++++++++++++++++++++ 2 files changed, 35 insertions(+) create mode 100644 textproc/tinyxml/files/patch-tinyxml.cpp (limited to 'textproc/tinyxml') diff --git a/textproc/tinyxml/Makefile b/textproc/tinyxml/Makefile index 640be90d392a..7691d7505960 100644 --- a/textproc/tinyxml/Makefile +++ b/textproc/tinyxml/Makefile @@ -7,6 +7,7 @@ PORTNAME= tinyxml PORTVERSION= 2.6.1 +PORTREVISION= 1 CATEGORIES= textproc MASTER_SITES= SF DISTNAME= ${PORTNAME}_${PORTVERSION:S/./_/g} diff --git a/textproc/tinyxml/files/patch-tinyxml.cpp b/textproc/tinyxml/files/patch-tinyxml.cpp new file mode 100644 index 000000000000..45e8fe835194 --- /dev/null +++ b/textproc/tinyxml/files/patch-tinyxml.cpp @@ -0,0 +1,34 @@ +--- tinyxml.cpp.orig 2010-03-23 13:16:36.000000000 +0800 ++++ tinyxml.cpp 2010-07-26 15:28:06.000000000 +0800 +@@ -57,30 +57,7 @@ + { + 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; -- cgit v1.2.3