diff options
author | waker <wakeroid@gmail.com> | 2012-09-11 22:13:31 +0200 |
---|---|---|
committer | waker <wakeroid@gmail.com> | 2012-09-11 22:13:31 +0200 |
commit | 465eb39ca9c517419ce6ae4de3a53c1c94d642fb (patch) | |
tree | cb52d56fd8516d41093b91ab8b783f9abbe53494 /plugins/converter | |
parent | 0271de4f03ac1011bf40a4b8c45a9bbb17f7b44c (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.c | 13 |
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"); } |