add support for database.unignore files (adds dirs to the database which would be skipped because of a database.ignore file)

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16214 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
Marcoen Hirschberg 2008-02-04 21:20:04 +00:00
parent bed73ee759
commit 2d12b253ae

View file

@ -4062,11 +4062,12 @@ static bool check_deleted_files(void)
return true; return true;
} }
static bool check_dir(const char *dirname) static bool check_dir(const char *dirname, int add_files)
{ {
DIR *dir; DIR *dir;
int len; int len;
int success = false; int success = false;
int ignore, unignore;
char newpath[MAX_PATH]; char newpath[MAX_PATH];
dir = opendir(dirname); dir = opendir(dirname);
@ -4078,12 +4079,15 @@ static bool check_dir(const char *dirname)
/* check for a database.ignore file */ /* check for a database.ignore file */
snprintf(newpath, MAX_PATH, "%s/database.ignore", dirname); snprintf(newpath, MAX_PATH, "%s/database.ignore", dirname);
if (file_exists(newpath)) ignore = file_exists(newpath);
{ /* check for a database.unignore file */
closedir(dir); snprintf(newpath, MAX_PATH, "%s/database.unignore", dirname);
return false; unignore = file_exists(newpath);
}
/* don't do anything if both ignore and unignore are there */
if (ignore != unignore)
add_files = unignore;
/* Recursively scan the dir. */ /* Recursively scan the dir. */
#ifdef __PCTOOL__ #ifdef __PCTOOL__
while (1) while (1)
@ -4113,8 +4117,8 @@ static bool check_dir(const char *dirname)
processed_dir_count++; processed_dir_count++;
if (entry->attribute & ATTR_DIRECTORY) if (entry->attribute & ATTR_DIRECTORY)
check_dir(curpath); check_dir(curpath, add_files);
else else if (add_files)
{ {
tc_stat.curentry = curpath; tc_stat.curentry = curpath;
@ -4193,7 +4197,7 @@ void build_tagcache(const char *path)
if (strcmp("/", path) != 0) if (strcmp("/", path) != 0)
strcpy(curpath, path); strcpy(curpath, path);
ret = check_dir(path); ret = check_dir(path, true);
/* Write the header. */ /* Write the header. */
header.magic = TAGCACHE_MAGIC; header.magic = TAGCACHE_MAGIC;