summaryrefslogtreecommitdiff
path: root/firmware/common/rbpaths.c
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/common/rbpaths.c')
-rw-r--r--firmware/common/rbpaths.c16
1 files changed, 12 insertions, 4 deletions
diff --git a/firmware/common/rbpaths.c b/firmware/common/rbpaths.c
index ddfcff47b7..8eebc1fe08 100644
--- a/firmware/common/rbpaths.c
+++ b/firmware/common/rbpaths.c
@@ -168,13 +168,21 @@ int app_remove(const char *name)
168 168
169int app_rename(const char *old, const char *new) 169int app_rename(const char *old, const char *new)
170{ 170{
171 char realpath[MAX_PATH]; 171 char realpath_old[MAX_PATH], realpath_new[MAX_PATH];
172 const char *fname = old; 172
173 const char *final_old = old;
173 if (!strncmp(ROCKBOX_DIR, old, ROCKBOX_DIR_LEN)) 174 if (!strncmp(ROCKBOX_DIR, old, ROCKBOX_DIR_LEN))
174 { 175 {
175 fname = _get_user_file_path(old, NEED_WRITE, realpath, sizeof(realpath)); 176 final_old = _get_user_file_path(old, NEED_WRITE, realpath_old, sizeof(realpath_old));
177 }
178
179 const char *final_new = new;
180 if (!strncmp(ROCKBOX_DIR, new, ROCKBOX_DIR_LEN))
181 {
182 final_new = _get_user_file_path(new, NEED_WRITE, realpath_new, sizeof(realpath_new));
176 } 183 }
177 return rename(fname, new); 184
185 return rename(final_old, final_new);
178} 186}
179 187
180DIR *app_opendir(const char *name) 188DIR *app_opendir(const char *name)