diff options
author | Sadrul Habib Chowdhury <sadrul@pidgin.im> | 2008-05-04 03:28:58 +0000 |
---|---|---|
committer | Sadrul Habib Chowdhury <sadrul@pidgin.im> | 2008-05-04 03:28:58 +0000 |
commit | bc66669a9dab41c43f060231af35a68d47e25f12 (patch) | |
tree | 5be493bb5adefa26755094ac7246ef3b751955dd | |
parent | 71f6efab6a5d153d9e8b6751ec95a6749f382ad2 (diff) | |
download | pidgin-bc66669a9dab41c43f060231af35a68d47e25f12.tar.gz |
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.
-rw-r--r-- | libpurple/conversation.c | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/libpurple/conversation.c b/libpurple/conversation.c index 7706318d5e..d5cdb7dd57 100644 --- a/libpurple/conversation.c +++ b/libpurple/conversation.c @@ -813,14 +813,27 @@ purple_find_conversation_with_account(PurpleConversationType type, 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; |