aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMax Kellermann <max@duempel.org>2009-02-28 14:02:08 +0100
committerMax Kellermann <max@duempel.org>2009-02-28 14:02:08 +0100
commit0fcb7dc65cea3c72fad8a8b261f5a6a324a3bd33 (patch)
tree98c34ce90ee20baca2b53b9cd71df968366b4681
parent83b1b0ff69e03cbb472c6cfaaf87f782bb9d9a91 (diff)
downloadmpd-0fcb7dc65cea3c72fad8a8b261f5a6a324a3bd33.tar.gz
mpd-0fcb7dc65cea3c72fad8a8b261f5a6a324a3bd33.tar.xz
mpd-0fcb7dc65cea3c72fad8a8b261f5a6a324a3bd33.zip
update: use G_FILE_TEST_IS_REGULAR for archive files
When checking whether database entries have been deleted, don't check if an archive file is a directory (G_FILE_TEST_IS_DIR), use G_FILE_TEST_IS_REGULAR for this case instead. To determine if a "struct directory" is an archive, check for device==DEVICE_INARCHIVE. This is always false after loading the database, so this patch is not complete yet.
-rw-r--r--src/update.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/update.c b/src/update.c
index 5cb02cb4e..e72c2e26d 100644
--- a/src/update.c
+++ b/src/update.c
@@ -205,6 +205,7 @@ static bool
directory_exists(const struct directory *directory)
{
char *path_fs;
+ GFileTest test;
bool exists;
path_fs = map_directory_fs(directory);
@@ -212,7 +213,11 @@ directory_exists(const struct directory *directory)
/* invalid path: cannot exist */
return false;
- exists = g_file_test(path_fs, G_FILE_TEST_IS_DIR);
+ test = directory->device == DEVICE_INARCHIVE
+ ? G_FILE_TEST_IS_REGULAR
+ : G_FILE_TEST_IS_DIR;
+
+ exists = g_file_test(path_fs, test);
g_free(path_fs);
return exists;