protocols/ircv3/purpleircv3messagehandlers.c

changeset 43242
a9bc19e23c36
parent 43238
58bca4467196
child 43254
27610c58b03b
equal deleted inserted replaced
43241:e41969a43e42 43242:a9bc19e23c36
428 purple_contact_info_set_username(PURPLE_CONTACT_INFO(contact), 428 purple_contact_info_set_username(PURPLE_CONTACT_INFO(contact),
429 stripped); 429 stripped);
430 purple_contact_manager_add(manager, contact); 430 purple_contact_manager_add(manager, contact);
431 } 431 }
432 432
433 member = purple_conversation_members_add_member(new_members, 433 /* Check if the member is already in the existing members list.
434 PURPLE_CONTACT_INFO(contact), 434 * This can happen if the user sends a NAMES command and surely
435 FALSE, NULL); 435 * other ways are possible. */
436 member = purple_conversation_members_find_member(existing_members,
437 PURPLE_CONTACT_INFO(contact));
438
439 /* If the member doesn't exist, add them. */
440 if(!PURPLE_IS_CONVERSATION_MEMBER(member)) {
441 member = purple_conversation_members_add_member(new_members,
442 PURPLE_CONTACT_INFO(contact),
443 FALSE, NULL);
444 }
436 445
437 purple_ircv3_add_badges_to_member(member, client, nick); 446 purple_ircv3_add_badges_to_member(member, client, nick);
438 447
439 g_free(stripped); 448 g_free(stripped);
449 g_clear_object(&contact);
440 } 450 }
441 451
442 purple_conversation_members_extend(existing_members, new_members); 452 purple_conversation_members_extend(existing_members, new_members);
443 } 453 }
444 454

mercurial