From f26a9217e49ac58a43c9ab8f126e1c09e7ae75a8 Mon Sep 17 00:00:00 2001 From: Spencer Oliver Date: Thu, 5 Dec 2013 22:13:38 +0000 Subject: [PATCH] metadata: handle escaped .nfo files Some nfo files may contain xml escape chars, as generated by MediaElch. This will remove any escape chars found so that they can be correctly handled by minidlna. Signed-off-by: Spencer Oliver --- metadata.c | 35 +++++++++++++++++++++++++---------- 1 file changed, 25 insertions(+), 10 deletions(-) diff --git a/metadata.c b/metadata.c index a322c2b..dd6eae8 100644 --- a/metadata.c +++ b/metadata.c @@ -222,33 +222,48 @@ parse_nfo(const char *path, metadata_t *m) val = GetValueFromNameValueList(&xml, "title"); if( val ) { + char *esc_tag = unescape_tag(val, 1); val2 = GetValueFromNameValueList(&xml, "episodetitle"); - if( val2 ) - xasprintf(&m->title, "%s - %s", val, val2); - else - m->title = strdup(val); + if( val2 ) { + char *esc_tag2 = unescape_tag(val2, 1); + xasprintf(&m->title, "%s - %s", esc_tag, esc_tag2); + free(esc_tag2); + } else { + m->title = escape_tag(esc_tag, 1); + } + free(esc_tag); } val = GetValueFromNameValueList(&xml, "plot"); - if( val ) - m->comment = strdup(val); + if( val ) { + char *esc_tag = unescape_tag(val, 1); + m->comment = escape_tag(esc_tag, 1); + free(esc_tag); + } val = GetValueFromNameValueList(&xml, "capturedate"); - if( val ) - m->date = strdup(val); + if( val ) { + char *esc_tag = unescape_tag(val, 1); + m->date = escape_tag(esc_tag, 1); + free(esc_tag); + } val = GetValueFromNameValueList(&xml, "genre"); if( val ) { free(m->genre); - m->genre = strdup(val); + char *esc_tag = unescape_tag(val, 1); + m->genre = escape_tag(esc_tag, 1); + free(esc_tag); } val = GetValueFromNameValueList(&xml, "mime"); if( val ) { free(m->mime); - m->mime = strdup(val); + char *esc_tag = unescape_tag(val, 1); + m->mime = escape_tag(esc_tag, 1); + free(esc_tag); } ClearNameValueList(&xml);