# HG changeset patch # User Daniel Atallah # Date 1219896751 0 # Node ID 48da97d84886575afc4e994e81d1bedfeb26987f # Parent 18f6ff44310486b8dabee162d17399e4737440ea Don't arbitrarily default font settings when none are specified for incoming Bonjour messages. Thanks to Simon Wenner for noticing and figuring out why this was happening. Fixes #6601 diff -r 18f6ff443104 -r 48da97d84886 libpurple/protocols/bonjour/jabber.c --- a/libpurple/protocols/bonjour/jabber.c Thu Aug 28 01:55:39 2008 +0000 +++ b/libpurple/protocols/bonjour/jabber.c Thu Aug 28 04:12:31 2008 +0000 @@ -171,19 +171,13 @@ html_body_node = xmlnode_get_child(html_node, "body"); if (html_body_node != NULL) { xmlnode *html_body_font_node; - const char *ichat_balloon_color = NULL; - const char *ichat_text_color = NULL; - const char *font_face = NULL; - const char *font_size = NULL; - const char *font_color = NULL; - ichat_balloon_color = xmlnode_get_attrib(html_body_node, "ichatballooncolor"); - ichat_text_color = xmlnode_get_attrib(html_body_node, "ichattextcolor"); html_body_font_node = xmlnode_get_child(html_body_node, "font"); - /* Types of messages sent by iChat */ if (html_body_font_node != NULL) { gchar *html_body; + const char *font_face, *font_size, *font_color, + *ichat_balloon_color, *ichat_text_color; font_face = xmlnode_get_attrib(html_body_font_node, "face"); /* The absolute iChat font sizes should be converted to 1..7 range */ @@ -191,22 +185,29 @@ if (font_size != NULL) font_size = _font_size_ichat_to_purple(atoi(font_size)); font_color = xmlnode_get_attrib(html_body_font_node, "color"); + ichat_balloon_color = xmlnode_get_attrib(html_body_node, "ichatballooncolor"); + ichat_text_color = xmlnode_get_attrib(html_body_node, "ichattextcolor"); + html_body = get_xmlnode_contents(html_body_font_node); if (html_body == NULL) - /* This is the kind of formated messages that Purple creates */ + /* This is the kind of formatted messages that Purple creates */ html_body = xmlnode_to_str(html_body_font_node, NULL); if (html_body != NULL) { - /* Use some sane defaults */ - if (font_face == NULL) font_face = "Helvetica"; - if (font_size == NULL) font_size = "3"; - if (ichat_text_color == NULL) ichat_text_color = "#000000"; - if (ichat_balloon_color == NULL) ichat_balloon_color = "#FFFFFF"; + GString *str = g_string_new("%s", - font_face, font_size, ichat_text_color, ichat_balloon_color, - html_body); + if (font_face) + g_string_append_printf(str, " face='%s'", font_face); + if (font_size) + g_string_append_printf(str, " size='%s'", font_size); + if (ichat_text_color) + g_string_append_printf(str, " color='%s'", ichat_text_color); + if (ichat_balloon_color) + g_string_append_printf(str, " back='%s'", ichat_balloon_color); + g_string_append_printf(str, ">%s", html_body); + + body = g_string_free(str, FALSE); g_free(html_body); }