diff --git a/tinyxml2.cpp b/tinyxml2.cpp index af8ba5f..ebf2865 100755 --- a/tinyxml2.cpp +++ b/tinyxml2.cpp @@ -2066,8 +2066,11 @@ void XMLPrinter::PrintString( const char* p, bool restricted ) // 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