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:
parent
bed73ee759
commit
2d12b253ae
1 changed files with 14 additions and 10 deletions
|
@ -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;
|
||||||
|
|
Loading…
Reference in a new issue