]> git.ipfire.org Git - thirdparty/tvheadend.git/commitdiff
xmltv: fix the desc import, fixes #5206
authorJaroslav Kysela <perex@perex.cz>
Wed, 12 Sep 2018 19:45:36 +0000 (21:45 +0200)
committerJaroslav Kysela <perex@perex.cz>
Wed, 12 Sep 2018 19:45:36 +0000 (21:45 +0200)
src/epggrab/module/xmltv.c
src/lang_str.c
src/lang_str.h

index a5c66b11f3fdce7df6dad2e6f5e966d615409cf3..03ddbdb362d508f3fc39d371e149957da46ca8c1 100644 (file)
@@ -605,6 +605,7 @@ xmltv_appendit(lang_str_t **_desc, string_list_t *list,
 {
   lang_str_t *desc, *lstr;
   lang_str_ele_t *e;
+  const char *s;
   if (!list) return;
   char *str = string_list_2_csv(list, ',', 1);
   if (!str) return;
@@ -613,7 +614,11 @@ xmltv_appendit(lang_str_t **_desc, string_list_t *list,
   if (lstr) {
     RB_FOREACH(e, lstr, link) {
       if (!desc) desc = lang_str_create();
-      lang_str_append(desc, "\n\n", e->lang);
+      s = *_desc ? lang_str_get_only(*_desc, e->lang) : NULL;
+      if (s) {
+        lang_str_append(desc, s, e->lang);
+        lang_str_append(desc, "\n\n", e->lang);
+      }
       lang_str_append(desc, tvh_gettext_lang(e->lang, name), e->lang);
       lang_str_append(desc, str, e->lang);
     }
index bbf3b5b014747c8e75ab8c1de5f0dd96f514c93e..80fc6d6e84f9cd89128a3f10fb84c214ceb4a7ef 100644 (file)
@@ -84,8 +84,8 @@ lang_str_t *lang_str_copy ( const lang_str_t *ls )
   return ret;
 }
 
-/* Get language element */
-lang_str_ele_t *lang_str_get2
+/* Get language element, don't return first */
+lang_str_ele_t *lang_str_get2_only
   ( const lang_str_t *ls, const char *lang )
 {
   int i;
@@ -103,8 +103,18 @@ lang_str_ele_t *lang_str_get2
     }
   }
 
+  /* Return */
+  return e;
+}
+
+/* Get language element */
+lang_str_ele_t *lang_str_get2
+  ( const lang_str_t *ls, const char *lang )
+{
+  lang_str_ele_t *e = lang_str_get2_only(ls, lang);
+
   /* Use first available */
-  if (!e) e = RB_FIRST(ls);
+  if (!e && ls) e = RB_FIRST(ls);
 
   /* Return */
   return e;
index e140b536c7652e4a03a07a929bcb4d0d43ff9555..015216e7a77d2b689e0458fcf869d37a0be63662 100644 (file)
@@ -38,6 +38,12 @@ lang_str_t     *lang_str_create2 ( const char *str, const char *lang );
 lang_str_t     *lang_str_copy    ( const lang_str_t *ls );
 
 /* Get elements */
+lang_str_ele_t *lang_str_get2_only ( const lang_str_t *ls, const char *lang );
+static inline const char *lang_str_get_only(const lang_str_t *ls, const char *lang)
+  {
+    lang_str_ele_t *e = lang_str_get2_only(ls, lang);
+    return e ? e->str : NULL;
+  }
 lang_str_ele_t *lang_str_get2    ( const lang_str_t *ls, const char *lang );
 static inline const char *lang_str_get(const lang_str_t *ls, const char *lang)
   {