Mercurial > pidgin.yaz
diff libpurple/protocols/msn/msn.c @ 25056:b0c75121cf66
After parsing the message text for HTML formatting, don't try to send it if
it ends up empty. That might happen if your message only contained stuff
like horizontal lines, which MSN does not support, and will ignore.
Fixes #8057.
author | Elliott Sales de Andrade <qulogic@pidgin.im> |
---|---|
date | Wed, 04 Feb 2009 05:15:49 +0000 |
parents | b5c82724598c |
children | fd5eedf131b4 af42303654a5 03279387cbe2 4561aa5b368c |
line wrap: on
line diff
--- a/libpurple/protocols/msn/msn.c Wed Feb 04 01:44:30 2009 +0000 +++ b/libpurple/protocols/msn/msn.c Wed Feb 04 05:15:49 2009 +0000 @@ -1176,6 +1176,7 @@ MsnMessage *msg; char *msgformat; char *msgtext; + size_t msglen; const char *username; purple_debug_info("msn", "send IM {%s} to %s\n", message, who); @@ -1203,13 +1204,23 @@ } msn_import_html(message, &msgformat, &msgtext); + msglen = strlen(msgtext); + if (msglen == 0) { + /* Stuff like <hr> will be ignored. Don't send an empty message + if that's all there is. */ + g_free(msgtext); + g_free(msgformat); + + return 0; + } + if (msn_user_is_online(account, who) || msn_user_is_yahoo(account, who) || swboard != NULL) { /*User online or have a swboard open because it's invisible * and sent us a message,then send Online Instant Message*/ - if (strlen(msgtext) + strlen(msgformat) + strlen(VERSION) > 1564) + if (msglen + strlen(msgformat) + strlen(VERSION) > 1564) { g_free(msgformat); g_free(msgtext);