Sun, 24 Jan 2010 05:15:33 +0000
Fix a corner case where purple_markup_html_to_xhtml generated malformed XHTML.
<FONT>blah</FONT> would turn into x</span>. This is pretty bad, since
that's what Adium passes to libpurple when the text had no markup, and is
what causes XMPP messages sent in Adium to look like:
<body>.</body><body xmlns='http://www.w3.org/1999/xhtml'>.</body>
| libpurple/tests/test_util.c | file | annotate | diff | comparison | revisions | |
| libpurple/util.c | file | annotate | diff | comparison | revisions |
--- a/libpurple/tests/test_util.c Sun Jan 24 03:53:36 2010 +0000 +++ b/libpurple/tests/test_util.c Sun Jan 24 05:15:33 2010 +0000 @@ -113,6 +113,11 @@ purple_markup_html_to_xhtml("<a>", &xhtml, &plaintext); assert_string_equal_free("<a href=\"\"></a>", xhtml); assert_string_equal_free("", plaintext); + + + purple_markup_html_to_xhtml("<FONT>x</FONT>", &xhtml, &plaintext); + assert_string_equal_free("x", xhtml); + assert_string_equal_free("x", plaintext); } END_TEST
--- a/libpurple/util.c Sun Jan 24 03:53:36 2010 +0000 +++ b/libpurple/util.c Sun Jan 24 05:15:33 2010 +0000 @@ -1519,7 +1519,7 @@ if(tag) { while(tags) { struct purple_parse_tag *pt = tags->data; - if(xhtml) + if(xhtml && !pt->ignore) g_string_append_printf(xhtml, "</%s>", pt->dest_tag); if(plain && purple_strequal(pt->src_tag, "a")) { /* if this is a link, we have to add the url to the plaintext, too */