# HG changeset patch # User Sadrul Habib Chowdhury # Date 1209871738 0 # Node ID f67edee0224e9b87594df469c7b48833fb9af05f # Parent 2d10cd28aa5708fbc43529632d6f1af558254a8c When searching for a conversation, search only in the list of the specified type of conversation (i.e. IMs or Chats), when appropriate, instead of the list of all conversations. diff -r 2d10cd28aa57 -r f67edee0224e libpurple/conversation.c --- a/libpurple/conversation.c Sun May 04 03:24:18 2008 +0000 +++ b/libpurple/conversation.c Sun May 04 03:28:58 2008 +0000 @@ -813,14 +813,27 @@ g_return_val_if_fail(name != NULL, NULL); + switch (type) { + case PURPLE_CONV_TYPE_IM: + cnv = purple_get_ims(); + break; + case PURPLE_CONV_TYPE_CHAT: + cnv = purple_get_chats(); + break; + case PURPLE_CONV_TYPE_ANY: + cnv = purple_get_conversations(); + break; + default: + g_return_val_if_reached(NULL); + } + name1 = g_strdup(purple_normalize(account, name)); - for (cnv = purple_get_conversations(); cnv != NULL; cnv = cnv->next) { + for (; cnv != NULL; cnv = cnv->next) { c = (PurpleConversation *)cnv->data; name2 = purple_normalize(account, purple_conversation_get_name(c)); - if (((type == PURPLE_CONV_TYPE_ANY) || (type == purple_conversation_get_type(c))) && - (account == purple_conversation_get_account(c)) && + if ((account == purple_conversation_get_account(c)) && !purple_utf8_strcasecmp(name1, name2)) { break;