From c1e0ea9a6c501dbcb47cba19496cc7f3c5deef53 Mon Sep 17 00:00:00 2001 From: Dave Murphy Date: Sun, 15 Jul 2018 19:57:39 +0100 Subject: [PATCH] move cwd fix to chdir --- nx/source/runtime/devices/fs_dev.c | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) 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; }