1
0
mirror of https://github.com/leethomason/tinyxml2.git synced 2026-07-29 15:13:01 +04:00

Compare commits

..

5 Commits

Author SHA1 Message Date
copilot-swe-agent[bot] a77e6a9e3f Initial plan 2025-11-22 23:56:12 +00:00
Lee Thomason 888bbb912a Merge branch 'MattHuangGarmin-master' into leethomason/fallthrough 2025-11-22 15:47:41 -08:00
Lee Thomason 9c09e46619 move to cpp file 2025-11-22 15:46:45 -08:00
Lee Thomason 6d6285b18a Merge branch 'master' of github.com:MattHuangGarmin/tinyxml2 into MattHuangGarmin-master 2025-11-22 15:44:05 -08:00
MattHuangGarmin be7b5a107f Fix GCC 4.9.3 Build Errors
Since GCC version 4.9.3 does not support the -Wimplicit-fallthrough warning option or the __attribute__((fallthrough)) annotation,
introduce the corresponding fixes to prevent build errors.
2025-11-04 14:40:21 +08:00
2 changed files with 34 additions and 16 deletions
+4 -4
View File
@@ -59,7 +59,7 @@ browsers or have more complete XML needs, TinyXML-2 is not the parser for you.
TinyXML-1 vs. TinyXML-2 TinyXML-1 vs. TinyXML-2
----------------------- -----------------------
TinyXML-2 has long been the focus of all development. It is well tested TinyXML-2 long been the focus of all development. It is well tested
and should be used instead of TinyXML-1. and should be used instead of TinyXML-1.
TinyXML-2 uses a similar API to TinyXML-1 and the same TinyXML-2 uses a similar API to TinyXML-1 and the same
@@ -145,7 +145,7 @@ It essentially causes the XML to be parsed twice.
For applications that need to know about text nodes that are composed entirely of For applications that need to know about text nodes that are composed entirely of
whitespace, PEDANTIC_WHITESPACE is available. PEDANTIC_WHITESPACE maintains all the whitespace, PEDANTIC_WHITESPACE is available. PEDANTIC_WHITESPACE maintains all the
whitespace between elements. whilespace between elements.
PEDANTIC_WHITESPACE is a new mode and not as tested as the other whitespace modes. PEDANTIC_WHITESPACE is a new mode and not as tested as the other whitespace modes.
@@ -178,7 +178,7 @@ will have the Value() of "Far & Away" when queried from the XMLText object,
and will be written back to the XML stream/file as an ampersand. and will be written back to the XML stream/file as an ampersand.
Additionally, any character can be specified by its Unicode code point: Additionally, any character can be specified by its Unicode code point:
The syntax ` ` or ` ` both refer to the non-breaking space character. The syntax ` ` or ` ` are both to the non-breaking space character.
This is called a 'numeric character reference'. Any numeric character reference This is called a 'numeric character reference'. Any numeric character reference
that isn't one of the special entities above, will be read, but written as a that isn't one of the special entities above, will be read, but written as a
regular code point. The output is correct, but the entity syntax isn't preserved. regular code point. The output is correct, but the entity syntax isn't preserved.
@@ -270,7 +270,7 @@ tinyxml2.h files in your project and build with your other source code.
There is also a CMake build included. CMake is the general build for TinyXML-2. There is also a CMake build included. CMake is the general build for TinyXML-2.
(Additional build systems are costly to maintain, and tend to become outdated. They are (Additional build systems are costly to maintain, and tend to bit-rot. They are
being removed over time.) being removed over time.)
Building TinyXML-2 - Using vcpkg Building TinyXML-2 - Using vcpkg
+30 -12
View File
@@ -36,20 +36,38 @@ distribution.
#ifndef __has_attribute #ifndef __has_attribute
# define __has_attribute(x) 0 # define __has_attribute(x) 0
#endif #endif
#ifndef __has_cpp_attribute #ifdef __cplusplus
# define __has_cpp_attribute(x) 0 # ifndef __has_cpp_attribute
# define __has_cpp_attribute(x) 0
# endif
#else
# ifndef __has_c_attribute
# define __has_c_attribute(x) 0
# endif
#endif #endif
#if defined(_MSC_VER) #ifdef __cplusplus
# define TIXML_FALLTHROUGH (void(0)) # if defined(_MSC_VER)
#elif (__cplusplus >= 201703L && __has_cpp_attribute(fallthrough)) # define TIXML_FALLTHROUGH (void(0))
# define TIXML_FALLTHROUGH [[fallthrough]] # elif (__cplusplus >= 201703L && __has_cpp_attribute(fallthrough))
#elif __has_cpp_attribute(clang::fallthrough) # define TIXML_FALLTHROUGH [[fallthrough]]
# define TIXML_FALLTHROUGH [[clang::fallthrough]] # elif __has_cpp_attribute(clang::fallthrough)
#elif __has_attribute(fallthrough) # define TIXML_FALLTHROUGH [[clang::fallthrough]]
# define TIXML_FALLTHROUGH __attribute__((fallthrough)) # elif __has_attribute(fallthrough)
# define TIXML_FALLTHROUGH __attribute__((fallthrough))
# else
# define TIXML_FALLTHROUGH (void(0))
# endif
#else #else
# define TIXML_FALLTHROUGH (void(0)) # if defined(_MSC_VER)
# define TIXML_FALLTHROUGH (void(0))
# elif __has_c_attribute(fallthrough)
# define TIXML_FALLTHROUGH [[fallthrough]]
# elif __has_attribute(fallthrough)
# define TIXML_FALLTHROUGH __attribute__((fallthrough))
# else
# define TIXML_FALLTHROUGH (void(0))
# endif
#endif #endif
@@ -2656,7 +2674,7 @@ void XMLPrinter::Write( const char* data, size_t size )
fwrite ( data , sizeof(char), size, _fp); fwrite ( data , sizeof(char), size, _fp);
} }
else { else {
char* p = _buffer.PushArr( size ) - 1; // back up over the null terminator. char* p = _buffer.PushArr( static_cast<int>(size) ) - 1; // back up over the null terminator.
memcpy( p, data, size ); memcpy( p, data, size );
p[size] = 0; p[size] = 0;
} }