1
0
Эх сурвалжийг харах

Made SaveFile symmetrical with LoadFile
Added overload taking a FILE pointer
Return error code (if any) instead of void

Ken Miller 14 жил өмнө
parent
commit
81da1fb26b
2 өөрчлөгдсөн 25 нэмэгдсэн , 8 устгасан
  1. 14 7
      tinyxml2.cpp
  2. 11 1
      tinyxml2.h

+ 14 - 7
tinyxml2.cpp

@@ -1407,7 +1407,7 @@ int XMLDocument::LoadFile( FILE* fp )
 }
 
 
-void XMLDocument::SaveFile( const char* filename )
+int XMLDocument::SaveFile( const char* filename )
 {
 #if defined(_MSC_VER)
 #pragma warning ( push )
@@ -1417,14 +1417,21 @@ void XMLDocument::SaveFile( const char* filename )
 #if defined(_MSC_VER)
 #pragma warning ( pop )
 #endif
-	if ( fp ) {
-		XMLPrinter stream( fp );
-		Print( &stream );
-		fclose( fp );
-	}
-	else {
+	if ( !fp ) {
 		SetError( XML_ERROR_FILE_COULD_NOT_BE_OPENED, filename, 0 );
+		return errorID;
 	}
+	SaveFile(fp);
+	fclose( fp );
+	return errorID;
+}
+
+
+int XMLDocument::SaveFile( FILE* fp )
+{
+	XMLPrinter stream( fp );
+	Print( &stream );
+	return errorID;
 }
 
 

+ 11 - 1
tinyxml2.h

@@ -1024,8 +1024,18 @@ public:
 	int LoadFile( FILE* );
 	/**
 		Save the XML file to disk.
+		Returns XML_NO_ERROR (0) on success, or
+		an errorID.
+	*/
+	int SaveFile( const char* filename );
+	/**
+		Save the XML file to disk.  You are responsible
+		for providing and closing the FILE*.
+
+		Returns XML_NO_ERROR (0) on success, or
+		an errorID.
 	*/
-	void SaveFile( const char* filename );
+	int SaveFile( FILE* );
 
 	bool ProcessEntities() const						{ return processEntities; }