aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMax Kellermann <max@duempel.org>2008-10-08 10:48:49 +0200
committerMax Kellermann <max@duempel.org>2008-10-08 10:48:49 +0200
commite79aacf1db334ba920de0732631e999ab8144721 (patch)
tree2232c970f8f723eddae734fc722aa2ec85d9b4f3
parent7b9bed8398137e90538908a24467633029b1c307 (diff)
downloadmpd-e79aacf1db334ba920de0732631e999ab8144721.tar.gz
mpd-e79aacf1db334ba920de0732631e999ab8144721.tar.xz
mpd-e79aacf1db334ba920de0732631e999ab8144721.zip
directory: added directory_is_empty()
directory_is_empty() is a tiny inline function which determine if a directory has any child objects (sub directories or songs).
Diffstat (limited to '')
-rw-r--r--src/directory.c2
-rw-r--r--src/directory.h8
2 files changed, 9 insertions, 1 deletions
diff --git a/src/directory.c b/src/directory.c
index 9913154e2..d1f0e3300 100644
--- a/src/directory.c
+++ b/src/directory.c
@@ -89,7 +89,7 @@ static void deleteEmptyDirectoriesInDirectory(Directory * directory)
for (i = dv->nr; --i >= 0; ) {
deleteEmptyDirectoriesInDirectory(dv->base[i]);
- if (!dv->base[i]->children.nr && !dv->base[i]->songs.nr)
+ if (directory_is_empty(dv->base[i]))
dirvec_delete(dv, dv->base[i]);
}
if (!dv->nr)
diff --git a/src/directory.h b/src/directory.h
index 44e6f63d5..e197600d1 100644
--- a/src/directory.h
+++ b/src/directory.h
@@ -23,6 +23,8 @@
#include "songvec.h"
#include "list.h"
+#include <stdbool.h>
+
struct dirvec {
struct _Directory **base;
size_t nr;
@@ -53,6 +55,12 @@ newDirectory(const char *dirname, Directory * parent);
void
freeDirectory(Directory * directory);
+static inline bool
+directory_is_empty(Directory *directory)
+{
+ return directory->children.nr == 0 && directory->songs.nr == 0;
+}
+
Directory *
getDirectory(const char *name);