summaryrefslogtreecommitdiff
path: root/plugins
diff options
context:
space:
mode:
authorGravatar Alexey Yakovenko <waker@users.sourceforge.net>2014-07-06 20:41:33 +0200
committerGravatar Alexey Yakovenko <waker@users.sourceforge.net>2014-07-06 20:41:33 +0200
commit1ffe26373975998246a624beb262e900f43f15a2 (patch)
tree8d97287100538d5cc8bf24de3afa4082b3d8fc3c /plugins
parentd012d39f4d256d43cd5e2d95a96f4868fbedd464 (diff)
converter: proper metadata cleanup before writing tags
Diffstat (limited to 'plugins')
-rw-r--r--plugins/converter/converter.c13
1 files changed, 9 insertions, 4 deletions
diff --git a/plugins/converter/converter.c b/plugins/converter/converter.c
index fc8989c4..981497c2 100644
--- a/plugins/converter/converter.c
+++ b/plugins/converter/converter.c
@@ -1134,11 +1134,16 @@ error:
*o++ = *p++;
}
*o = 0;
- // FIXME: need to delete all colon-fields, except the URI
- deadbeef->pl_replace_meta (out_it, ":URI", unesc_path);
- deadbeef->pl_delete_meta (out_it, ":TRACKNUM");
- deadbeef->pl_delete_meta (out_it, "cuesheet");
deadbeef->pl_set_item_flags (out_it, 0);
+ DB_metaInfo_t *m = deadbeef->pl_get_metadata_head (out_it);
+ while (m) {
+ DB_metaInfo_t *next = m->next;
+ if (m->key[0] == ':' || m->key[0] == '!' || !strcasecmp (m->key, "cuesheet")) {
+ deadbeef->pl_delete_metadata (out_it, m);
+ }
+ m = next;
+ }
+ deadbeef->pl_replace_meta (out_it, ":URI", unesc_path);
}
uint32_t tagflags = 0;