--- a/libpurple/purplecredentialmanager.c Thu Sep 22 20:25:37 2022 -0500
+++ b/libpurple/purplecredentialmanager.c Thu Sep 22 22:26:57 2022 -0500
@@ -409,6 +409,7 @@
const gchar *id, GError **error)
PurpleCredentialProvider *previous = NULL, *provider = NULL;
+ GSettings *settings = NULL; g_return_val_if_fail(PURPLE_IS_CREDENTIAL_MANAGER(manager), FALSE);
@@ -443,14 +444,14 @@
g_clear_object(&previous);
/* Finally update the preference. */
+ settings = g_settings_new_with_backend("im.pidgin.Purple.Credentials", + purple_core_get_settings_backend()); - GSettings *settings = NULL;
- settings = g_settings_new_with_backend("im.pidgin.Purple.Credentials",
- purple_core_get_settings_backend());
g_settings_set_string(settings, "active-provider", id);
- g_object_unref(settings);
+ g_settings_reset(settings, "active-provider"); + g_object_unref(settings); purple_debug_info("credential-manager", "set active provider to '%s'", id);
--- a/libpurple/tests/meson.build Thu Sep 22 20:25:37 2022 -0500
+++ b/libpurple/tests/meson.build Thu Sep 22 22:26:57 2022 -0500
@@ -3,7 +3,6 @@
@@ -48,3 +47,12 @@
+e = executable('test_credential_manager', 'test_credential_manager.c', + '-DTEST_DATA_DIR="@0@/data"'.format(meson.current_source_dir()) + dependencies : [libpurple_dep, glib], +test('credential_manager', e, env: testenv, is_parallel : false) \ No newline at end of file