aboutsummaryrefslogtreecommitdiffstats
path: root/libempathy-gtk/empathy-string-parser.c
diff options
context:
space:
mode:
authorGuillaume Desmottes <guillaume.desmottes@collabora.co.uk>2010-06-08 23:14:22 +0800
committerGuillaume Desmottes <guillaume.desmottes@collabora.co.uk>2010-06-08 23:43:59 +0800
commit03c709802eebcacdabe2c2738e166da9f4cb1f31 (patch)
tree607a55c71713c24ead95981886e9d2ce55df5916 /libempathy-gtk/empathy-string-parser.c
parent8b8e9567d5a5d44bbb565013e1b7856f21ab1c5f (diff)
downloadgsoc2013-empathy-03c709802eebcacdabe2c2738e166da9f4cb1f31.tar
gsoc2013-empathy-03c709802eebcacdabe2c2738e166da9f4cb1f31.tar.gz
gsoc2013-empathy-03c709802eebcacdabe2c2738e166da9f4cb1f31.tar.bz2
gsoc2013-empathy-03c709802eebcacdabe2c2738e166da9f4cb1f31.tar.lz
gsoc2013-empathy-03c709802eebcacdabe2c2738e166da9f4cb1f31.tar.xz
gsoc2013-empathy-03c709802eebcacdabe2c2738e166da9f4cb1f31.tar.zst
gsoc2013-empathy-03c709802eebcacdabe2c2738e166da9f4cb1f31.zip
empathy_string_replace_escaped: remove '\r' (#620903)
Diffstat (limited to 'libempathy-gtk/empathy-string-parser.c')
-rw-r--r--libempathy-gtk/empathy-string-parser.c16
1 files changed, 15 insertions, 1 deletions
diff --git a/libempathy-gtk/empathy-string-parser.c b/libempathy-gtk/empathy-string-parser.c
index 5c3fb1972..52c726c69 100644
--- a/libempathy-gtk/empathy-string-parser.c
+++ b/libempathy-gtk/empathy-string-parser.c
@@ -185,9 +185,23 @@ empathy_string_replace_escaped (const gchar *text,
{
GString *string = user_data;
gchar *escaped;
+ guint i;
+ gssize escaped_len, old_len;
escaped = g_markup_escape_text (text, len);
- g_string_append (string, escaped);
+ escaped_len = strlen (escaped);
+
+ /* Allocate more space to string (we really need a g_string_extend...) */
+ old_len = string->len;
+ g_string_set_size (string, old_len + escaped_len);
+ g_string_truncate (string, old_len);
+
+ /* Remove '\r' */
+ for (i = 0; i < escaped_len; i++) {
+ if (escaped[i] != '\r')
+ g_string_append_c (string, escaped[i]);
+ }
+
g_free (escaped);
}