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; }
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); }