/** * Copyright (c) 2021 Dominic Masters * * This software is released under the MIT License. * https://opensource.org/licenses/MIT */ #pragma once #include #include #include #include #if defined(_MSC_VER) #include #define getcwd _getcwd #define FILE_PATH_SEP '\\' #elif defined(__GNUC__) #include #define FILE_PATH_SEP '/' #endif #ifndef STB_IMAGE_IMPLEMENTATION #define STB_IMAGE_IMPLEMENTATION #include #endif void fileNormalizeSlashes(char *string) { char c; int i = 0; while(c = string[i++]) { if(c != '\\' && c != '/') continue; string[i-1] = FILE_PATH_SEP; } } void fileMkdirp(char *path) { char buffer[FILENAME_MAX]; char c; int i = 0; bool inFile; bool hasMore; inFile = false; hasMore = false; while(c = path[i]) { if((c == '\\' || c == '/') && i > 0) { buffer[i] = '\0'; _mkdir(buffer); inFile = false; hasMore = false; buffer[i] = FILE_PATH_SEP; i++; continue; } if(c == '.') inFile = true; hasMore = true; buffer[i] = c; i++; } if(!inFile && hasMore) { buffer[i] = '\0'; _mkdir(buffer); } }