Fix for 64bit time_t From 0780809731c8ab1c364202b1900d3df106b28626 Mon Sep 17 00:00:00 2001 From: Robert Ancell Date: Wed, 14 Oct 2015 10:09:49 +0100 Subject: Fix some compiler warnings From 405f865c07261a95c8c9a09a84ab679c6dd0a330 Mon Sep 17 00:00:00 2001 From: Colin Walters Date: Thu, 24 Oct 2013 16:27:24 -0400 Subject: gsettings-data-convert: Warn (and fix) invalid schema paths From 98ff7acca7595f508b094506195aeffaf2e8b74c Mon Sep 17 00:00:00 2001 From: Stefan Sauer Date: Wed, 23 Jan 2013 07:11:18 +0000 Subject: mconvert: enable recursive scheme lookup and fix a crasher Index: gsettings/gsettings-data-convert.c --- gsettings/gsettings-data-convert.c.orig +++ gsettings/gsettings-data-convert.c @@ -22,6 +22,7 @@ #include #include #include +#include #include #include @@ -90,6 +91,10 @@ get_writable_client (void) GSList *addresses; addresses = get_writable_source_path (); + if (!addresses) { + g_printf("No writable gconf locations found\n"); + exit (1); + } engine = gconf_engine_get_local_for_addresses (addresses, NULL); gconf_address_list_free (addresses); @@ -155,7 +160,7 @@ handle_file (const gchar *filename) schema_path = g_strsplit (groups[i], ":", 2); - schema = g_settings_schema_source_lookup (source, schema_path[0], FALSE); + schema = g_settings_schema_source_lookup (source, schema_path[0], TRUE); if (schema == NULL) { if (verbose) @@ -177,7 +182,23 @@ handle_file (const gchar *filename) } if (schema_path[1] != NULL) - settings = g_settings_new_with_path (schema_path[0], schema_path[1]); + { + char *compat_path_alloced = NULL; + char *compat_path; + /* Work around broken .convert files: + https://bugzilla.gnome.org/show_bug.cgi?id=704802 + */ + if (!g_str_has_suffix (schema_path[1], "/")) + { + g_warning ("Schema file '%s' has missing trailing / in '%s'", + filename, schema_path[1]); + compat_path = compat_path_alloced = g_strconcat (schema_path[1], "/", NULL); + } + else + compat_path = schema_path[1]; + settings = g_settings_new_with_path (schema_path[0], compat_path); + g_free (compat_path_alloced); + } else settings = g_settings_new (schema_path[0]); @@ -573,7 +594,7 @@ save_state (GHashTable *converted) filename = g_build_filename (g_get_user_data_dir (), "gsettings-data-convert", NULL); keyfile = g_key_file_new (); - str = g_strdup_printf ("%ld", time (NULL)); + str = g_strdup_printf ("%lld", time (NULL)); g_key_file_set_string (keyfile, "State", "timestamp", str); g_free (str); @@ -616,8 +637,6 @@ main (int argc, char *argv[]) { "file", 0, 0, G_OPTION_ARG_STRING, &extra_file, "perform conversions from an extra file", NULL }, { NULL } }; - - g_type_init(); context = g_option_context_new ("");