From b0845528081e33a163ad50707310f848046352b4 Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 4 Mar 2021 20:36:04 +0100 Subject: [PATCH] ADDED: Config flag: SUPPORT_STANDARD_FILEIO This new flag allows omitting stdio.h library in case of a custom implementation is used. --- src/config.h | 2 ++ src/textures.c | 1 - src/utils.c | 32 ++++++++++++++++++++++++++++---- 3 files changed, 30 insertions(+), 5 deletions(-) diff --git a/src/config.h b/src/config.h index ce943901d..d0c8cfdd9 100644 --- a/src/config.h +++ b/src/config.h @@ -203,6 +203,8 @@ //------------------------------------------------------------------------------------ // Module: utils - Configuration Flags //------------------------------------------------------------------------------------ +// Standard file io library (stdio.h) included +#define SUPPORT_STANDARD_FILEIO // Show TRACELOG() output messages // NOTE: By default LOG_DEBUG traces not shown #define SUPPORT_TRACELOG 1 diff --git a/src/textures.c b/src/textures.c index ea3bd3712..0d78c2a26 100644 --- a/src/textures.c +++ b/src/textures.c @@ -65,7 +65,6 @@ #endif #include // Required for: malloc(), free() -#include // Required for: FILE, fopen(), fclose(), fread() #include // Required for: strlen() [Used in ImageTextEx()] #include // Required for: fabsf() diff --git a/src/utils.c b/src/utils.c index 000be3730..568c6c886 100644 --- a/src/utils.c +++ b/src/utils.c @@ -45,8 +45,8 @@ #include // Required for: Android assets manager: AAsset, AAssetManager_open(), ... #endif -#include // Required for: exit(), FILE, fopen(), fseek(), ftell(), fread(), fwrite(), fprintf(), fclose() -#include // Required for: vprintf() +#include // Required for: exit() +#include // Required for: FILE, fopen(), fseek(), ftell(), fread(), fwrite(), fprintf(), vprintf(), fclose() #include // Required for: va_list, va_start(), va_end() #include // Required for: strcpy(), strcat() @@ -209,7 +209,7 @@ unsigned char *LoadFileData(const char *fileName, unsigned int *bytesRead) data = loadFileData(fileName, bytesRead); return data; } - +#if defined(SUPPORT_STANDARD_FILEIO) FILE *file = fopen(fileName, "rb"); if (file != NULL) @@ -236,6 +236,9 @@ unsigned char *LoadFileData(const char *fileName, unsigned int *bytesRead) fclose(file); } else TRACELOG(LOG_WARNING, "FILEIO: [%s] Failed to open file", fileName); +#else + TRACELOG(LOG_WARNING, "FILEIO: Standard file io not supported, use custom file callback"); +#endif } else TRACELOG(LOG_WARNING, "FILEIO: File name provided is not valid"); @@ -260,7 +263,7 @@ bool SaveFileData(const char *fileName, void *data, unsigned int bytesToWrite) saveFileData(fileName, data, bytesToWrite); return success; } - +#if defined(SUPPORT_STANDARD_FILEIO) FILE *file = fopen(fileName, "wb"); if (file != NULL) @@ -275,6 +278,9 @@ bool SaveFileData(const char *fileName, void *data, unsigned int bytesToWrite) if (result == 0) success = true; } else TRACELOG(LOG_WARNING, "FILEIO: [%s] Failed to open file", fileName); +#else + TRACELOG(LOG_WARNING, "FILEIO: Standard file io not supported, use custom file callback"); +#endif } else TRACELOG(LOG_WARNING, "FILEIO: File name provided is not valid"); @@ -289,6 +295,12 @@ char *LoadFileText(const char *fileName) if (fileName != NULL) { + if (loadFileText) + { + text = loadFileText(fileName); + return text; + } +#if defined(SUPPORT_STANDARD_FILEIO) FILE *file = fopen(fileName, "rt"); if (file != NULL) @@ -319,6 +331,9 @@ char *LoadFileText(const char *fileName) fclose(file); } else TRACELOG(LOG_WARNING, "FILEIO: [%s] Failed to open text file", fileName); +#else + TRACELOG(LOG_WARNING, "FILEIO: Standard file io not supported, use custom file callback"); +#endif } else TRACELOG(LOG_WARNING, "FILEIO: File name provided is not valid"); @@ -338,6 +353,12 @@ bool SaveFileText(const char *fileName, char *text) if (fileName != NULL) { + if (saveFileText) + { + saveFileText(fileName, text); + return success; + } +#if defined(SUPPORT_STANDARD_FILEIO) FILE *file = fopen(fileName, "wt"); if (file != NULL) @@ -351,6 +372,9 @@ bool SaveFileText(const char *fileName, char *text) if (result == 0) success = true; } else TRACELOG(LOG_WARNING, "FILEIO: [%s] Failed to open text file", fileName); +#else + TRACELOG(LOG_WARNING, "FILEIO: Standard file io not supported, use custom file callback"); +#endif } else TRACELOG(LOG_WARNING, "FILEIO: File name provided is not valid");