summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Schmidt <s.schmidt@samsung.com>2014-03-27 12:47:21 +0100
committerStefan Schmidt <s.schmidt@samsung.com>2014-03-27 12:53:06 +0100
commitf91f256817fb32229ea621b3ecced0bbfbf57878 (patch)
treea2a10d836b7c1b4956e3cb8efdd2e40914964fcb
parent82d38bced8d22161f0a2f73317618aa617a1a144 (diff)
downloadenlightenment-f91f256817fb32229ea621b3ecced0bbfbf57878.tar.gz
bugfix: music_control: Use correct markup for metadata text.
We piped the plain metadata text to edje TEXTBLOCK which might interpret some of the characters as markup. Better convert it to the correct markup first. The actual bug case was a & in the metadata cut off the rest of the text. Now we get the correct &amp before sending it of to edje. Fixes T1061
-rw-r--r--src/modules/music-control/e_mod_main.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/src/modules/music-control/e_mod_main.c b/src/modules/music-control/e_mod_main.c
index 58bf32f2d1..b8e7244ef3 100644
--- a/src/modules/music-control/e_mod_main.c
+++ b/src/modules/music-control/e_mod_main.c
@@ -224,7 +224,7 @@ parse_metadata(E_Music_Control_Module_Context *ctxt, Eina_Value *array)
for (i = 0; i < eina_value_array_count(array); i++)
{
- const char *key, *str_val;
+ const char *key, *str_val, *str_markup;
Eina_Value st, subst;
Efreet_Uri *uri;
@@ -234,14 +234,16 @@ parse_metadata(E_Music_Control_Module_Context *ctxt, Eina_Value *array)
{
eina_value_struct_value_get(&st, "arg1", &subst);
eina_value_struct_get(&subst, "arg0", &str_val);
- ctxt->meta_title = eina_stringshare_add(str_val);
+ str_markup = evas_textblock_text_utf8_to_markup(NULL, str_val);
+ ctxt->meta_title = eina_stringshare_add(str_markup);
eina_value_flush(&subst);
}
else if (!strcmp(key, "xesam:album"))
{
eina_value_struct_value_get(&st, "arg1", &subst);
eina_value_struct_get(&subst, "arg0", &str_val);
- ctxt->meta_album = eina_stringshare_add(str_val);
+ str_markup = evas_textblock_text_utf8_to_markup(NULL, str_val);
+ ctxt->meta_album = eina_stringshare_add(str_markup);
eina_value_flush(&subst);
}
else if (!strcmp(key, "xesam:artist"))
@@ -250,7 +252,8 @@ parse_metadata(E_Music_Control_Module_Context *ctxt, Eina_Value *array)
eina_value_struct_value_get(&st, "arg1", &subst);
eina_value_struct_value_get(&subst, "arg0", &arr);
eina_value_array_get(&arr, 0, &str_val);
- ctxt->meta_artist = eina_stringshare_add(str_val);
+ str_markup = evas_textblock_text_utf8_to_markup(NULL, str_val);
+ ctxt->meta_artist = eina_stringshare_add(str_markup);
eina_value_flush(&arr);
eina_value_flush(&subst);
}