all repos — mgba @ 10e794341aaee827cf9b2e839038fdff067cbdef

mGBA Game Boy Advance Emulator

GUI: Handle paths starting with / properly
Jeffrey Pfau jeffrey@endrift.com
Mon, 24 Aug 2015 19:35:44 -0700
commit

10e794341aaee827cf9b2e839038fdff067cbdef

parent

6ba239d3f3bc3093cc5ffec78d0c19dc229bcb03

1 files changed, 10 insertions(+), 1 deletions(-)

jump to
M src/util/gui/file-select.csrc/util/gui/file-select.c

@@ -26,6 +26,10 @@ char* end = strrchr(currentPath, '/');

if (!end) { return; } + if (end == currentPath) { + end[1] = '\0'; + return; + } end[0] = '\0'; if (end[1]) { return;

@@ -85,7 +89,12 @@ FileListDeinit(&currentFiles);

return false; } if (newInput & (1 << GUI_INPUT_SELECT)) { - snprintf(currentPath, sizeof(currentPath), "%s%c%s", currentPath, '/', *FileListGetPointer(&currentFiles, fileIndex)); + size_t len = strlen(currentPath); + const char* sep = PATH_SEP; + if (currentPath[len - 1] == *sep) { + sep = ""; + } + snprintf(currentPath, sizeof(currentPath), "%s%s%s", currentPath, sep, *FileListGetPointer(&currentFiles, fileIndex)); if (!_refreshDirectory(currentPath, &currentFiles)) { strncpy(outPath, currentPath, outLen); return true;