From: Jaroslav Kysela Date: Wed, 30 Mar 2016 11:55:34 +0000 (+0200) Subject: channel: icon: encode all channel names X-Git-Tag: v4.2.1~770 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=da03900828a70e3ef4b894a9ac19c3b1abbece85;p=thirdparty%2Ftvheadend.git channel: icon: encode all channel names --- diff --git a/src/channels.c b/src/channels.c index 4f2f068cd..f8f2c2e86 100644 --- a/src/channels.c +++ b/src/channels.c @@ -836,32 +836,29 @@ channel_get_icon ( channel_t *ch ) } } - } else if((send = strstr(chi, "%c"))) { + } else if ((send = strstr(chi, "%c"))) { - char *aname = intlconv_utf8safestr(intlconv_charset_id("ASCII", 1, 1), + sname = intlconv_utf8safestr(intlconv_charset_id("ASCII", 1, 1), chname, strlen(chname) * 2); - if (aname == NULL) - aname = strdup(chname); + if (sname == NULL) + sname = strdup(chname); if (config.chicon_scheme == CHICON_LOWERCASE) { - for (s = aname; *s; s++) { + for (s = sname; *s; s++) { c = *s; if (c >= 'A' && c <= 'Z') *(char *)s = c - 'A' + 'a'; } } else if (config.chicon_scheme == CHICON_SVCNAME) { - s = svcnamepicons(aname); - free((char *)aname); - aname = (char *)s; + s = svcnamepicons(sname); + free((char *)sname); + sname = (char *)s; } - sname = url_encode(aname); - free((char *)aname); - } else { buf[0] = '\0'; - sname = ""; + sname = NULL; } if (send) { @@ -869,9 +866,14 @@ channel_get_icon ( channel_t *ch ) send += 2; } - snprintf(buf, sizeof(buf), "%s%s%s", chi, sname ?: "", send ?: ""); - if (send) + if (sname) { + char *aname = url_encode(sname); free((char *)sname); + sname = aname; + } + + snprintf(buf, sizeof(buf), "%s%s%s", chi, sname ?: "", send ?: ""); + free((char *)sname); free((char *)chi); if (i > 1 || check_file(buf)) {