mirror of
git://git.openembedded.org/meta-openembedded
synced 2026-08-22 05:03:35 +00:00
This imports the recipe for TinyXML from meta-WebOS@e5c99c2cf, does some minor fixes on the recipe and import the patches included in the Debian package. We use PR as r5 to ensure the package is updated when removed from meta-WebOS layer. Signed-off-by: Otavio Salvador <otavio@ossystems.com.br> Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
63 lines
1.5 KiB
Diff
63 lines
1.5 KiB
Diff
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;
|