summaryrefslogtreecommitdiff
path: root/pltmeta.c
diff options
context:
space:
mode:
Diffstat (limited to 'pltmeta.c')
-rw-r--r--pltmeta.c25
1 files changed, 25 insertions, 0 deletions
diff --git a/pltmeta.c b/pltmeta.c
index b3895b26..e141a743 100644
--- a/pltmeta.c
+++ b/pltmeta.c
@@ -208,4 +208,29 @@ plt_delete_metadata (playlist_t *it, DB_metaInfo_t *meta) {
}
+void
+plt_delete_all_meta (playlist_t *it) {
+ LOCK;
+ DB_metaInfo_t *m = it->meta;
+ DB_metaInfo_t *prev = NULL;
+ while (m) {
+ DB_metaInfo_t *next = m->next;
+ if (m->key[0] == ':') {
+ prev = m;
+ }
+ else {
+ if (prev) {
+ prev->next = next;
+ }
+ else {
+ it->meta = next;
+ }
+ metacache_remove_string (m->key);
+ metacache_remove_string (m->value);
+ free (m);
+ }
+ m = next;
+ }
+ UNLOCK;
+}