diff options
Diffstat (limited to 'libempathy-gtk/empathy-theme-adium.c')
-rw-r--r-- | libempathy-gtk/empathy-theme-adium.c | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/libempathy-gtk/empathy-theme-adium.c b/libempathy-gtk/empathy-theme-adium.c index 0827e2aea..a41cbd6c0 100644 --- a/libempathy-gtk/empathy-theme-adium.c +++ b/libempathy-gtk/empathy-theme-adium.c @@ -226,7 +226,10 @@ theme_adium_parse_body (EmpathyThemeAdium *theme, if (s > last) { /* Append the text between last link (or the * start of the message) and this link */ - g_string_append_len (string, text + last, s - last); + gchar *str; + str = g_markup_escape_text (text + last, s - last); + g_string_append (string, str); + g_free (str); } /* Append the link inside <a href=""></a> tag */ @@ -244,7 +247,10 @@ theme_adium_parse_body (EmpathyThemeAdium *theme, if (e < (gint) strlen (text)) { /* Append the text after the last link */ - g_string_append_len (string, text + e, strlen (text) - e); + gchar *str; + str = g_markup_escape_text (text + e, strlen (text) - e); + g_string_append (string, str); + g_free (str); } g_free (ret); @@ -274,6 +280,8 @@ theme_adium_parse_body (EmpathyThemeAdium *theme, g_free (ret); text = ret = g_string_free (string, FALSE); + } else { + text = ret = g_markup_escape_text (text, -1); } g_match_info_free (match_info); @@ -627,11 +635,15 @@ theme_adium_append_event (EmpathyChatView *view, EmpathyThemeAdiumPriv *priv = GET_PRIV (theme); if (priv->data->status_html) { + gchar *str_escaped; + + str_escaped = g_markup_escape_text (str, -1); theme_adium_append_html (theme, "appendMessage", priv->data->status_html, priv->data->status_len, - str, NULL, NULL, NULL, NULL, "event", - empathy_time_get_current ()); + str_escaped, NULL, NULL, NULL, NULL, + "event", empathy_time_get_current ()); + g_free (str_escaped); } /* There is no last contact */ |