Merge pull request #196 from Dmitry-Me/wrapFopenCalls

Wrap fopen()/fopen_s() calls to avoid duplication
This commit is contained in:
Lee Thomason 2014-08-19 11:18:52 -07:00
commit 0b26702ac9
1 changed files with 17 additions and 17 deletions

View File

@ -1662,19 +1662,25 @@ XMLUnknown* XMLDocument::NewUnknown( const char* str )
return unk; return unk;
} }
static FILE* callfopen( const char* filepath, const char* mode )
{
#if defined(_MSC_VER) && (_MSC_VER >= 1400 ) && (!defined WINCE)
FILE* fp = 0;
errno_t err = fopen_s( &fp, filepath, mode );
if ( err ) {
return 0;
}
#else
FILE* fp = fopen( filepath, mode );
#endif
return fp;
}
XMLError XMLDocument::LoadFile( const char* filename ) XMLError XMLDocument::LoadFile( const char* filename )
{ {
Clear(); Clear();
FILE* fp = 0; FILE* fp = callfopen( filename, "rb" );
if ( !fp ) {
#if defined(_MSC_VER) && (_MSC_VER >= 1400 ) && (!defined WINCE)
errno_t err = fopen_s(&fp, filename, "rb" );
if ( !fp || err) {
#else
fp = fopen( filename, "rb" );
if ( !fp) {
#endif
SetError( XML_ERROR_FILE_NOT_FOUND, filename, 0 ); SetError( XML_ERROR_FILE_NOT_FOUND, filename, 0 );
return _errorID; return _errorID;
} }
@ -1732,14 +1738,8 @@ XMLError XMLDocument::LoadFile( FILE* fp )
XMLError XMLDocument::SaveFile( const char* filename, bool compact ) XMLError XMLDocument::SaveFile( const char* filename, bool compact )
{ {
FILE* fp = 0; FILE* fp = callfopen( filename, "w" );
#if defined(_MSC_VER) && (_MSC_VER >= 1400 ) && (!defined WINCE) if ( !fp ) {
errno_t err = fopen_s(&fp, filename, "w" );
if ( !fp || err) {
#else
fp = fopen( filename, "w" );
if ( !fp) {
#endif
SetError( XML_ERROR_FILE_COULD_NOT_BE_OPENED, filename, 0 ); SetError( XML_ERROR_FILE_COULD_NOT_BE_OPENED, filename, 0 );
return _errorID; return _errorID;
} }