fix error string output when there is no formatting
diff --git a/tinyxml2.cpp b/tinyxml2.cpp
index d147ffe..6865d5e 100755
--- a/tinyxml2.cpp
+++ b/tinyxml2.cpp
@@ -2305,20 +2305,23 @@
     _errorLineNum = lineNum;

 	_errorStr.Reset();

 

-    if (format) {

-        size_t BUFFER_SIZE = 1000;

-        char* buffer = new char[BUFFER_SIZE];

-        TIXML_SNPRINTF(buffer, BUFFER_SIZE, "Error=%s ErrorID=%d (0x%x) Line number=%d: ", ErrorIDToName(error), int(error), int(error), lineNum);

-        size_t len = strlen(buffer);

+    size_t BUFFER_SIZE = 1000;

+    char* buffer = new char[BUFFER_SIZE];

 

-        va_list va;

-        va_start( va, format );

-        TIXML_VSNPRINTF( buffer + len, BUFFER_SIZE - len, format, va );

-        va_end( va );

+    TIXML_SNPRINTF(buffer, BUFFER_SIZE, "Error=%s ErrorID=%d (0x%x) Line number=%d", ErrorIDToName(error), int(error), int(error), lineNum);

 

-        _errorStr.SetStr(buffer);

-        delete [] buffer;

-    }

+	if (format) {

+		size_t len = strlen(buffer);

+		TIXML_SNPRINTF(buffer + len, BUFFER_SIZE - len, ": ");

+		len = strlen(buffer);

+

+		va_list va;

+		va_start(va, format);

+		TIXML_VSNPRINTF(buffer + len, BUFFER_SIZE - len, format, va);

+		va_end(va);

+	}

+	_errorStr.SetStr(buffer);

+	delete[] buffer;

 }

 

 

diff --git a/xmltest.cpp b/xmltest.cpp
index 91494ec..bb58986 100644
--- a/xmltest.cpp
+++ b/xmltest.cpp
@@ -567,6 +567,10 @@
 		XMLDocument doc;

 		doc.Parse( error );

 		XMLTest( "Bad XML", XML_ERROR_PARSING_ATTRIBUTE, doc.ErrorID() );

+		const char* errorStr = doc.ErrorStr();

+		XMLTest("Formatted error string",

+			"Error=XML_ERROR_PARSING_ATTRIBUTE ErrorID=8 (0x8) Line number=3: XMLElement name=wrong",

+			errorStr);

 	}

 

 	{

@@ -1160,6 +1164,12 @@
 		XMLDocument doc;

 		doc.Parse( str );

 		XMLTest( "Empty document error", XML_ERROR_EMPTY_DOCUMENT, doc.ErrorID() );

+

+		// But be sure there is an error string!

+		const char* errorStr = doc.ErrorStr();

+		XMLTest("Error string should be set",

+			"Error=XML_ERROR_EMPTY_DOCUMENT ErrorID=15 (0xf) Line number=0",

+			errorStr);

 	}

 

 	{