comparison libpurple/protocols/msn/msg.c @ 30361:46275cca345e

merged from im.pidgin.pidgin
author Yoshiki Yazawa <yaz@honeyplanet.jp>
date Fri, 14 May 2010 17:24:16 +0900
parents 28dd2b7331fd 71fe96932a8e
children 9623db527d1e
comparison
equal deleted inserted replaced
30309:c644d96d72ac 30361:46275cca345e
948 const char *msg, const char *filename) 948 const char *msg, const char *filename)
949 { 949 {
950 char *username, *str; 950 char *username, *str;
951 PurpleAccount *account; 951 PurpleAccount *account;
952 PurpleBuddy *b; 952 PurpleBuddy *b;
953 PurpleConnection *pc;
954 gboolean chat;
953 955
954 account = swboard->session->account; 956 account = swboard->session->account;
957 pc = purple_account_get_connection(account);
955 958
956 if ((b = purple_find_buddy(account, who)) != NULL) 959 if ((b = purple_find_buddy(account, who)) != NULL)
957 username = g_markup_escape_text(purple_buddy_get_alias(b), -1); 960 username = g_markup_escape_text(purple_buddy_get_alias(b), -1);
958 else 961 else
959 username = g_markup_escape_text(who, -1); 962 username = g_markup_escape_text(who, -1);
960 str = g_strdup_printf(msg, username, filename); 963 str = g_strdup_printf(msg, username, filename);
961 g_free(username); 964 g_free(username);
962 965
966 swboard->flag |= MSN_SB_FLAG_IM;
967 if (swboard->current_users > 1)
968 chat = TRUE;
969 else
970 chat = FALSE;
971
963 if (swboard->conv == NULL) { 972 if (swboard->conv == NULL) {
964 if (swboard->current_users > 1) 973 if (chat)
965 swboard->conv = purple_find_chat(account->gc, swboard->chat_id); 974 swboard->conv = purple_find_chat(account->gc, swboard->chat_id);
966 else { 975 else {
967 swboard->conv = purple_find_conversation_with_account(PURPLE_CONV_TYPE_IM, 976 swboard->conv = purple_find_conversation_with_account(PURPLE_CONV_TYPE_IM,
968 who, account); 977 who, account);
969 if (swboard->conv == NULL) 978 if (swboard->conv == NULL)
970 swboard->conv = purple_conversation_new(PURPLE_CONV_TYPE_IM, account, who); 979 swboard->conv = purple_conversation_new(PURPLE_CONV_TYPE_IM, account, who);
971 } 980 }
972 } 981 }
973 swboard->flag |= MSN_SB_FLAG_IM; 982
974 983 if (chat)
975 purple_conversation_write(swboard->conv, NULL, str, PURPLE_MESSAGE_SYSTEM, time(NULL)); 984 serv_got_chat_in(pc,
985 purple_conv_chat_get_id(PURPLE_CONV_CHAT(swboard->conv)),
986 who, PURPLE_MESSAGE_RECV|PURPLE_MESSAGE_SYSTEM, str,
987 time(NULL));
988 else
989 serv_got_im(pc, who, str, PURPLE_MESSAGE_RECV|PURPLE_MESSAGE_SYSTEM,
990 time(NULL));
976 g_free(str); 991 g_free(str);
977 992
978 } 993 }
979 994
980 /* TODO: Make these not be such duplicates of each other */ 995 /* TODO: Make these not be such duplicates of each other */