Beispiel #1
0
struct directory *
directory_get_child(const struct directory *directory, const char *name)
{
	assert(holding_db_lock());

	struct directory *child;
	directory_for_each_child(child, directory)
		if (strcmp(directory_get_name(child), name) == 0)
			return child;

	return NULL;
}
Beispiel #2
0
static void
remove_excluded_from_directory(struct directory *directory,
			       GSList *exclude_list)
{
	db_lock();

	struct directory *child, *n;
	directory_for_each_child_safe(child, n, directory) {
		char *name_fs = utf8_to_fs_charset(directory_get_name(child));

		if (exclude_list_check(exclude_list, name_fs)) {
			delete_directory(child);
			modified = true;
		}

		g_free(name_fs);
	}
static void
remove_excluded_from_directory(struct directory *directory,
			       GSList *exclude_list)
{
	int i;
	struct dirvec *dv = &directory->children;

	for (i = dv->nr; --i >= 0; ) {
		struct directory *child = dv->base[i];
		char *name_fs = utf8_to_fs_charset(directory_get_name(child));

		if (exclude_list_check(exclude_list, name_fs)) {
			delete_directory(child);
			modified = true;
		}

		g_free(name_fs);
	}

	songvec_for_each(&directory->songs,
			 delete_song_if_excluded, exclude_list);
}