From 351c851d087b90d17ae97398f46a134b05bd2dfd Mon Sep 17 00:00:00 2001 From: Thomas Jarosch Date: Tue, 15 Feb 2011 22:46:36 +0000 Subject: 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 --- firmware/common/rbpaths.c | 16 ++++++++++++---- 1 file 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) 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) -- cgit v1.2.3