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/rbpaths.c | |
| parent | 3ced180f5de588ab2e817822d108463c372fd6eb (diff) | |
| download | rockbox-351c851d087b90d17ae97398f46a134b05bd2dfd.zip rockbox-351c851d087b90d17ae97398f46a134b05bd2dfd.tar.gz rockbox-351c851d087b90d17ae97398f46a134b05bd2dfd.tar.bz2 rockbox-351c851d087b90d17ae97398f46a134b05bd2dfd.tar.xz | |
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/rbpaths.c')
| -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 ddfcff4..8eebc1f 100644 --- a/firmware/common/rbpaths.c +++ b/firmware/common/rbpaths.c @@ -168,13 +168,21 @@ int app_remove(const char *name) int app_rename(const char *old, const char *new) { - char realpath[MAX_PATH]; - const char *fname = old; + char realpath_old[MAX_PATH], realpath_new[MAX_PATH]; + + const char *final_old = old; if (!strncmp(ROCKBOX_DIR, old, ROCKBOX_DIR_LEN)) { - fname = _get_user_file_path(old, NEED_WRITE, realpath, sizeof(realpath)); + final_old = _get_user_file_path(old, NEED_WRITE, realpath_old, sizeof(realpath_old)); + } + + const char *final_new = new; + if (!strncmp(ROCKBOX_DIR, new, ROCKBOX_DIR_LEN)) + { + final_new = _get_user_file_path(new, NEED_WRITE, realpath_new, sizeof(realpath_new)); } - return rename(fname, new); + + return rename(final_old, final_new); } DIR *app_opendir(const char *name) |