comparison libpurple/protocols/jabber/message.c @ 25190:302f13678ea3

propagate from branch 'im.pidgin.pidgin' (head f94ddf7fa975e3a39a53fccae31b7e73f892fd57) to branch 'im.pidgin.cpw.malu.xmpp.attention' (head a0f89b9cc3f1120c218f9b703ac18a8b8eec3557)
author Marcus Lundblad <ml@update.uu.se>
date Sun, 28 Dec 2008 09:51:19 +0000
parents 9b1aea1c8df2 689cfb82242e
children a50545e37a7a
comparison
equal deleted inserted replaced
25189:d15b50a4db53 25190:302f13678ea3
289 static void handle_buzz(JabberMessage *jm) { 289 static void handle_buzz(JabberMessage *jm) {
290 PurpleBuddy *buddy; 290 PurpleBuddy *buddy;
291 PurpleAccount *account; 291 PurpleAccount *account;
292 PurpleConversation *c; 292 PurpleConversation *c;
293 char *username, *str; 293 char *username, *str;
294 294
295 /* Delayed buzz MUST NOT be accepted */ 295 /* Delayed buzz MUST NOT be accepted */
296 if(jm->delayed) 296 if(jm->delayed)
297 return; 297 return;
298 298
299 /* Reject buzz when it's not enabled */ 299 /* Reject buzz when it's not enabled */
300 if(!jm->js->allowBuzz) 300 if(!jm->js->allowBuzz)
301 return; 301 return;
302 302
303 account = purple_connection_get_account(jm->js->gc); 303 account = purple_connection_get_account(jm->js->gc);
304 304
305 if ((buddy = purple_find_buddy(account, jm->from)) != NULL) 305 if ((buddy = purple_find_buddy(account, jm->from)) == NULL)
306 username = g_markup_escape_text(purple_buddy_get_alias(buddy), -1);
307 else
308 return; /* Do not accept buzzes from unknown people */ 306 return; /* Do not accept buzzes from unknown people */
309 307
310 c = purple_conversation_new(PURPLE_CONV_TYPE_IM, account, jm->from); 308 c = purple_find_conversation_with_account(PURPLE_CONV_TYPE_IM, jm->from, account);
311 309 if (c == NULL)
312 str = g_strdup_printf(_("%s has buzzed you!"), username); 310 c = purple_conversation_new(PURPLE_CONV_TYPE_IM, account, jm->from);
313 311
314 purple_conversation_write(c, NULL, str, PURPLE_MESSAGE_SYSTEM|PURPLE_MESSAGE_NOTIFY, time(NULL)); 312 username = g_markup_escape_text(purple_buddy_get_alias(buddy), -1);
313 /* xmpp only has 1 attention type, so index is 0 */
314 purple_prpl_got_attention(jm->js->gc, username, 0);
315
315 g_free(username); 316 g_free(username);
316 g_free(str); 317 g_free(str);
317 } 318 }
318 319
319 /* used internally by the functions below */ 320 /* used internally by the functions below */