comparison libpurple/account.c @ 21792:f5d8acf1c5f4

Normalize the names appropriately when searching for accounts. This should allow finding accounts with the same username but different resources in jabber. References #2049.
author Sadrul Habib Chowdhury <imadil@gmail.com>
date Thu, 06 Dec 2007 09:52:58 +0000
parents e8e9a53b7694
children d62d7412eca4
comparison
equal deleted inserted replaced
21791:c80d0732fa40 21792:f5d8acf1c5f4
2527 GList *l; 2527 GList *l;
2528 char *who; 2528 char *who;
2529 2529
2530 g_return_val_if_fail(name != NULL, NULL); 2530 g_return_val_if_fail(name != NULL, NULL);
2531 2531
2532 who = g_strdup(purple_normalize(NULL, name));
2533
2534 for (l = purple_accounts_get_all(); l != NULL; l = l->next) { 2532 for (l = purple_accounts_get_all(); l != NULL; l = l->next) {
2535 account = (PurpleAccount *)l->data; 2533 account = (PurpleAccount *)l->data;
2536 2534
2537 if (!strcmp(purple_normalize(NULL, purple_account_get_username(account)), who) && 2535 who = g_strdup(purple_normalize(account, name));
2536 if (!strcmp(purple_normalize(account, purple_account_get_username(account)), who) &&
2538 (!protocol_id || !strcmp(account->protocol_id, protocol_id))) { 2537 (!protocol_id || !strcmp(account->protocol_id, protocol_id))) {
2539 2538 g_free(who);
2540 break; 2539 break;
2541 } 2540 }
2542 2541 g_free(who);
2543 account = NULL; 2542 account = NULL;
2544 } 2543 }
2545
2546 g_free(who);
2547 2544
2548 return account; 2545 return account;
2549 } 2546 }
2550 2547
2551 void 2548 void