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 ) {