all repos — mgba @ a992fcd3d1bc0e20b478b047301e7c11badfe572

mGBA Game Boy Advance Emulator

VFS: Move VDirOptionalOpenFile to vfs-dirent.c
Jeffrey Pfau jeffrey@endrift.com
Thu, 18 Jun 2015 01:16:54 -0700
commit

a992fcd3d1bc0e20b478b047301e7c11badfe572

parent

c0fcec22b71e93d46300e8540a0870e2d9af810a

2 files changed, 28 insertions(+), 28 deletions(-)

jump to
M src/util/vfs.csrc/util/vfs.c

@@ -17,34 +17,6 @@ }

return buffer[bytesRead] = '\0'; } -struct VFile* VDirOptionalOpenFile(struct VDir* dir, const char* realPath, const char* prefix, const char* suffix, int mode) { - char path[PATH_MAX]; - path[PATH_MAX - 1] = '\0'; - struct VFile* vf; - if (!dir) { - if (!realPath) { - return 0; - } - char* dotPoint = strrchr(realPath, '.'); - if (dotPoint - realPath + 1 >= PATH_MAX - 1) { - return 0; - } - if (dotPoint > strrchr(realPath, '/')) { - int len = dotPoint - realPath; - strncpy(path, realPath, len); - path[len] = 0; - strncat(path + len, suffix, PATH_MAX - len - 1); - } else { - snprintf(path, PATH_MAX - 1, "%s%s", realPath, suffix); - } - vf = VFileOpen(path, mode); - } else { - snprintf(path, PATH_MAX - 1, "%s%s", prefix, suffix); - vf = dir->openFile(dir, path, mode); - } - return vf; -} - ssize_t VFileWrite32LE(struct VFile* vf, int32_t word) { uint32_t leword; STORE_32LE(word, 0, &leword);
M src/util/vfs/vfs-dirent.csrc/util/vfs/vfs-dirent.c

@@ -190,3 +190,31 @@ return vdede->ent->d_name;

} return 0; } + +struct VFile* VDirOptionalOpenFile(struct VDir* dir, const char* realPath, const char* prefix, const char* suffix, int mode) { + char path[PATH_MAX]; + path[PATH_MAX - 1] = '\0'; + struct VFile* vf; + if (!dir) { + if (!realPath) { + return 0; + } + char* dotPoint = strrchr(realPath, '.'); + if (dotPoint - realPath + 1 >= PATH_MAX - 1) { + return 0; + } + if (dotPoint > strrchr(realPath, '/')) { + int len = dotPoint - realPath; + strncpy(path, realPath, len); + path[len] = 0; + strncat(path + len, suffix, PATH_MAX - len - 1); + } else { + snprintf(path, PATH_MAX - 1, "%s%s", realPath, suffix); + } + vf = VFileOpen(path, mode); + } else { + snprintf(path, PATH_MAX - 1, "%s%s", prefix, suffix); + vf = dir->openFile(dir, path, mode); + } + return vf; +}