From f5ebc22eebb6deae812446e85cbbe09183a80e11 Mon Sep 17 00:00:00 2001 From: Spencer Oliver Date: Thu, 5 Dec 2013 22:11:09 +0000 Subject: [PATCH] utils: add unescape_tag function This is added to remove any escape chars from a string. This will be used in a pending patch, that correctly reads .nfo files that contain escape chars. Signed-off-by: Spencer Oliver --- utils.c | 20 ++++++++++++++++++++ utils.h | 1 + 2 files changed, 21 insertions(+) diff --git a/utils.c b/utils.c index 5382d53..f6552db 100644 --- a/utils.c +++ b/utils.c @@ -206,6 +206,26 @@ modifyString(char * string, const char * before, const char * after) return string; } +char * +unescape_tag(const char *tag, int force_alloc) +{ + char *esc_tag = NULL; + + if( strstr(tag, "&") || strstr(tag, "<") || strstr(tag, ">") + || strstr(tag, """) ) + { + esc_tag = strdup(tag); + esc_tag = modifyString(esc_tag, "&", "&"); + esc_tag = modifyString(esc_tag, "<", "<"); + esc_tag = modifyString(esc_tag, ">", ">"); + esc_tag = modifyString(esc_tag, """, "\""); + } + else if( force_alloc ) + esc_tag = strdup(tag); + + return esc_tag; +} + char * escape_tag(const char *tag, int force_alloc) { diff --git a/utils.h b/utils.h index d9d49a4..a3088bb 100644 --- a/utils.h +++ b/utils.h @@ -36,6 +36,7 @@ char *strstrc(const char *s, const char *p, const char t); char *strcasestrc(const char *s, const char *p, const char t); char *modifyString(char * string, const char * before, const char * after); char *escape_tag(const char *tag, int force_alloc); +char *unescape_tag(const char *tag, int force_alloc); void strip_ext(char * name); /* Metadata functions */