X-Git-Url: http://pileus.org/git/?p=grits;a=blobdiff_plain;f=src%2Fgis-prefs.c;fp=src%2Fgis-prefs.c;h=afb427cb6273f373fd0ebd1bd07de809a9d5f5af;hp=d7d7d6d7e96a4dbe11e5aea7f1f83ab370292e8d;hb=d94dbc138e08bd7fc97e925503171f54ff0836a0;hpb=7197168828b6d4cf8015c1b57edca6f81ea300c2 diff --git a/src/gis-prefs.c b/src/gis-prefs.c index d7d7d6d..afb427c 100644 --- a/src/gis-prefs.c +++ b/src/gis-prefs.c @@ -65,19 +65,21 @@ GisPrefs *gis_prefs_new(const gchar *config, const gchar *defaults) #define make_pref_type(name, c_type, g_type) \ c_type gis_prefs_get_##name##_v(GisPrefs *self, \ - const gchar *group, const gchar *key) \ + const gchar *group, const gchar *key, GError **_error) \ { \ GError *error = NULL; \ c_type value = g_key_file_get_##name(self->key_file, group, key, &error); \ if (error && error->code != G_KEY_FILE_ERROR_GROUP_NOT_FOUND) \ g_warning("GisPrefs: get_value_##name - error getting key %s: %s\n", \ key, error->message); \ + if (error && _error) \ + *_error = error; \ return value; \ } \ -c_type gis_prefs_get_##name(GisPrefs *self, const gchar *key) \ +c_type gis_prefs_get_##name(GisPrefs *self, const gchar *key, GError **error) \ { \ gchar **keys = g_strsplit(key, "/", 2); \ - c_type value = gis_prefs_get_##name##_v(self, keys[0], keys[1]); \ + c_type value = gis_prefs_get_##name##_v(self, keys[0], keys[1], error); \ g_strfreev(keys); \ return value; \ } \