* xsettings.c (init_gsettings): Use g_settings_schema_source_lookup

instead of deprecated g_settings_list_schemas if possible.

Fixes: debbugs:17434
This commit is contained in:
Jan Djärv 2014-05-10 12:42:08 +02:00
parent 3ebdceafc1
commit 4a5c71d7c2
2 changed files with 22 additions and 5 deletions

View file

@ -1,3 +1,8 @@
2014-05-10 Jan Djärv <jan.h.d@swipnet.se>
* xsettings.c (init_gsettings): Use g_settings_schema_source_lookup
instead of deprecated g_settings_list_schemas if possible (Bug#17434).
2014-05-07 Paul Eggert <eggert@cs.ucla.edu>
* minibuf.c (read_minibuf): Avoid C99ism in previous patch (Bug#17430).

View file

@ -795,17 +795,29 @@ init_gsettings (void)
{
#ifdef HAVE_GSETTINGS
GVariant *val;
const gchar *const *schemas;
int schema_found = 0;
#if ! GLIB_CHECK_VERSION (2, 36, 0)
g_type_init ();
#endif
schemas = g_settings_list_schemas ();
if (schemas == NULL) return;
while (! schema_found && *schemas != NULL)
schema_found = strcmp (*schemas++, GSETTINGS_SCHEMA) == 0;
#if GLIB_CHECK_VERSION (2, 32, 0)
{
GSettingsSchema *sc = g_settings_schema_source_lookup
(g_settings_schema_source_get_default (),
GSETTINGS_SCHEMA,
TRUE);
schema_found = sc != NULL;
if (sc) g_settings_schema_unref (sc);
}
#else
{
const gchar *const *schemas = g_settings_list_schemas ();
if (schemas == NULL) return;
while (! schema_found && *schemas != NULL)
schema_found = strcmp (*schemas++, GSETTINGS_SCHEMA) == 0;
}
#endif
if (!schema_found) return;
gsettings_client = g_settings_new (GSETTINGS_SCHEMA);