summaryrefslogtreecommitdiff
path: root/firmware/common/rbpaths.c
diff options
context:
space:
mode:
authorThomas Jarosch <tomj@simonv.com>2011-02-15 22:46:36 +0000
committerThomas Jarosch <tomj@simonv.com>2011-02-15 22:46:36 +0000
commit351c851d087b90d17ae97398f46a134b05bd2dfd (patch)
tree3218d6957e6033994ef4e7757baf4e38e7a176f0 /firmware/common/rbpaths.c
parent3ced180f5de588ab2e817822d108463c372fd6eb (diff)
downloadrockbox-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.c16
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)