changeset 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 b5699546f3e0
children 4278d13b5471 575b2b9f3ac9 af42303654a5
files libpurple/protocols/msn/msn.c
diffstat 1 files changed, 12 insertions(+), 1 deletions(-) [+]
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);