Permalink
Browse files

3DS: Fix opening files in directory names with trailing slashes

  • Loading branch information...
endrift committed Jan 8, 2018
1 parent a796c16 commit 69db3f41a3acc87467ac698718d649327e70e74b
Showing with 16 additions and 3 deletions.
  1. +1 −0 CHANGES
  2. +15 −3 src/platform/3ds/3ds-vfs.c
View
@@ -35,6 +35,7 @@ Bugfixes:
- Qt: Fix locale being set to English on settings save (fixes mgba.io/i/906)
- LR35902: Fix watchpoints not reporting new value
- GBA Audio: Increase PSG volume (fixes mgba.io/i/932)
+ - 3DS: Fix opening files in directory names with trailing slashes
Misc:
- GBA Timer: Use global cycles for timers
- GBA: Extend oddly-sized ROMs to full address space (fixes mgba.io/i/722)
View
@@ -241,7 +241,11 @@ static struct VFile* _vd3dOpenFile(struct VDir* vd, const char* path, int mode)
}
const char* dir = vd3d->path;
char* combined = malloc(sizeof(char) * (strlen(path) + strlen(dir) + 2));
- sprintf(combined, "%s/%s", dir, path);
+ if (dir[strlen(dir) - 1] == '/') {
+ sprintf(combined, "%s%s", dir, path);
+ } else {
+ sprintf(combined, "%s/%s", dir, path);
+ }
struct VFile* file = VFileOpen(combined, mode);
free(combined);
@@ -255,7 +259,11 @@ static struct VDir* _vd3dOpenDir(struct VDir* vd, const char* path) {
}
const char* dir = vd3d->path;
char* combined = malloc(sizeof(char) * (strlen(path) + strlen(dir) + 2));
- sprintf(combined, "%s/%s", dir, path);
+ if (dir[strlen(dir) - 1] == '/') {
+ sprintf(combined, "%s%s", dir, path);
+ } else {
+ sprintf(combined, "%s/%s", dir, path);
+ }
struct VDir* vd2 = VDirOpen(combined);
if (!vd2) {
@@ -272,7 +280,11 @@ static bool _vd3dDeleteFile(struct VDir* vd, const char* path) {
}
const char* dir = vd3d->path;
char* combined = malloc(sizeof(char) * (strlen(path) + strlen(dir) + 2));
- sprintf(combined, "%s/%s", dir, path);
+ if (dir[strlen(dir) - 1] == '/') {
+ sprintf(combined, "%s%s", dir, path);
+ } else {
+ sprintf(combined, "%s/%s", dir, path);
+ }
uint16_t utf16Path[PATH_MAX + 1];
ssize_t units = utf8_to_utf16(utf16Path, (const uint8_t*) combined, PATH_MAX);

0 comments on commit 69db3f4

Please sign in to comment.