--- a/libpurple/purpleaccountmanager.c Sun Mar 13 23:59:40 2022 -0500 +++ b/libpurple/purpleaccountmanager.c Mon Mar 14 01:18:18 2022 -0500 @@ -251,6 +251,26 @@ } PurpleAccount * +purple_account_manager_find_by_id(PurpleAccountManager *manager, + const gchar *id) +{ + GList *l = NULL; + + g_return_val_if_fail(PURPLE_IS_ACCOUNT_MANAGER(manager), NULL); + g_return_val_if_fail(id != NULL, NULL); + + for(l = manager->accounts; l != NULL; l = l->next) { + PurpleAccount *account = PURPLE_ACCOUNT(l->data); + + if(purple_strequal(purple_account_get_id(account), id)) { + return account; + } + } + + return NULL; +} + +PurpleAccount * purple_account_manager_find(PurpleAccountManager *manager, const gchar *username, const gchar *protocol_id) {