# HG changeset patch # User Elliott Sales de Andrade # Date 1273553583 0 # Node ID 7c59fb762fc161d117f0fa41d8d62b4b2f57c641 # Parent 51b8ca70570d9f9d24a5c7481dc61f28cea84e76# Parent 71fe96932a8efaaf7dbdced10208b57a9bb132e3 merge of '4463949ec36c02833d85afdfd38b5dfb956b9169' and '6e1b1525048546e7c13611af36e0069c2a957593' diff -r 51b8ca70570d -r 7c59fb762fc1 libpurple/protocols/msn/msg.c --- a/libpurple/protocols/msn/msg.c Tue May 11 02:00:24 2010 +0000 +++ b/libpurple/protocols/msn/msg.c Tue May 11 04:53:03 2010 +0000 @@ -939,8 +939,11 @@ char *username, *str; PurpleAccount *account; PurpleBuddy *b; + PurpleConnection *pc; + gboolean chat; account = swboard->session->account; + pc = purple_account_get_connection(account); if ((b = purple_find_buddy(account, who)) != NULL) username = g_markup_escape_text(purple_buddy_get_alias(b), -1); @@ -949,8 +952,14 @@ str = g_strdup_printf(msg, username, filename); g_free(username); + swboard->flag |= MSN_SB_FLAG_IM; + if (swboard->current_users > 1) + chat = TRUE; + else + chat = FALSE; + if (swboard->conv == NULL) { - if (swboard->current_users > 1) + if (chat) swboard->conv = purple_find_chat(account->gc, swboard->chat_id); else { swboard->conv = purple_find_conversation_with_account(PURPLE_CONV_TYPE_IM, @@ -959,9 +968,15 @@ swboard->conv = purple_conversation_new(PURPLE_CONV_TYPE_IM, account, who); } } - swboard->flag |= MSN_SB_FLAG_IM; - purple_conversation_write(swboard->conv, NULL, str, PURPLE_MESSAGE_SYSTEM, time(NULL)); + if (chat) + serv_got_chat_in(pc, + purple_conv_chat_get_id(PURPLE_CONV_CHAT(swboard->conv)), + who, PURPLE_MESSAGE_RECV|PURPLE_MESSAGE_SYSTEM, str, + time(NULL)); + else + serv_got_im(pc, who, str, PURPLE_MESSAGE_RECV|PURPLE_MESSAGE_SYSTEM, + time(NULL)); g_free(str); }