Merge pull request #305 from Dmitry-Me/errorShouldBeClearedAfterLoad

If LoadFile() fails then subsequent successful LoadFile() must clear the error
diff --git a/tinyxml2.cpp b/tinyxml2.cpp
index 6a7ca07..af8ba5f 100755
--- a/tinyxml2.cpp
+++ b/tinyxml2.cpp
@@ -1879,6 +1879,9 @@
 

 XMLError XMLDocument::SaveFile( FILE* fp, bool compact )

 {

+    // Clear any error from the last save, otherwise it will get reported

+    // for *this* call.

+    SetError( XML_NO_ERROR, 0, 0 );

     XMLPrinter stream( fp, compact );

     Print( &stream );

     return _errorID;

diff --git a/xmltest.cpp b/xmltest.cpp
index ffff2f8..d090863 100644
--- a/xmltest.cpp
+++ b/xmltest.cpp
@@ -1433,6 +1433,14 @@
 		XMLPrinter printer;

 		newElement->Accept( &printer );

 	}

+	{

+		// Issue 302. Clear errors from LoadFile/SaveFile

+		XMLDocument doc;

+		doc.SaveFile( "./no/such/path/pretty.xml" );

+		XMLTest( "Issue 302. Fail to save", doc.ErrorName(), "XML_ERROR_FILE_COULD_NOT_BE_OPENED" );

+		doc.SaveFile( "./resources/out/compact.xml", true );

+		XMLTest( "Issue 302. Subsequent success in saving", doc.ErrorName(), "XML_SUCCESS" );

+	}

 

 	{

 		// If a document fails to load then subsequent