Mercurial > pidgin
diff src/protocols/msn/utils.c @ 8530:45e8c6cbd4a5
[gaim-migrate @ 9269]
Removes formatting support for MSN.
committer: Tailor Script <tailor@pidgin.im>
author | Sean Egan <seanegan@gmail.com> |
---|---|
date | Wed, 31 Mar 2004 02:27:30 +0000 |
parents | 833dd756dcc3 |
children | 1d5e31e518fc |
line wrap: on
line diff
--- a/src/protocols/msn/utils.c Tue Mar 30 17:44:40 2004 +0000 +++ b/src/protocols/msn/utils.c Wed Mar 31 02:27:30 2004 +0000 @@ -150,129 +150,3 @@ return buf; } -/* - * Taken from the zephyr plugin. - * This parses HTML formatting (put out by one of the gtkimhtml widgets - * and converts it to msn formatting. It doesn't deal with the tag closing, - * but gtkimhtml widgets give valid html. - * It currently deals properly with <b>, <u>, <i>, <font face=...>, - * <font color=...>. - * It ignores <font back=...> and <font size=...> - */ -void -msn_import_html(const char *html, char **attributes, char **message) -{ - int len, retcount = 0; - const char *c; - char *msg; - char *fontface = NULL; - char fonteffect[4]; - char fontcolor[7]; - - g_return_if_fail(html != NULL); - g_return_if_fail(attributes != NULL); - g_return_if_fail(message != NULL); - - len = strlen(html); - msg = g_malloc0(len + 1); - - memset(fontcolor, 0, sizeof(fontcolor)); - memset(fonteffect, 0, sizeof(fontcolor)); - - for (c = html; *c != '\0';) - { - if (*c == '<') - { - if (!g_ascii_strncasecmp(c + 1, "i>", 2)) - { - strcat(fonteffect, "I"); - c += 3; - } - else if (!g_ascii_strncasecmp(c + 1, "b>", 2)) - { - strcat(fonteffect, "B"); - c += 3; - } - else if (!g_ascii_strncasecmp(c + 1, "u>", 2)) - { - strcat(fonteffect, "U"); - c += 3; - } - else if (!g_ascii_strncasecmp(c + 1, "a href=\"", 8)) - { - c += 9; - - while (g_ascii_strncasecmp(c, "\">", 2)) - msg[retcount++] = *c++; - - c += 2; - - /* ignore descriptive string */ - while (g_ascii_strncasecmp(c, "</a>", 4)) - c++; - - c += 4; - } - else if (!g_ascii_strncasecmp(c + 1, "font", 4)) - { - c += 5; - - while (!g_ascii_strncasecmp(c, " ", 1)) - c++; - - if (!g_ascii_strncasecmp(c, "color=\"#", 7)) - { - c += 8; - - fontcolor[0] = *(c + 4); - fontcolor[1] = *(c + 5); - fontcolor[2] = *(c + 2); - fontcolor[3] = *(c + 3); - fontcolor[4] = *c; - fontcolor[5] = *(c + 1); - - c += 8; - } - else if (!g_ascii_strncasecmp(c, "face=\"", 6)) - { - const char *end = NULL; - unsigned int namelen = 0; - - c += 6; - end = strchr(c, '\"'); - namelen = (unsigned int)(end - c); - fontface = g_strndup(c, namelen); - c = end + 2; - } - else - { - /* Drop all unrecognized/misparsed font tags */ - while (g_ascii_strncasecmp(c, "\">", 2)) - c++; - - c += 2; - } - } - else - { - while (g_ascii_strncasecmp(c, ">", 1)) - c++; - - c++; - } - } - else - msg[retcount++] = *c++; - } - - if (fontface == NULL) - fontface = g_strdup("MS Sans Serif"); - - *attributes = g_strdup_printf("FN=%s; EF=%s; CO=%s; PF=0", - encode_spaces(fontface), - fonteffect, fontcolor); - *message = g_strdup(msg); - - g_free(fontface); - g_free(msg); -}