diff options
Diffstat (limited to 'meta-oe/recipes-support/libtinyxml/libtinyxml/entity-encoding.patch')
-rw-r--r-- | meta-oe/recipes-support/libtinyxml/libtinyxml/entity-encoding.patch | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/meta-oe/recipes-support/libtinyxml/libtinyxml/entity-encoding.patch b/meta-oe/recipes-support/libtinyxml/libtinyxml/entity-encoding.patch new file mode 100644 index 0000000000..b801506eae --- /dev/null +++ b/meta-oe/recipes-support/libtinyxml/libtinyxml/entity-encoding.patch @@ -0,0 +1,62 @@ +Description: TinyXML incorrectly encodes text element containing + an ampersand followed by either x or #. + +Origin: http://sourceforge.net/tracker/index.php?func=detail&aid=3031828&group_id=13559&atid=313559 + +Upstream-Status: Pending + +diff -u -r1.105 tinyxml.cpp +--- a/tinyxml.cpp ++++ b/tinyxml.cpp +@@ -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; +diff -u -r1.89 xmltest.cpp +--- a/xmltest.cpp ++++ b/xmltest.cpp +@@ -1340,6 +1340,16 @@ + }*/ + } + ++ #ifdef TIXML_USE_STL ++ { ++ TiXmlDocument xml; ++ xml.Parse("<foo>foo&#xa+bar</foo>"); ++ std::string str; ++ str << xml; ++ XmlTest( "Entity escaping", "<foo>foo&#xa+bar</foo>", str.c_str() ); ++ } ++ #endif ++ + /* 1417717 experiment + { + TiXmlDocument xml; |