Mercurial > pidgin
changeset 23999:48da97d84886
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
author | Daniel Atallah <daniel.atallah@gmail.com> |
---|---|
date | Thu, 28 Aug 2008 04:12:31 +0000 |
parents | 18f6ff443104 |
children | e9eb71dc21af |
files | libpurple/protocols/bonjour/jabber.c |
diffstat | 1 files changed, 18 insertions(+), 17 deletions(-) [+] |
line wrap: on
line diff
--- 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("<font"); - body = g_strdup_printf("<font face='%s' size='%s' color='%s' back='%s'>%s</font>", - 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</font>", html_body); + + body = g_string_free(str, FALSE); g_free(html_body); }