void preferences_set_gnome_keyring_export (gboolean new_value) { gconf_engine_set_bool (preferences_engine, "/apps/gnomint/gnome_keyring_export", new_value, NULL); }
void check_bool_storage(GConfEngine* conf) { GError* err = NULL; const gchar** keyp = NULL; guint i; /* Loop over keys, storing all bools at each then retrieving them */ keyp = keys; while (*keyp) { i = 0; while (i < n_bools) { gboolean gotten; if (!gconf_engine_set_bool(conf, *keyp, bools[i], &err)) { fprintf(stderr, "Failed to set key `%s' to `%d': %s\n", *keyp, bools[i], err->message); g_error_free(err); err = NULL; } else { sync_and_clear(conf); gotten = gconf_engine_get_bool(conf, *keyp, &err); if (err != NULL) { check(gotten == FALSE, "TRUE was returned though there was an error"); fprintf(stderr, "Failed to get key `%s': %s\n", *keyp, err->message); g_error_free(err); err = NULL; } else { check (bools[i] == gotten, "bool set/get pair: `%d' set, `%d' got", bools[i], gotten); } } ++i; } ++keyp; } /* Now invert the loop and see if that causes problems */ i = 0; while (i < n_bools) { keyp = keys; while (*keyp) { gboolean gotten; if (!gconf_engine_set_bool(conf, *keyp, bools[i], &err)) { fprintf(stderr, "Failed to set key `%s' to `%d': %s\n", *keyp, bools[i], err->message); g_error_free(err); err = NULL; } else { sync_and_clear(conf); gotten = gconf_engine_get_bool(conf, *keyp, &err); if (err != NULL) { check(gotten == FALSE, "TRUE was returned though there was an error"); fprintf(stderr, "Failed to get key `%s': %s\n", *keyp, err->message); g_error_free(err); err = NULL; } else { check (bools[i] == gotten, "bool set/get pair: `%d' set, `%d' got", bools[i], gotten); } } ++keyp; } ++i; } check_unset(conf); }