Mercurial > pidgin.yaz
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 */ |