aboutsummaryrefslogtreecommitdiffstats
path: root/libempathy-gtk/empathy-theme-adium.c
diff options
context:
space:
mode:
Diffstat (limited to 'libempathy-gtk/empathy-theme-adium.c')
-rw-r--r--libempathy-gtk/empathy-theme-adium.c20
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 */