From e32b3360aa54366a01987e9f952ef340761d5d37 Mon Sep 17 00:00:00 2001 From: Samuel Lee Date: Thu, 11 Apr 2019 02:33:51 +0900 Subject: [PATCH] Fix for MSVC LoadDataFromFile/SaveDataToFile use fopen with unsupport file mode 'e' in MSVC. --- src/ccutil/genericvector.h | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/src/ccutil/genericvector.h b/src/ccutil/genericvector.h index e24d2231e6..bbf405e5e3 100644 --- a/src/ccutil/genericvector.h +++ b/src/ccutil/genericvector.h @@ -374,7 +374,15 @@ using FileWriter = bool (*)(const GenericVector&, const STRING&); // returning false on error. inline bool LoadDataFromFile(const char* filename, GenericVector* data) { bool result = false; - FILE* fp = fopen(filename, "rbe"); + FILE* fp = nullptr; + + // For MSVC + #if defined(_MSC_VER) + fp = fopen(filename, "rb"); + #else + fp = fopen(filename, "rbe"); + #endif + if (fp != nullptr) { fseek(fp, 0, SEEK_END); long size = ftell(fp); @@ -400,7 +408,15 @@ inline bool LoadDataFromFile(const STRING& filename, // returning false on error. inline bool SaveDataToFile(const GenericVector& data, const STRING& filename) { - FILE* fp = fopen(filename.string(), "wbe"); + FILE* fp = nullptr; + + // For MSVC + #if defined(_MSC_VER) + fp = fopen(filename.string(), "wb"); + #else + fp = fopen(filename.string(), "wbe"); + #endif + if (fp == nullptr) { return false; }