From 771011a6fc935dd8fa30641971678d7e38821f2a Mon Sep 17 00:00:00 2001 From: Thomas Martitz Date: Thu, 27 Jan 2011 21:09:25 +0000 Subject: RaaA: Fix database duplication issue on every start The code in tagcache.c:commit() was unable to delete the to-be-commited database file as it read from $(HOME)/.config/rockbox.org and tried to delete the file later on in /.rockbox/. As we didn't specify any flags like IS_FILE or NEED_WRITE in _get_user_file_path() (which is called by f.e. app_remove()), it searched for the file in two places. In case of app_rename() IS_FILE would be wrong, so we just add a NEED_WRITE to any write operation. Author: Thomas Jarosch git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29148 a1c6a512-1295-4272-9138-f99709370657 --- firmware/common/rbpaths.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'firmware/common/rbpaths.c') diff --git a/firmware/common/rbpaths.c b/firmware/common/rbpaths.c index c82e0f2dce..2d3c1e6603 100644 --- a/firmware/common/rbpaths.c +++ b/firmware/common/rbpaths.c @@ -160,8 +160,9 @@ int app_remove(const char *name) const char *fname = name; if (!strncmp(ROCKBOX_DIR, name, ROCKBOX_DIR_LEN)) { - fname = _get_user_file_path(name, 0, realpath, sizeof(realpath)); + fname = _get_user_file_path(name, NEED_WRITE, realpath, sizeof(realpath)); } + return remove(fname); } @@ -171,7 +172,7 @@ int app_rename(const char *old, const char *new) const char *fname = old; if (!strncmp(ROCKBOX_DIR, old, ROCKBOX_DIR_LEN)) { - fname = _get_user_file_path(old, 0, realpath, sizeof(realpath)); + fname = _get_user_file_path(old, NEED_WRITE, realpath, sizeof(realpath)); } return rename(fname, new); } @@ -193,7 +194,7 @@ int app_mkdir(const char* name) const char *fname = name; if (!strncmp(ROCKBOX_DIR, name, ROCKBOX_DIR_LEN)) { - fname = _get_user_file_path(name, 0, realpath, sizeof(realpath)); + fname = _get_user_file_path(name, NEED_WRITE, realpath, sizeof(realpath)); } return mkdir(fname); } @@ -204,8 +205,7 @@ int app_rmdir(const char* name) const char *fname = name; if (!strncmp(ROCKBOX_DIR, name, ROCKBOX_DIR_LEN)) { - fname = _get_user_file_path(name, 0, realpath, sizeof(realpath)); + fname = _get_user_file_path(name, NEED_WRITE, realpath, sizeof(realpath)); } return rmdir(fname); } - -- cgit v1.2.3