comparison libpurple/protocols/msn/msg.c @ 30480:3f6daa187665

merge of '8995bf8c14c5b7fb67a84a18ba9bf73e7be3fca8' and 'c8c73a03615c9761cd104c6e2c8de12d1c8a82ac'
author Elliott Sales de Andrade <qulogic@pidgin.im>
date Tue, 11 May 2010 06:32:00 +0000
parents 0b22c840f4f4 71fe96932a8e
children 5044315e81e1
comparison
equal deleted inserted replaced
30479:a6642358155b 30480:3f6daa187665
937 const char *msg, const char *filename) 937 const char *msg, const char *filename)
938 { 938 {
939 char *username, *str; 939 char *username, *str;
940 PurpleAccount *account; 940 PurpleAccount *account;
941 PurpleBuddy *b; 941 PurpleBuddy *b;
942 PurpleConnection *pc;
943 gboolean chat;
942 944
943 account = swboard->session->account; 945 account = swboard->session->account;
946 pc = purple_account_get_connection(account);
944 947
945 if ((b = purple_find_buddy(account, who)) != NULL) 948 if ((b = purple_find_buddy(account, who)) != NULL)
946 username = g_markup_escape_text(purple_buddy_get_alias(b), -1); 949 username = g_markup_escape_text(purple_buddy_get_alias(b), -1);
947 else 950 else
948 username = g_markup_escape_text(who, -1); 951 username = g_markup_escape_text(who, -1);
949 str = g_strdup_printf(msg, username, filename); 952 str = g_strdup_printf(msg, username, filename);
950 g_free(username); 953 g_free(username);
951 954
955 swboard->flag |= MSN_SB_FLAG_IM;
956 if (swboard->current_users > 1)
957 chat = TRUE;
958 else
959 chat = FALSE;
960
952 if (swboard->conv == NULL) { 961 if (swboard->conv == NULL) {
953 if (swboard->current_users > 1) 962 if (chat)
954 swboard->conv = purple_find_chat(account->gc, swboard->chat_id); 963 swboard->conv = purple_find_chat(account->gc, swboard->chat_id);
955 else { 964 else {
956 swboard->conv = purple_find_conversation_with_account(PURPLE_CONV_TYPE_IM, 965 swboard->conv = purple_find_conversation_with_account(PURPLE_CONV_TYPE_IM,
957 who, account); 966 who, account);
958 if (swboard->conv == NULL) 967 if (swboard->conv == NULL)
959 swboard->conv = purple_conversation_new(PURPLE_CONV_TYPE_IM, account, who); 968 swboard->conv = purple_conversation_new(PURPLE_CONV_TYPE_IM, account, who);
960 } 969 }
961 } 970 }
962 swboard->flag |= MSN_SB_FLAG_IM; 971
963 972 if (chat)
964 purple_conversation_write(swboard->conv, NULL, str, PURPLE_MESSAGE_SYSTEM, time(NULL)); 973 serv_got_chat_in(pc,
974 purple_conv_chat_get_id(PURPLE_CONV_CHAT(swboard->conv)),
975 who, PURPLE_MESSAGE_RECV|PURPLE_MESSAGE_SYSTEM, str,
976 time(NULL));
977 else
978 serv_got_im(pc, who, str, PURPLE_MESSAGE_RECV|PURPLE_MESSAGE_SYSTEM,
979 time(NULL));
965 g_free(str); 980 g_free(str);
966 981
967 } 982 }
968 983
969 /* TODO: Make these not be such duplicates of each other */ 984 /* TODO: Make these not be such duplicates of each other */