Print entire substring instead of each character
diff --git a/tinyxml2.cpp b/tinyxml2.cpp
index af8ba5f..ebf2865 100755
--- a/tinyxml2.cpp
+++ b/tinyxml2.cpp
@@ -2066,8 +2066,11 @@
// entity, and keep looking.
if ( flag[(unsigned char)(*q)] ) {
while ( p < q ) {
- Print( "%c", *p );
- ++p;
+ const size_t delta = q - p;
+ // %.*s accepts type int as "precision"
+ const int toPrint = ( INT_MAX < delta ) ? INT_MAX : delta;
+ Print( "%.*s", toPrint, p );
+ p += toPrint;
}
for( int i=0; i<NUM_ENTITIES; ++i ) {
if ( entities[i].value == *q ) {