diff options
author | Thomas Jarosch <tomj@simonv.com> | 2011-02-15 22:46:36 +0000 |
---|---|---|
committer | Thomas Jarosch <tomj@simonv.com> | 2011-02-15 22:46:36 +0000 |
commit | 351c851d087b90d17ae97398f46a134b05bd2dfd (patch) | |
tree | 3218d6957e6033994ef4e7757baf4e38e7a176f0 /firmware/common | |
parent | 3ced180f5de588ab2e817822d108463c372fd6eb (diff) | |
download | rockbox-351c851d087b90d17ae97398f46a134b05bd2dfd.tar.gz rockbox-351c851d087b90d17ae97398f46a134b05bd2dfd.zip |
RaaA: app_rename() must also do ROCKBOX_DIR translation for the target path
Fixes the "recent bookmarks" feature
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29316 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/common')
-rw-r--r-- | firmware/common/rbpaths.c | 16 |
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 | ||
169 | int app_rename(const char *old, const char *new) | 169 | int 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 | ||
180 | DIR *app_opendir(const char *name) | 188 | DIR *app_opendir(const char *name) |