diff --git a/nx/source/runtime/devices/fs_dev.c b/nx/source/runtime/devices/fs_dev.c index 149bebe9..a5b3c31e 100644 --- a/nx/source/runtime/devices/fs_dev.c +++ b/nx/source/runtime/devices/fs_dev.c @@ -199,13 +199,6 @@ fsdev_fixpath(struct _reent *r, strncpy(__fixedpath, path, PATH_MAX); else { - size_t __cwd_len = strlen(__cwd); - - if (__cwd[__cwd_len-1] != '/' && __cwd_len < PATH_MAX) - { - __cwd[__cwd_len] = '/'; - } - strncpy(__fixedpath, __cwd, PATH_MAX); __fixedpath[PATH_MAX] = '\0'; strncat(__fixedpath, path, PATH_MAX - strlen(__cwd)); @@ -1046,8 +1039,16 @@ fsdev_chdir(struct _reent *r, if(R_SUCCEEDED(rc)) { fsDirClose(&fd); - strncpy(__cwd, __fixedpath, PATH_MAX); + strncpy(__cwd, fs_path, PATH_MAX); __cwd[PATH_MAX] = '\0'; + + size_t __cwd_len = strlen(__cwd); + + if (__cwd[__cwd_len-1] != '/' && __cwd_len < PATH_MAX) + { + __cwd[__cwd_len] = '/'; + } + fsdev_fsdevice_cwd = device->id; return 0; }