summaryrefslogtreecommitdiff
path: root/plugins/converter
diff options
context:
space:
mode:
authorGravatar waker <wakeroid@gmail.com>2012-09-11 22:13:31 +0200
committerGravatar waker <wakeroid@gmail.com>2012-09-11 22:13:31 +0200
commit465eb39ca9c517419ce6ae4de3a53c1c94d642fb (patch)
treecb52d56fd8516d41093b91ab8b783f9abbe53494 /plugins/converter
parent0271de4f03ac1011bf40a4b8c45a9bbb17f7b44c (diff)
converter: fixed writing tags to a files which have names with special characters
Diffstat (limited to 'plugins/converter')
-rw-r--r--plugins/converter/converter.c13
1 files changed, 12 insertions, 1 deletions
diff --git a/plugins/converter/converter.c b/plugins/converter/converter.c
index 2d7e8230..d0f4b2eb 100644
--- a/plugins/converter/converter.c
+++ b/plugins/converter/converter.c
@@ -1111,7 +1111,18 @@ error:
if (encoder_preset->tag_id3v2 || encoder_preset->tag_id3v1 || encoder_preset->tag_apev2 || encoder_preset->tag_flac || encoder_preset->tag_oggvorbis) {
out_it = deadbeef->pl_item_alloc ();
deadbeef->pl_item_copy (out_it, it);
- deadbeef->pl_replace_meta (out_it, ":URI", out);
+ char unesc_path[2000];
+ char invalid[] = "$\"`\\";
+ const char *p = out;
+ char *o = unesc_path;
+ while (*p) {
+ if (*p == '\\') {
+ p++;
+ }
+ *o++ = *p++;
+ }
+ *o = 0;
+ deadbeef->pl_replace_meta (out_it, ":URI", unesc_path);
deadbeef->pl_delete_meta (out_it, "cuesheet");
}