diff -Nru d-conf-0.11.6/bin/dconf.c d-conf-0.11.7/bin/dconf.c --- d-conf-0.11.6/bin/dconf.c 2012-03-08 16:30:29.000000000 +0000 +++ d-conf-0.11.7/bin/dconf.c 2012-03-19 18:08:48.000000000 +0000 @@ -1,4 +1,4 @@ -/* dconf.c generated by valac 0.15.2.4-51044, the Vala compiler +/* dconf.c generated by valac 0.15.2, the Vala compiler * generated from dconf.vala, do not modify */ /* diff -Nru d-conf-0.11.6/bin/dconf-dump.c d-conf-0.11.7/bin/dconf-dump.c --- d-conf-0.11.6/bin/dconf-dump.c 2012-03-08 16:30:29.000000000 +0000 +++ d-conf-0.11.7/bin/dconf-dump.c 2012-03-19 18:08:48.000000000 +0000 @@ -1,4 +1,4 @@ -/* dconf-dump.c generated by valac 0.15.2.4-51044, the Vala compiler +/* dconf-dump.c generated by valac 0.15.2, the Vala compiler * generated from dconf-dump.vala, do not modify */ diff -Nru d-conf-0.11.6/bin/dconf-update.c d-conf-0.11.7/bin/dconf-update.c --- d-conf-0.11.6/bin/dconf-update.c 2012-03-08 16:30:29.000000000 +0000 +++ d-conf-0.11.7/bin/dconf-update.c 2012-03-19 18:08:48.000000000 +0000 @@ -1,4 +1,4 @@ -/* dconf-update.c generated by valac 0.15.2.4-51044, the Vala compiler +/* dconf-update.c generated by valac 0.15.2, the Vala compiler * generated from dconf-update.vala, do not modify */ /* @@ -27,19 +27,20 @@ #include "gvdb-builder.h" #include #include +#include #include #include #include #include -#include #include #include #include #define _g_free0(var) (var = (g_free (var), NULL)) +#define __g_slist_free__g_free0_0(var) ((var == NULL) ? NULL : (var = (_g_slist_free__g_free0_ (var), NULL))) #define _g_dir_close0(var) ((var == NULL) ? NULL : (var = (g_dir_close (var), NULL))) -#define _g_hash_table_unref0(var) ((var == NULL) ? NULL : (var = (g_hash_table_unref (var), NULL))) #define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL))) +#define _g_hash_table_unref0(var) ((var == NULL) ? NULL : (var = (g_hash_table_unref (var), NULL))) #define _g_key_file_free0(var) ((var == NULL) ? NULL : (var = (g_key_file_free (var), NULL))) #define _g_variant_unref0(var) ((var == NULL) ? NULL : (var = (g_variant_unref (var), NULL))) #define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL))) @@ -47,10 +48,13 @@ GvdbItem* get_parent (GHashTable* table, const gchar* name); -GHashTable* read_locks_directory (const gchar* dirname, GError** error); -GHashTable* read_directory (const gchar* dirname, GError** error); -void maybe_update_from_directory (const gchar* dirname, GError** error); -void update_all (const gchar* dirname, GError** error); +GSList* list_directory (const gchar* dirname, mode_t mode); +static void _g_free0_ (gpointer var); +static void _g_slist_free__g_free0_ (GSList* self); +GHashTable* read_locks_directory (const gchar* dirname); +GHashTable* read_directory (const gchar* dirname); +void maybe_update_from_directory (const gchar* dirname); +void update_all (const gchar* dirname); void dconf_update (gchar** args, int args_length1); static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func); static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func); @@ -264,142 +268,241 @@ } -GHashTable* read_locks_directory (const gchar* dirname, GError** error) { - GHashTable* result = NULL; - GDir* dir = NULL; - GHashTable* _tmp3_; - GHashTable* table; - const gchar* name = NULL; +static void _g_free0_ (gpointer var) { + var = (g_free (var), NULL); +} + + +static void _g_slist_free__g_free0_ (GSList* self) { + g_slist_foreach (self, (GFunc) _g_free0_, NULL); + g_slist_free (self); +} + + +GSList* list_directory (const gchar* dirname, mode_t mode) { + GSList* result = NULL; GError * _inner_error_ = NULL; g_return_val_if_fail (dirname != NULL, NULL); { + GSList* list; const gchar* _tmp0_; GDir* _tmp1_ = NULL; - GDir* _tmp2_; + GDir* dir; + const gchar* name = NULL; + list = NULL; _tmp0_ = dirname; _tmp1_ = g_dir_open (_tmp0_, (guint) 0, &_inner_error_); - _tmp2_ = _tmp1_; + dir = _tmp1_; if (_inner_error_ != NULL) { + __g_slist_free__g_free0_0 (list); + if (g_error_matches (_inner_error_, G_FILE_ERROR, G_FILE_ERROR_NOENT)) { + goto __catch1_g_file_error_noent; + } goto __catch1_g_error; } + while (TRUE) { + GDir* _tmp2_; + const gchar* _tmp3_ = NULL; + const gchar* _tmp4_; + const gchar* _tmp5_; + gboolean _tmp6_ = FALSE; + const gchar* _tmp7_; + const gchar* _tmp8_; + gchar* _tmp9_ = NULL; + gchar* filename; + struct stat buf = {0}; + gboolean _tmp10_ = FALSE; + const gchar* _tmp11_; + struct stat _tmp12_ = {0}; + gint _tmp13_ = 0; + gboolean _tmp17_; + const gchar* _tmp18_; + gchar* _tmp19_; + _tmp2_ = dir; + _tmp3_ = g_dir_read_name (_tmp2_); + name = _tmp3_; + _tmp4_ = name; + if (!(_tmp4_ != NULL)) { + break; + } + _tmp5_ = name; + _tmp6_ = g_str_has_prefix (_tmp5_, "."); + if (_tmp6_) { + continue; + } + _tmp7_ = dirname; + _tmp8_ = name; + _tmp9_ = g_build_filename (_tmp7_, _tmp8_, NULL); + filename = _tmp9_; + _tmp11_ = filename; + _tmp13_ = stat (_tmp11_, &_tmp12_); + buf = _tmp12_; + if (_tmp13_ < 0) { + _tmp10_ = TRUE; + } else { + struct stat _tmp14_; + mode_t _tmp15_; + mode_t _tmp16_; + _tmp14_ = buf; + _tmp15_ = _tmp14_.st_mode; + _tmp16_ = mode; + _tmp10_ = (_tmp15_ & S_IFMT) != _tmp16_; + } + _tmp17_ = _tmp10_; + if (_tmp17_) { + _g_free0 (filename); + continue; + } + _tmp18_ = filename; + _tmp19_ = g_strdup (_tmp18_); + list = g_slist_prepend (list, _tmp19_); + _g_free0 (filename); + } + result = list; _g_dir_close0 (dir); - dir = _tmp2_; + return result; + } + goto __finally1; + __catch1_g_file_error_noent: + { + GError* e = NULL; + e = _inner_error_; + _inner_error_ = NULL; + result = NULL; + _g_error_free0 (e); + return result; } goto __finally1; __catch1_g_error: { - g_clear_error (&_inner_error_); + GError* e = NULL; + GError* _tmp20_; + const gchar* _tmp21_; + e = _inner_error_; _inner_error_ = NULL; + _tmp20_ = e; + _tmp21_ = _tmp20_->message; + g_printerr ("warning: %s\n", _tmp21_); result = NULL; - _g_dir_close0 (dir); + _g_error_free0 (e); return result; } __finally1: - if (_inner_error_ != NULL) { - g_propagate_error (error, _inner_error_); - _g_dir_close0 (dir); - return NULL; + g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); + g_clear_error (&_inner_error_); + return NULL; +} + + +GHashTable* read_locks_directory (const gchar* dirname) { + GHashTable* result = NULL; + const gchar* _tmp0_; + GSList* _tmp1_ = NULL; + GSList* files; + GSList* _tmp2_; + GHashTable* _tmp3_; + GHashTable* table; + GSList* _tmp4_; + GError * _inner_error_ = NULL; + g_return_val_if_fail (dirname != NULL, NULL); + _tmp0_ = dirname; + _tmp1_ = list_directory (_tmp0_, S_IFREG); + files = _tmp1_; + _tmp2_ = files; + if (_tmp2_ == NULL) { + result = NULL; + __g_slist_free__g_free0_0 (files); + return result; } _tmp3_ = gvdb_hash_table_new (NULL, NULL); table = _tmp3_; - while (TRUE) { - GDir* _tmp4_; - const gchar* _tmp5_ = NULL; - const gchar* _tmp6_; - const gchar* _tmp7_; - const gchar* _tmp8_; - gchar* _tmp9_ = NULL; - gchar* filename; - struct stat buf = {0}; - gboolean _tmp10_ = FALSE; - const gchar* _tmp11_; - struct stat _tmp12_ = {0}; - gint _tmp13_ = 0; - gboolean _tmp17_; - gchar* contents = NULL; - const gchar* _tmp18_; - gchar* _tmp19_ = NULL; - const gchar* _tmp20_; - gchar** _tmp21_; - gchar** _tmp22_ = NULL; - _tmp4_ = dir; - _tmp5_ = g_dir_read_name (_tmp4_); - name = _tmp5_; - _tmp6_ = name; - if (!(_tmp6_ != NULL)) { - break; - } - _tmp7_ = dirname; - _tmp8_ = name; - _tmp9_ = g_build_filename (_tmp7_, _tmp8_, NULL); - filename = _tmp9_; - _tmp11_ = filename; - _tmp13_ = stat (_tmp11_, &_tmp12_); - buf = _tmp12_; - if (_tmp13_ < 0) { - _tmp10_ = TRUE; - } else { - struct stat _tmp14_; - mode_t _tmp15_; - gboolean _tmp16_ = FALSE; - _tmp14_ = buf; - _tmp15_ = _tmp14_.st_mode; - _tmp16_ = S_ISREG (_tmp15_); - _tmp10_ = !_tmp16_; - } - _tmp17_ = _tmp10_; - if (_tmp17_) { - _g_free0 (filename); - continue; - } - _tmp18_ = filename; - g_file_get_contents (_tmp18_, &_tmp19_, NULL, &_inner_error_); - _g_free0 (contents); - contents = _tmp19_; - if (_inner_error_ != NULL) { - g_propagate_error (error, _inner_error_); - _g_free0 (contents); - _g_free0 (filename); - _g_hash_table_unref0 (table); - _g_dir_close0 (dir); - return NULL; - } - _tmp20_ = contents; - _tmp22_ = _tmp21_ = g_strsplit (_tmp20_, "\n", 0); - { - gchar** line_collection = NULL; - gint line_collection_length1 = 0; - gint _line_collection_size_ = 0; - gint line_it = 0; - line_collection = _tmp22_; - line_collection_length1 = _vala_array_length (_tmp21_); - for (line_it = 0; line_it < _vala_array_length (_tmp21_); line_it = line_it + 1) { - gchar* _tmp23_; - gchar* line = NULL; - _tmp23_ = g_strdup (line_collection[line_it]); - line = _tmp23_; + _tmp4_ = files; + { + GSList* filename_collection = NULL; + GSList* filename_it = NULL; + filename_collection = _tmp4_; + for (filename_it = filename_collection; filename_it != NULL; filename_it = filename_it->next) { + gchar* _tmp5_; + gchar* filename = NULL; + _tmp5_ = g_strdup ((const gchar*) filename_it->data); + filename = _tmp5_; + { { - const gchar* _tmp24_; - gboolean _tmp25_ = FALSE; - _tmp24_ = line; - _tmp25_ = g_str_has_prefix (_tmp24_, "/"); - if (_tmp25_) { - GHashTable* _tmp26_; - const gchar* _tmp27_; - _tmp26_ = table; - _tmp27_ = line; - gvdb_hash_table_insert_string (_tmp26_, _tmp27_, ""); + gchar* contents = NULL; + const gchar* _tmp6_; + gchar* _tmp7_ = NULL; + const gchar* _tmp8_; + gchar** _tmp9_; + gchar** _tmp10_ = NULL; + _tmp6_ = filename; + g_file_get_contents (_tmp6_, &_tmp7_, NULL, &_inner_error_); + _g_free0 (contents); + contents = _tmp7_; + if (_inner_error_ != NULL) { + _g_free0 (contents); + goto __catch2_g_error; + } + _tmp8_ = contents; + _tmp10_ = _tmp9_ = g_strsplit (_tmp8_, "\n", 0); + { + gchar** line_collection = NULL; + gint line_collection_length1 = 0; + gint _line_collection_size_ = 0; + gint line_it = 0; + line_collection = _tmp10_; + line_collection_length1 = _vala_array_length (_tmp9_); + for (line_it = 0; line_it < _vala_array_length (_tmp9_); line_it = line_it + 1) { + gchar* _tmp11_; + gchar* line = NULL; + _tmp11_ = g_strdup (line_collection[line_it]); + line = _tmp11_; + { + const gchar* _tmp12_; + gboolean _tmp13_ = FALSE; + _tmp12_ = line; + _tmp13_ = g_str_has_prefix (_tmp12_, "/"); + if (_tmp13_) { + GHashTable* _tmp14_; + const gchar* _tmp15_; + _tmp14_ = table; + _tmp15_ = line; + gvdb_hash_table_insert_string (_tmp14_, _tmp15_, ""); + } + _g_free0 (line); + } + } + line_collection = (_vala_array_free (line_collection, line_collection_length1, (GDestroyNotify) g_free), NULL); } - _g_free0 (line); + _g_free0 (contents); } + goto __finally2; + __catch2_g_error: + { + GError* e = NULL; + GError* _tmp16_; + const gchar* _tmp17_; + e = _inner_error_; + _inner_error_ = NULL; + _tmp16_ = e; + _tmp17_ = _tmp16_->message; + g_printerr ("warning: %s\n", _tmp17_); + _g_error_free0 (e); + } + __finally2: + if (_inner_error_ != NULL) { + _g_free0 (filename); + _g_hash_table_unref0 (table); + __g_slist_free__g_free0_0 (files); + g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); + g_clear_error (&_inner_error_); + return NULL; + } + _g_free0 (filename); } - line_collection = (_vala_array_free (line_collection, line_collection_length1, (GDestroyNotify) g_free), NULL); } - _g_free0 (contents); - _g_free0 (filename); } result = table; - _g_dir_close0 (dir); + __g_slist_free__g_free0_0 (files); return result; } @@ -417,22 +520,23 @@ } -GHashTable* read_directory (const gchar* dirname, GError** error) { +GHashTable* read_directory (const gchar* dirname) { GHashTable* result = NULL; GHashTable* _tmp0_; GHashTable* table; - const gchar* name = NULL; GHashTable* _tmp1_; const gchar* _tmp2_; - GDir* _tmp3_ = NULL; - GDir* dir; - const gchar* _tmp92_; - gchar* _tmp93_; - gchar* _tmp94_; - GHashTable* _tmp95_ = NULL; - GHashTable* _tmp96_; + GSList* _tmp3_ = NULL; + GSList* files; + GCompareFunc _tmp4_; + GSList* _tmp5_; + const gchar* _tmp78_; + gchar* _tmp79_; + gchar* _tmp80_; + GHashTable* _tmp81_ = NULL; + GHashTable* _tmp82_; GHashTable* locks; - GHashTable* _tmp97_; + GHashTable* _tmp83_; GError * _inner_error_ = NULL; g_return_val_if_fail (dirname != NULL, NULL); _tmp0_ = gvdb_hash_table_new (NULL, NULL); @@ -440,412 +544,414 @@ _tmp1_ = table; gvdb_hash_table_insert (_tmp1_, "/"); _tmp2_ = dirname; - _tmp3_ = g_dir_open (_tmp2_, (guint) 0, &_inner_error_); - dir = _tmp3_; - if (_inner_error_ != NULL) { - g_propagate_error (error, _inner_error_); - _g_hash_table_unref0 (table); - return NULL; - } - while (TRUE) { - GDir* _tmp4_; - const gchar* _tmp5_ = NULL; - const gchar* _tmp6_; - const gchar* _tmp7_; - const gchar* _tmp8_; - gchar* _tmp9_ = NULL; - gchar* filename; - struct stat buf = {0}; - gboolean _tmp10_ = FALSE; - const gchar* _tmp11_; - struct stat _tmp12_ = {0}; - gint _tmp13_ = 0; - gboolean _tmp17_; - GKeyFile* _tmp18_; - GKeyFile* kf; - GKeyFile* _tmp25_; - gsize _tmp26_; - gchar** _tmp27_ = NULL; - _tmp4_ = dir; - _tmp5_ = g_dir_read_name (_tmp4_); - name = _tmp5_; - _tmp6_ = name; - if (!(_tmp6_ != NULL)) { - break; - } - _tmp7_ = dirname; - _tmp8_ = name; - _tmp9_ = g_build_filename (_tmp7_, _tmp8_, NULL); - filename = _tmp9_; - _tmp11_ = filename; - _tmp13_ = stat (_tmp11_, &_tmp12_); - buf = _tmp12_; - if (_tmp13_ < 0) { - _tmp10_ = TRUE; - } else { - struct stat _tmp14_; - mode_t _tmp15_; - gboolean _tmp16_ = FALSE; - _tmp14_ = buf; - _tmp15_ = _tmp14_.st_mode; - _tmp16_ = S_ISREG (_tmp15_); - _tmp10_ = !_tmp16_; - } - _tmp17_ = _tmp10_; - if (_tmp17_) { - _g_free0 (filename); - continue; - } - _tmp18_ = g_key_file_new (); - kf = _tmp18_; - { - GKeyFile* _tmp19_; - const gchar* _tmp20_; - _tmp19_ = kf; - _tmp20_ = filename; - g_key_file_load_from_file (_tmp19_, _tmp20_, G_KEY_FILE_NONE, &_inner_error_); - if (_inner_error_ != NULL) { - goto __catch2_g_error; - } - } - goto __finally2; - __catch2_g_error: - { - GError* e = NULL; - FILE* _tmp21_; - const gchar* _tmp22_; - GError* _tmp23_; - const gchar* _tmp24_; - e = _inner_error_; - _inner_error_ = NULL; - _tmp21_ = stderr; - _tmp22_ = filename; - _tmp23_ = e; - _tmp24_ = _tmp23_->message; - fprintf (_tmp21_, "%s: %s\n", _tmp22_, _tmp24_); - _g_error_free0 (e); - _g_key_file_free0 (kf); - _g_free0 (filename); - continue; - } - __finally2: - if (_inner_error_ != NULL) { - g_propagate_error (error, _inner_error_); - _g_key_file_free0 (kf); - _g_free0 (filename); - _g_dir_close0 (dir); - _g_hash_table_unref0 (table); - return NULL; - } - _tmp25_ = kf; - _tmp27_ = g_key_file_get_groups (_tmp25_, &_tmp26_); - { - gchar** group_collection = NULL; - gint group_collection_length1 = 0; - gint _group_collection_size_ = 0; - gint group_it = 0; - group_collection = _tmp27_; - group_collection_length1 = _tmp26_; - for (group_it = 0; group_it < _tmp26_; group_it = group_it + 1) { - gchar* _tmp28_; - gchar* group = NULL; - _tmp28_ = g_strdup (group_collection[group_it]); - group = _tmp28_; + _tmp3_ = list_directory (_tmp2_, S_IFREG); + files = _tmp3_; + _tmp4_ = g_strcmp0; + files = g_slist_sort (files, _tmp4_); + files = g_slist_reverse (files); + _tmp5_ = files; + { + GSList* filename_collection = NULL; + GSList* filename_it = NULL; + filename_collection = _tmp5_; + for (filename_it = filename_collection; filename_it != NULL; filename_it = filename_it->next) { + gchar* _tmp6_; + gchar* filename = NULL; + _tmp6_ = g_strdup ((const gchar*) filename_it->data); + filename = _tmp6_; + { + GKeyFile* _tmp7_; + GKeyFile* kf; + _tmp7_ = g_key_file_new (); + kf = _tmp7_; { - gboolean _tmp29_ = FALSE; - gboolean _tmp30_ = FALSE; - const gchar* _tmp31_; - gboolean _tmp32_ = FALSE; - gboolean _tmp35_; - gboolean _tmp38_; - GKeyFile* _tmp42_; - const gchar* _tmp43_; - gsize _tmp44_; - gchar** _tmp45_ = NULL; - gchar** _tmp46_; - gint _tmp46__length1; - gint __tmp46__size_; - _tmp31_ = group; - _tmp32_ = g_str_has_prefix (_tmp31_, "/"); - if (_tmp32_) { - _tmp30_ = TRUE; - } else { - const gchar* _tmp33_; - gboolean _tmp34_ = FALSE; - _tmp33_ = group; - _tmp34_ = g_str_has_suffix (_tmp33_, "/"); - _tmp30_ = _tmp34_; - } - _tmp35_ = _tmp30_; - if (_tmp35_) { - _tmp29_ = TRUE; - } else { - const gchar* _tmp36_; - gboolean _tmp37_ = FALSE; - _tmp36_ = group; - _tmp37_ = string_contains (_tmp36_, "//"); - _tmp29_ = _tmp37_; - } - _tmp38_ = _tmp29_; - if (_tmp38_) { - FILE* _tmp39_; - const gchar* _tmp40_; - const gchar* _tmp41_; - _tmp39_ = stderr; - _tmp40_ = filename; - _tmp41_ = group; - fprintf (_tmp39_, "%s: ignoring invalid group name: %s\n", _tmp40_, _tmp41_); - _g_free0 (group); - continue; - } - _tmp42_ = kf; - _tmp43_ = group; - _tmp45_ = g_key_file_get_keys (_tmp42_, _tmp43_, &_tmp44_, &_inner_error_); - _tmp46_ = _tmp45_; - _tmp46__length1 = _tmp44_; - __tmp46__size_ = _tmp46__length1; + GKeyFile* _tmp8_; + const gchar* _tmp9_; + _tmp8_ = kf; + _tmp9_ = filename; + g_key_file_load_from_file (_tmp8_, _tmp9_, G_KEY_FILE_NONE, &_inner_error_); if (_inner_error_ != NULL) { - g_propagate_error (error, _inner_error_); - _g_free0 (group); - group_collection = (_vala_array_free (group_collection, group_collection_length1, (GDestroyNotify) g_free), NULL); - _g_key_file_free0 (kf); - _g_free0 (filename); - _g_dir_close0 (dir); - _g_hash_table_unref0 (table); - return NULL; + goto __catch3_g_error; } + } + goto __finally3; + __catch3_g_error: + { + GError* e = NULL; + FILE* _tmp10_; + const gchar* _tmp11_; + GError* _tmp12_; + const gchar* _tmp13_; + e = _inner_error_; + _inner_error_ = NULL; + _tmp10_ = stderr; + _tmp11_ = filename; + _tmp12_ = e; + _tmp13_ = _tmp12_->message; + fprintf (_tmp10_, "warning: Failed to read keyfile '%s': %s\n", _tmp11_, _tmp13_); + _g_error_free0 (e); + _g_key_file_free0 (kf); + _g_free0 (filename); + continue; + } + __finally3: + if (_inner_error_ != NULL) { + _g_key_file_free0 (kf); + _g_free0 (filename); + __g_slist_free__g_free0_0 (files); + _g_hash_table_unref0 (table); + g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); + g_clear_error (&_inner_error_); + return NULL; + } + { + GKeyFile* _tmp14_; + gsize _tmp15_; + gchar** _tmp16_ = NULL; + _tmp14_ = kf; + _tmp16_ = g_key_file_get_groups (_tmp14_, &_tmp15_); { - gchar** key_collection = NULL; - gint key_collection_length1 = 0; - gint _key_collection_size_ = 0; - gint key_it = 0; - key_collection = _tmp46_; - key_collection_length1 = _tmp46__length1; - for (key_it = 0; key_it < _tmp46__length1; key_it = key_it + 1) { - gchar* _tmp47_; - gchar* key = NULL; - _tmp47_ = g_strdup (key_collection[key_it]); - key = _tmp47_; + gchar** group_collection = NULL; + gint group_collection_length1 = 0; + gint _group_collection_size_ = 0; + gint group_it = 0; + group_collection = _tmp16_; + group_collection_length1 = _tmp15_; + for (group_it = 0; group_it < _tmp15_; group_it = group_it + 1) { + gchar* _tmp17_; + gchar* group = NULL; + _tmp17_ = g_strdup (group_collection[group_it]); + group = _tmp17_; { - const gchar* _tmp48_; - gboolean _tmp49_ = FALSE; - const gchar* _tmp54_; - gchar* _tmp55_; - gchar* _tmp56_; - gchar* _tmp57_; - gchar* _tmp58_; - const gchar* _tmp59_; - gchar* _tmp60_; - gchar* _tmp61_; - gchar* path; - GHashTable* _tmp62_; - const gchar* _tmp63_; - gconstpointer _tmp64_ = NULL; - GKeyFile* _tmp70_; - const gchar* _tmp71_; - const gchar* _tmp72_; - gchar* _tmp73_ = NULL; - gchar* text; - _tmp48_ = key; - _tmp49_ = string_contains (_tmp48_, "/"); - if (_tmp49_) { - FILE* _tmp50_; - const gchar* _tmp51_; - const gchar* _tmp52_; - const gchar* _tmp53_; - _tmp50_ = stderr; - _tmp51_ = filename; - _tmp52_ = group; - _tmp53_ = key; - fprintf (_tmp50_, "%s: [%s]: ignoring invalid key name: %s\n", _tmp51_, _tmp52_, _tmp53_); - _g_free0 (key); - continue; + gboolean _tmp18_ = FALSE; + gboolean _tmp19_ = FALSE; + const gchar* _tmp20_; + gboolean _tmp21_ = FALSE; + gboolean _tmp24_; + gboolean _tmp27_; + GKeyFile* _tmp31_; + const gchar* _tmp32_; + gsize _tmp33_; + gchar** _tmp34_ = NULL; + gchar** _tmp35_; + gint _tmp35__length1; + gint __tmp35__size_; + _tmp20_ = group; + _tmp21_ = g_str_has_prefix (_tmp20_, "/"); + if (_tmp21_) { + _tmp19_ = TRUE; + } else { + const gchar* _tmp22_; + gboolean _tmp23_ = FALSE; + _tmp22_ = group; + _tmp23_ = g_str_has_suffix (_tmp22_, "/"); + _tmp19_ = _tmp23_; } - _tmp54_ = group; - _tmp55_ = g_strconcat ("/", _tmp54_, NULL); - _tmp56_ = _tmp55_; - _tmp57_ = g_strconcat (_tmp56_, "/", NULL); - _tmp58_ = _tmp57_; - _tmp59_ = key; - _tmp60_ = g_strconcat (_tmp58_, _tmp59_, NULL); - _tmp61_ = _tmp60_; - _g_free0 (_tmp58_); - _g_free0 (_tmp56_); - path = _tmp61_; - _tmp62_ = table; - _tmp63_ = path; - _tmp64_ = g_hash_table_lookup (_tmp62_, _tmp63_); - if (((GvdbItem*) _tmp64_) != NULL) { - FILE* _tmp65_; - const gchar* _tmp66_; - const gchar* _tmp67_; - const gchar* _tmp68_; - const gchar* _tmp69_; - _tmp65_ = stderr; - _tmp66_ = filename; - _tmp67_ = group; - _tmp68_ = key; - _tmp69_ = path; - fprintf (_tmp65_, "%s: [%s]: %s: ignoring duplicate definition of key %s\n", _tmp66_, _tmp67_, _tmp68_, _tmp69_); - _g_free0 (path); - _g_free0 (key); + _tmp24_ = _tmp19_; + if (_tmp24_) { + _tmp18_ = TRUE; + } else { + const gchar* _tmp25_; + gboolean _tmp26_ = FALSE; + _tmp25_ = group; + _tmp26_ = string_contains (_tmp25_, "//"); + _tmp18_ = _tmp26_; + } + _tmp27_ = _tmp18_; + if (_tmp27_) { + FILE* _tmp28_; + const gchar* _tmp29_; + const gchar* _tmp30_; + _tmp28_ = stderr; + _tmp29_ = filename; + _tmp30_ = group; + fprintf (_tmp28_, "%s: ignoring invalid group name: %s\n", _tmp29_, _tmp30_); + _g_free0 (group); continue; } - _tmp70_ = kf; - _tmp71_ = group; - _tmp72_ = key; - _tmp73_ = g_key_file_get_value (_tmp70_, _tmp71_, _tmp72_, &_inner_error_); - text = _tmp73_; + _tmp31_ = kf; + _tmp32_ = group; + _tmp34_ = g_key_file_get_keys (_tmp31_, _tmp32_, &_tmp33_, &_inner_error_); + _tmp35_ = _tmp34_; + _tmp35__length1 = _tmp33_; + __tmp35__size_ = _tmp35__length1; if (_inner_error_ != NULL) { - g_propagate_error (error, _inner_error_); - _g_free0 (path); - _g_free0 (key); - key_collection = (_vala_array_free (key_collection, key_collection_length1, (GDestroyNotify) g_free), NULL); + _g_free0 (group); + group_collection = (_vala_array_free (group_collection, group_collection_length1, (GDestroyNotify) g_free), NULL); + if (_inner_error_->domain == G_KEY_FILE_ERROR) { + goto __catch4_g_key_file_error; + } _g_free0 (group); group_collection = (_vala_array_free (group_collection, group_collection_length1, (GDestroyNotify) g_free), NULL); _g_key_file_free0 (kf); _g_free0 (filename); - _g_dir_close0 (dir); + __g_slist_free__g_free0_0 (files); _g_hash_table_unref0 (table); + g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); + g_clear_error (&_inner_error_); return NULL; } { - const gchar* _tmp74_; - GVariant* _tmp75_ = NULL; - GVariant* value; - GHashTable* _tmp76_; - const gchar* _tmp77_; - GvdbItem* _tmp78_ = NULL; - GvdbItem* item; - GvdbItem* _tmp79_; - GHashTable* _tmp80_; - const gchar* _tmp81_; - GvdbItem* _tmp82_ = NULL; - GvdbItem* _tmp83_; - GVariant* _tmp84_; - _tmp74_ = text; - _tmp75_ = g_variant_parse (NULL, _tmp74_, NULL, NULL, &_inner_error_); - value = _tmp75_; - if (_inner_error_ != NULL) { - if (_inner_error_->domain == G_VARIANT_PARSE_ERROR) { - goto __catch3_g_variant_parse_error; + gchar** key_collection = NULL; + gint key_collection_length1 = 0; + gint _key_collection_size_ = 0; + gint key_it = 0; + key_collection = _tmp35_; + key_collection_length1 = _tmp35__length1; + for (key_it = 0; key_it < _tmp35__length1; key_it = key_it + 1) { + gchar* _tmp36_; + gchar* key = NULL; + _tmp36_ = g_strdup (key_collection[key_it]); + key = _tmp36_; + { + const gchar* _tmp37_; + gboolean _tmp38_ = FALSE; + const gchar* _tmp43_; + gchar* _tmp44_; + gchar* _tmp45_; + gchar* _tmp46_; + gchar* _tmp47_; + const gchar* _tmp48_; + gchar* _tmp49_; + gchar* _tmp50_; + gchar* path; + GHashTable* _tmp51_; + const gchar* _tmp52_; + gconstpointer _tmp53_ = NULL; + GKeyFile* _tmp54_; + const gchar* _tmp55_; + const gchar* _tmp56_; + gchar* _tmp57_ = NULL; + gchar* text; + _tmp37_ = key; + _tmp38_ = string_contains (_tmp37_, "/"); + if (_tmp38_) { + FILE* _tmp39_; + const gchar* _tmp40_; + const gchar* _tmp41_; + const gchar* _tmp42_; + _tmp39_ = stderr; + _tmp40_ = filename; + _tmp41_ = group; + _tmp42_ = key; + fprintf (_tmp39_, "%s: [%s]: ignoring invalid key name: %s\n", _tmp40_, _tmp41_, _tmp42_); + _g_free0 (key); + continue; + } + _tmp43_ = group; + _tmp44_ = g_strconcat ("/", _tmp43_, NULL); + _tmp45_ = _tmp44_; + _tmp46_ = g_strconcat (_tmp45_, "/", NULL); + _tmp47_ = _tmp46_; + _tmp48_ = key; + _tmp49_ = g_strconcat (_tmp47_, _tmp48_, NULL); + _tmp50_ = _tmp49_; + _g_free0 (_tmp47_); + _g_free0 (_tmp45_); + path = _tmp50_; + _tmp51_ = table; + _tmp52_ = path; + _tmp53_ = g_hash_table_lookup (_tmp51_, _tmp52_); + if (((GvdbItem*) _tmp53_) != NULL) { + _g_free0 (path); + _g_free0 (key); + continue; + } + _tmp54_ = kf; + _tmp55_ = group; + _tmp56_ = key; + _tmp57_ = g_key_file_get_value (_tmp54_, _tmp55_, _tmp56_, &_inner_error_); + text = _tmp57_; + if (_inner_error_ != NULL) { + _g_free0 (path); + _g_free0 (key); + key_collection = (_vala_array_free (key_collection, key_collection_length1, (GDestroyNotify) g_free), NULL); + _g_free0 (group); + group_collection = (_vala_array_free (group_collection, group_collection_length1, (GDestroyNotify) g_free), NULL); + if (_inner_error_->domain == G_KEY_FILE_ERROR) { + goto __catch4_g_key_file_error; + } + _g_free0 (path); + _g_free0 (key); + key_collection = (_vala_array_free (key_collection, key_collection_length1, (GDestroyNotify) g_free), NULL); + _g_free0 (group); + group_collection = (_vala_array_free (group_collection, group_collection_length1, (GDestroyNotify) g_free), NULL); + _g_key_file_free0 (kf); + _g_free0 (filename); + __g_slist_free__g_free0_0 (files); + _g_hash_table_unref0 (table); + g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); + g_clear_error (&_inner_error_); + return NULL; + } + { + const gchar* _tmp58_; + GVariant* _tmp59_ = NULL; + GVariant* value; + GHashTable* _tmp60_; + const gchar* _tmp61_; + GvdbItem* _tmp62_ = NULL; + GvdbItem* item; + GvdbItem* _tmp63_; + GHashTable* _tmp64_; + const gchar* _tmp65_; + GvdbItem* _tmp66_ = NULL; + GvdbItem* _tmp67_; + GVariant* _tmp68_; + _tmp58_ = text; + _tmp59_ = g_variant_parse (NULL, _tmp58_, NULL, NULL, &_inner_error_); + value = _tmp59_; + if (_inner_error_ != NULL) { + if (_inner_error_->domain == G_VARIANT_PARSE_ERROR) { + goto __catch5_g_variant_parse_error; + } + _g_free0 (text); + _g_free0 (path); + _g_free0 (key); + key_collection = (_vala_array_free (key_collection, key_collection_length1, (GDestroyNotify) g_free), NULL); + _g_free0 (group); + group_collection = (_vala_array_free (group_collection, group_collection_length1, (GDestroyNotify) g_free), NULL); + _g_key_file_free0 (kf); + _g_free0 (filename); + __g_slist_free__g_free0_0 (files); + _g_hash_table_unref0 (table); + g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); + g_clear_error (&_inner_error_); + return NULL; + } + _tmp60_ = table; + _tmp61_ = path; + _tmp62_ = gvdb_hash_table_insert (_tmp60_, _tmp61_); + item = _tmp62_; + _tmp63_ = item; + _tmp64_ = table; + _tmp65_ = path; + _tmp66_ = get_parent (_tmp64_, _tmp65_); + gvdb_item_set_parent (_tmp63_, _tmp66_); + _tmp67_ = item; + _tmp68_ = value; + gvdb_item_set_value (_tmp67_, _tmp68_); + _g_variant_unref0 (value); + } + goto __finally5; + __catch5_g_variant_parse_error: + { + GError* e = NULL; + FILE* _tmp69_; + const gchar* _tmp70_; + const gchar* _tmp71_; + const gchar* _tmp72_; + const gchar* _tmp73_; + GError* _tmp74_; + const gchar* _tmp75_; + e = _inner_error_; + _inner_error_ = NULL; + _tmp69_ = stderr; + _tmp70_ = filename; + _tmp71_ = group; + _tmp72_ = key; + _tmp73_ = text; + _tmp74_ = e; + _tmp75_ = _tmp74_->message; + fprintf (_tmp69_, "%s: [%s]: %s: skipping invalid value: %s (%s)\n", _tmp70_, _tmp71_, _tmp72_, _tmp73_, _tmp75_); + _g_error_free0 (e); + } + __finally5: + if (_inner_error_ != NULL) { + _g_free0 (text); + _g_free0 (path); + _g_free0 (key); + key_collection = (_vala_array_free (key_collection, key_collection_length1, (GDestroyNotify) g_free), NULL); + _g_free0 (group); + group_collection = (_vala_array_free (group_collection, group_collection_length1, (GDestroyNotify) g_free), NULL); + if (_inner_error_->domain == G_KEY_FILE_ERROR) { + goto __catch4_g_key_file_error; + } + _g_free0 (text); + _g_free0 (path); + _g_free0 (key); + key_collection = (_vala_array_free (key_collection, key_collection_length1, (GDestroyNotify) g_free), NULL); + _g_free0 (group); + group_collection = (_vala_array_free (group_collection, group_collection_length1, (GDestroyNotify) g_free), NULL); + _g_key_file_free0 (kf); + _g_free0 (filename); + __g_slist_free__g_free0_0 (files); + _g_hash_table_unref0 (table); + g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); + g_clear_error (&_inner_error_); + return NULL; + } + _g_free0 (text); + _g_free0 (path); + _g_free0 (key); } - _g_free0 (text); - _g_free0 (path); - _g_free0 (key); - key_collection = (_vala_array_free (key_collection, key_collection_length1, (GDestroyNotify) g_free), NULL); - _g_free0 (group); - group_collection = (_vala_array_free (group_collection, group_collection_length1, (GDestroyNotify) g_free), NULL); - _g_key_file_free0 (kf); - _g_free0 (filename); - _g_dir_close0 (dir); - _g_hash_table_unref0 (table); - g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); - g_clear_error (&_inner_error_); - return NULL; } - _tmp76_ = table; - _tmp77_ = path; - _tmp78_ = gvdb_hash_table_insert (_tmp76_, _tmp77_); - item = _tmp78_; - _tmp79_ = item; - _tmp80_ = table; - _tmp81_ = path; - _tmp82_ = get_parent (_tmp80_, _tmp81_); - gvdb_item_set_parent (_tmp79_, _tmp82_); - _tmp83_ = item; - _tmp84_ = value; - gvdb_item_set_value (_tmp83_, _tmp84_); - _g_variant_unref0 (value); - } - goto __finally3; - __catch3_g_variant_parse_error: - { - GError* e = NULL; - FILE* _tmp85_; - const gchar* _tmp86_; - const gchar* _tmp87_; - const gchar* _tmp88_; - const gchar* _tmp89_; - GError* _tmp90_; - const gchar* _tmp91_; - e = _inner_error_; - _inner_error_ = NULL; - _tmp85_ = stderr; - _tmp86_ = filename; - _tmp87_ = group; - _tmp88_ = key; - _tmp89_ = text; - _tmp90_ = e; - _tmp91_ = _tmp90_->message; - fprintf (_tmp85_, "%s: [%s]: %s: skipping invalid value: %s (%s)\n", _tmp86_, _tmp87_, _tmp88_, _tmp89_, _tmp91_); - _g_error_free0 (e); - } - __finally3: - if (_inner_error_ != NULL) { - g_propagate_error (error, _inner_error_); - _g_free0 (text); - _g_free0 (path); - _g_free0 (key); key_collection = (_vala_array_free (key_collection, key_collection_length1, (GDestroyNotify) g_free), NULL); - _g_free0 (group); - group_collection = (_vala_array_free (group_collection, group_collection_length1, (GDestroyNotify) g_free), NULL); - _g_key_file_free0 (kf); - _g_free0 (filename); - _g_dir_close0 (dir); - _g_hash_table_unref0 (table); - return NULL; } - _g_free0 (text); - _g_free0 (path); - _g_free0 (key); + _g_free0 (group); } } - key_collection = (_vala_array_free (key_collection, key_collection_length1, (GDestroyNotify) g_free), NULL); + group_collection = (_vala_array_free (group_collection, group_collection_length1, (GDestroyNotify) g_free), NULL); } - _g_free0 (group); } + goto __finally4; + __catch4_g_key_file_error: + { + GError* e = NULL; + GError* _tmp76_; + const gchar* _tmp77_; + e = _inner_error_; + _inner_error_ = NULL; + _tmp76_ = e; + _tmp77_ = _tmp76_->message; + g_warning ("dconf-update.vala:165: unexpected keyfile error: %s. Please file a bu" \ +"g.", _tmp77_); + _g_error_free0 (e); + } + __finally4: + if (_inner_error_ != NULL) { + _g_key_file_free0 (kf); + _g_free0 (filename); + __g_slist_free__g_free0_0 (files); + _g_hash_table_unref0 (table); + g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); + g_clear_error (&_inner_error_); + return NULL; + } + _g_key_file_free0 (kf); + _g_free0 (filename); } - group_collection = (_vala_array_free (group_collection, group_collection_length1, (GDestroyNotify) g_free), NULL); } - _g_key_file_free0 (kf); - _g_free0 (filename); - } - _tmp92_ = dirname; - _tmp93_ = g_strconcat (_tmp92_, "/locks", NULL); - _tmp94_ = _tmp93_; - _tmp95_ = read_locks_directory (_tmp94_, &_inner_error_); - _tmp96_ = _tmp95_; - _g_free0 (_tmp94_); - locks = _tmp96_; - if (_inner_error_ != NULL) { - g_propagate_error (error, _inner_error_); - _g_dir_close0 (dir); - _g_hash_table_unref0 (table); - return NULL; } - _tmp97_ = locks; - if (_tmp97_ != NULL) { - GHashTable* _tmp98_; - GvdbItem* _tmp99_ = NULL; + _tmp78_ = dirname; + _tmp79_ = g_strconcat (_tmp78_, "/locks", NULL); + _tmp80_ = _tmp79_; + _tmp81_ = read_locks_directory (_tmp80_); + _tmp82_ = _tmp81_; + _g_free0 (_tmp80_); + locks = _tmp82_; + _tmp83_ = locks; + if (_tmp83_ != NULL) { + GHashTable* _tmp84_; + GvdbItem* _tmp85_ = NULL; GvdbItem* item; - GvdbItem* _tmp100_; - GHashTable* _tmp101_; - _tmp98_ = table; - _tmp99_ = gvdb_hash_table_insert (_tmp98_, ".locks"); - item = _tmp99_; - _tmp100_ = item; - _tmp101_ = locks; - gvdb_item_set_hash_table (_tmp100_, _tmp101_); + GvdbItem* _tmp86_; + GHashTable* _tmp87_; + _tmp84_ = table; + _tmp85_ = gvdb_hash_table_insert (_tmp84_, ".locks"); + item = _tmp85_; + _tmp86_ = item; + _tmp87_ = locks; + gvdb_item_set_hash_table (_tmp86_, _tmp87_); } result = table; _g_hash_table_unref0 (locks); - _g_dir_close0 (dir); + __g_slist_free__g_free0_0 (files); return result; } -void maybe_update_from_directory (const gchar* dirname, GError** error) { +void maybe_update_from_directory (const gchar* dirname) { struct stat dir_buf = {0}; gboolean _tmp0_ = FALSE; const gchar* _tmp1_; @@ -956,13 +1062,8 @@ return; } _tmp36_ = dirname; - _tmp37_ = read_directory (_tmp36_, &_inner_error_); + _tmp37_ = read_directory (_tmp36_); table = _tmp37_; - if (_inner_error_ != NULL) { - g_propagate_error (error, _inner_error_); - _g_free0 (filename); - return; - } _tmp38_ = filename; _tmp39_ = open (_tmp38_, O_WRONLY, (mode_t) 0); fd = _tmp39_; @@ -981,104 +1082,128 @@ const gchar* _tmp45_; gint _tmp46_; const gchar* _tmp47_ = NULL; - GError* _tmp48_; _tmp44_ = errno; saved_error = _tmp44_; _tmp45_ = filename; _tmp46_ = saved_error; _tmp47_ = g_strerror (_tmp46_); - _tmp48_ = g_error_new (G_FILE_ERROR, G_FILE_ERROR_FAILED, "Can not open '%s' for replacement: %s", _tmp45_, _tmp47_); - _inner_error_ = _tmp48_; - g_propagate_error (error, _inner_error_); + g_printerr ("warning: Failed to open '%s' for replacement: %s\n", _tmp45_, _tmp47_); _g_hash_table_unref0 (table); _g_free0 (filename); return; } { - GHashTable* _tmp49_; - const gchar* _tmp50_; - gint _tmp51_; - _tmp49_ = table; - _tmp50_ = filename; - gvdb_table_write_contents (_tmp49_, _tmp50_, FALSE, &_inner_error_); + GHashTable* _tmp48_; + const gchar* _tmp49_; + gint _tmp50_; + _tmp48_ = table; + _tmp49_ = filename; + gvdb_table_write_contents (_tmp48_, _tmp49_, FALSE, &_inner_error_); if (_inner_error_ != NULL) { - goto __finally4; + goto __catch6_g_error; } - _tmp51_ = fd; - if (_tmp51_ >= 0) { - gint _tmp52_; - _tmp52_ = fd; - write (_tmp52_, "\0\0\0\0\0\0\0\0", (gsize) 8); + _tmp50_ = fd; + if (_tmp50_ >= 0) { + gint _tmp51_; + _tmp51_ = fd; + write (_tmp51_, "\0\0\0\0\0\0\0\0", (gsize) 8); } } - __finally4: + goto __finally6; + __catch6_g_error: { - gint _tmp53_; - _tmp53_ = fd; - if (_tmp53_ >= 0) { + GError* e = NULL; + GError* _tmp52_; + const gchar* _tmp53_; + e = _inner_error_; + _inner_error_ = NULL; + _tmp52_ = e; + _tmp53_ = _tmp52_->message; + g_printerr ("warning: %s\n", _tmp53_); + _g_error_free0 (e); + { gint _tmp54_; _tmp54_ = fd; - close (_tmp54_); + if (_tmp54_ >= 0) { + gint _tmp55_; + _tmp55_ = fd; + close (_tmp55_); + } + } + _g_hash_table_unref0 (table); + _g_free0 (filename); + return; + } + __finally6: + { + gint _tmp56_; + _tmp56_ = fd; + if (_tmp56_ >= 0) { + gint _tmp57_; + _tmp57_ = fd; + close (_tmp57_); } } if (_inner_error_ != NULL) { - g_propagate_error (error, _inner_error_); _g_hash_table_unref0 (table); _g_free0 (filename); + g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); + g_clear_error (&_inner_error_); return; } { - GDBusConnection* _tmp55_ = NULL; + GDBusConnection* _tmp58_ = NULL; GDBusConnection* system_bus; - GDBusConnection* _tmp56_; - const gchar* _tmp57_; - gchar* _tmp58_ = NULL; - gchar* _tmp59_; - gchar* _tmp60_; - gchar* _tmp61_; - GVariant* _tmp62_; - GVariant* _tmp63_; - GDBusConnection* _tmp64_; - _tmp55_ = g_bus_get_sync (G_BUS_TYPE_SYSTEM, NULL, &_inner_error_); - system_bus = _tmp55_; + GDBusConnection* _tmp59_; + const gchar* _tmp60_; + gchar* _tmp61_ = NULL; + gchar* _tmp62_; + gchar* _tmp63_; + gchar* _tmp64_; + GVariant* _tmp65_; + GVariant* _tmp66_; + GDBusConnection* _tmp67_; + _tmp58_ = g_bus_get_sync (G_BUS_TYPE_SYSTEM, NULL, &_inner_error_); + system_bus = _tmp58_; if (_inner_error_ != NULL) { - goto __catch5_g_error; + goto __catch7_g_error; } - _tmp56_ = system_bus; - _tmp57_ = filename; - _tmp58_ = g_path_get_basename (_tmp57_); - _tmp59_ = _tmp58_; - _tmp60_ = g_strconcat ("/ca/desrt/dconf/Writer/", _tmp59_, NULL); - _tmp61_ = _tmp60_; - _tmp62_ = g_variant_new ("(s)", "/", NULL); - _tmp63_ = g_variant_ref_sink (_tmp62_); - g_dbus_connection_emit_signal (_tmp56_, NULL, _tmp61_, "ca.desrt.dconf.Writer", "WritabilityNotify", _tmp63_, &_inner_error_); - _g_variant_unref0 (_tmp63_); - _g_free0 (_tmp61_); - _g_free0 (_tmp59_); + _tmp59_ = system_bus; + _tmp60_ = filename; + _tmp61_ = g_path_get_basename (_tmp60_); + _tmp62_ = _tmp61_; + _tmp63_ = g_strconcat ("/ca/desrt/dconf/Writer/", _tmp62_, NULL); + _tmp64_ = _tmp63_; + _tmp65_ = g_variant_new ("(s)", "/", NULL); + _tmp66_ = g_variant_ref_sink (_tmp65_); + g_dbus_connection_emit_signal (_tmp59_, NULL, _tmp64_, "ca.desrt.dconf.Writer", "WritabilityNotify", _tmp66_, &_inner_error_); + _g_variant_unref0 (_tmp66_); + _g_free0 (_tmp64_); + _g_free0 (_tmp62_); if (_inner_error_ != NULL) { _g_object_unref0 (system_bus); - goto __catch5_g_error; + goto __catch7_g_error; } - _tmp64_ = system_bus; - g_dbus_connection_flush_sync (_tmp64_, NULL, &_inner_error_); + _tmp67_ = system_bus; + g_dbus_connection_flush_sync (_tmp67_, NULL, &_inner_error_); if (_inner_error_ != NULL) { _g_object_unref0 (system_bus); - goto __catch5_g_error; + goto __catch7_g_error; } _g_object_unref0 (system_bus); } - goto __finally5; - __catch5_g_error: + goto __finally7; + __catch7_g_error: { g_clear_error (&_inner_error_); _inner_error_ = NULL; } - __finally5: + __finally7: if (_inner_error_ != NULL) { - g_propagate_error (error, _inner_error_); _g_hash_table_unref0 (table); _g_free0 (filename); + g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); + g_clear_error (&_inner_error_); return; } _g_hash_table_unref0 (table); @@ -1087,105 +1212,41 @@ } -void update_all (const gchar* dirname, GError** error) { - const gchar* name = NULL; +void update_all (const gchar* dirname) { const gchar* _tmp0_; - GDir* _tmp1_ = NULL; - GDir* dir; - GError * _inner_error_ = NULL; + GSList* _tmp1_ = NULL; g_return_if_fail (dirname != NULL); _tmp0_ = dirname; - _tmp1_ = g_dir_open (_tmp0_, (guint) 0, &_inner_error_); - dir = _tmp1_; - if (_inner_error_ != NULL) { - g_propagate_error (error, _inner_error_); - return; - } - while (TRUE) { - const gchar* _tmp2_ = NULL; - const gchar* _tmp3_; - const gchar* _tmp4_; - gboolean _tmp5_ = FALSE; - _tmp2_ = g_dir_read_name (dir); - name = _tmp2_; - _tmp3_ = name; - if (!(_tmp3_ != NULL)) { - break; - } - _tmp4_ = name; - _tmp5_ = g_str_has_suffix (_tmp4_, ".d"); - if (_tmp5_) { + _tmp1_ = list_directory (_tmp0_, S_IFDIR); + { + GSList* name_collection = NULL; + GSList* name_it = NULL; + name_collection = _tmp1_; + for (name_it = name_collection; name_it != NULL; name_it = name_it->next) { + gchar* _tmp2_; + gchar* name = NULL; + _tmp2_ = g_strdup ((const gchar*) name_it->data); + name = _tmp2_; { - const gchar* _tmp6_; - const gchar* _tmp7_; - gchar* _tmp8_ = NULL; - gchar* _tmp9_; - _tmp6_ = dirname; - _tmp7_ = name; - _tmp8_ = g_build_filename (_tmp6_, _tmp7_, NULL); - _tmp9_ = _tmp8_; - maybe_update_from_directory (_tmp9_, &_inner_error_); - _g_free0 (_tmp9_); - if (_inner_error_ != NULL) { - goto __catch6_g_error; + const gchar* _tmp3_; + gboolean _tmp4_ = FALSE; + _tmp3_ = name; + _tmp4_ = g_str_has_suffix (_tmp3_, ".d"); + if (_tmp4_) { + const gchar* _tmp5_; + _tmp5_ = name; + maybe_update_from_directory (_tmp5_); } - } - goto __finally6; - __catch6_g_error: - { - GError* e = NULL; - FILE* _tmp10_; - GError* _tmp11_; - const gchar* _tmp12_; - e = _inner_error_; - _inner_error_ = NULL; - _tmp10_ = stderr; - _tmp11_ = e; - _tmp12_ = _tmp11_->message; - fprintf (_tmp10_, "%s\n", _tmp12_); - _g_error_free0 (e); - } - __finally6: - if (_inner_error_ != NULL) { - g_propagate_error (error, _inner_error_); - _g_dir_close0 (dir); - return; + _g_free0 (name); } } + __g_slist_free__g_free0_0 (name_collection); } - _g_dir_close0 (dir); } void dconf_update (gchar** args, int args_length1) { - GError * _inner_error_ = NULL; - { - update_all ("/etc/dconf/db", &_inner_error_); - if (_inner_error_ != NULL) { - goto __catch7_g_error; - } - } - goto __finally7; - __catch7_g_error: - { - GError* e = NULL; - FILE* _tmp0_; - GError* _tmp1_; - const gchar* _tmp2_; - e = _inner_error_; - _inner_error_ = NULL; - _tmp0_ = stderr; - _tmp1_ = e; - _tmp2_ = _tmp1_->message; - fprintf (_tmp0_, "fatal: %s\n", _tmp2_); - _g_error_free0 (e); - } - __finally7: - if (_inner_error_ != NULL) { - g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); - g_clear_error (&_inner_error_); - return; - } + update_all ("/etc/dconf/db"); } diff -Nru d-conf-0.11.6/bin/dconf-update.vala d-conf-0.11.7/bin/dconf-update.vala --- d-conf-0.11.6/bin/dconf-update.vala 2012-03-07 04:49:37.000000000 +0000 +++ d-conf-0.11.7/bin/dconf-update.vala 2012-03-19 15:36:21.000000000 +0000 @@ -43,97 +43,126 @@ return parent; } -Gvdb.HashTable? read_locks_directory (string dirname) throws GLib.Error { - Dir dir; - +SList? list_directory (string dirname, Posix.mode_t mode) { try { - dir = Dir.open (dirname); - } catch { + var list = new SList (); + var dir = Dir.open (dirname); + unowned string? name; + + while ((name = dir.read_name ()) != null) { + if (name.has_prefix (".")) { + continue; + } + + var filename = Path.build_filename (dirname, name); + Posix.Stat buf; + + // only files of the requested type + if (Posix.stat (filename, out buf) < 0 || (buf.st_mode & Posix.S_IFMT) != mode) { + continue; + } + + list.prepend (filename); + } + + return list; + } catch (FileError.NOENT e) { + /* This is expected if the directory does not exist. + * Just return the empty list in that case... + */ + return null; + } catch (Error e) { + /* Unexpected error. Report it and return null. */ + printerr ("warning: %s\n", e.message); return null; } +} - var table = new Gvdb.HashTable (); - unowned string? name; +Gvdb.HashTable? read_locks_directory (string dirname) { + var files = list_directory (dirname, Posix.S_IFREG); - while ((name = dir.read_name ()) != null) { - var filename = Path.build_filename (dirname, name); - Posix.Stat buf; + if (files == null) { + /* No locks directory or directory is empty? */ + return null; + } - // only 'normal' files - if (Posix.stat (filename, out buf) < 0 || !Posix.S_ISREG (buf.st_mode)) { - continue; - } + var table = new Gvdb.HashTable (); - string contents; - FileUtils.get_contents (filename, out contents, null); + foreach (var filename in files) { + try { + string contents; + FileUtils.get_contents (filename, out contents, null); - foreach (var line in contents.split ("\n")) { - if (line.has_prefix ("/")) { - table.insert_string (line, ""); + foreach (var line in contents.split ("\n")) { + if (line.has_prefix ("/")) { + table.insert_string (line, ""); + } } + } catch (Error e) { + printerr ("warning: %s\n", e.message); } } return table; } -Gvdb.HashTable read_directory (string dirname) throws GLib.Error { +Gvdb.HashTable read_directory (string dirname) { var table = new Gvdb.HashTable (); - unowned string? name; - table.insert ("/"); - var dir = Dir.open (dirname); - while ((name = dir.read_name ()) != null) { - var filename = Path.build_filename (dirname, name); - Posix.Stat buf; - - // only 'normal' files - if (Posix.stat (filename, out buf) < 0 || !Posix.S_ISREG (buf.st_mode)) { - continue; - } + var files = list_directory (dirname, Posix.S_IFREG); + files.sort (strcmp); + files.reverse (); + foreach (var filename in files) { var kf = new KeyFile (); try { kf.load_from_file (filename, KeyFileFlags.NONE); } catch (GLib.Error e) { - stderr.printf ("%s: %s\n", filename, e.message); + stderr.printf ("warning: Failed to read keyfile '%s': %s\n", filename, e.message); continue; } - foreach (var group in kf.get_groups ()) { - if (group.has_prefix ("/") || group.has_suffix ("/") || "//" in group) { - stderr.printf ("%s: ignoring invalid group name: %s\n", filename, group); - continue; - } - - foreach (var key in kf.get_keys (group)) { - if ("/" in key) { - stderr.printf ("%s: [%s]: ignoring invalid key name: %s\n", filename, group, key); - continue; - } - - var path = "/" + group + "/" + key; - - if (table.lookup (path) != null) { - stderr.printf ("%s: [%s]: %s: ignoring duplicate definition of key %s\n", - filename, group, key, path); + try { + foreach (var group in kf.get_groups ()) { + if (group.has_prefix ("/") || group.has_suffix ("/") || "//" in group) { + stderr.printf ("%s: ignoring invalid group name: %s\n", filename, group); continue; } - var text = kf.get_value (group, key); - - try { - var value = Variant.parse (null, text); - unowned Gvdb.Item item = table.insert (path); - item.set_parent (get_parent (table, path)); - item.set_value (value); - } catch (VariantParseError e) { - stderr.printf ("%s: [%s]: %s: skipping invalid value: %s (%s)\n", - filename, group, key, text, e.message); + foreach (var key in kf.get_keys (group)) { + if ("/" in key) { + stderr.printf ("%s: [%s]: ignoring invalid key name: %s\n", filename, group, key); + continue; + } + + var path = "/" + group + "/" + key; + + if (table.lookup (path) != null) { + /* We process the files in reverse alphabetical order. If the key is already set then + * it must have been set from a file with higher precedence so we should ignore this + * one. + */ + continue; + } + + var text = kf.get_value (group, key); + + try { + var value = Variant.parse (null, text); + unowned Gvdb.Item item = table.insert (path); + item.set_parent (get_parent (table, path)); + item.set_value (value); + } catch (VariantParseError e) { + stderr.printf ("%s: [%s]: %s: skipping invalid value: %s (%s)\n", + filename, group, key, text, e.message); + } } } + } catch (KeyFileError e) { + /* This should never happen... */ + warning ("unexpected keyfile error: %s. Please file a bug.", e.message); } } @@ -147,7 +176,7 @@ return table; } -void maybe_update_from_directory (string dirname) throws GLib.Error { +void maybe_update_from_directory (string dirname) { Posix.Stat dir_buf; if (Posix.stat (dirname, out dir_buf) == 0 && Posix.S_ISDIR (dir_buf.st_mode)) { @@ -171,15 +200,21 @@ if (fd < 0 && errno != Posix.ENOENT) { var saved_error = errno; - throw new FileError.FAILED ("Can not open '%s' for replacement: %s", filename, strerror (saved_error)); + printerr ("warning: Failed to open '%s' for replacement: %s\n", filename, strerror (saved_error)); + return; } + // We expect that fd < 0 here if ENOENT (ie: the db merely didn't exist yet) + try { table.write_contents (filename); if (fd >= 0) { Posix.write (fd, "\0\0\0\0\0\0\0\0", 8); } + } catch (Error e) { + printerr ("warning: %s\n", e.message); + return; } finally { if (fd >= 0) { Posix.close (fd); @@ -197,28 +232,16 @@ } } -void update_all (string dirname) throws GLib.Error { - unowned string? name; - - var dir = Dir.open (dirname); - - while ((name = dir.read_name ()) != null) { +void update_all (string dirname) { + foreach (var name in list_directory (dirname, Posix.S_IFDIR)) { if (name.has_suffix (".d")) { - try { - maybe_update_from_directory (Path.build_filename (dirname, name)); - } catch (GLib.Error e) { - stderr.printf ("%s\n", e.message); - } + maybe_update_from_directory (name); } } } void dconf_update (string[] args) { - try { - update_all ("/etc/dconf/db"); - } catch (GLib.Error e) { - stderr.printf ("fatal: %s\n", e.message); - } + update_all ("/etc/dconf/db"); } // vim:noet ts=4 sw=4 diff -Nru d-conf-0.11.6/bin/Makefile.am d-conf-0.11.7/bin/Makefile.am --- d-conf-0.11.6/bin/Makefile.am 2012-03-07 04:49:37.000000000 +0000 +++ d-conf-0.11.7/bin/Makefile.am 2012-03-19 13:31:24.000000000 +0000 @@ -1,4 +1,4 @@ -AM_CFLAGS = -std=c89 -Wall -Wmissing-prototypes -Wwrite-strings +AM_CFLAGS = -Wall -Wmissing-prototypes -Wwrite-strings CFLAGS += -Wno-error -Wno-unused-but-set-variable -Wno-unused-variable INCLUDES = -I$(top_srcdir)/common -I$(top_srcdir)/engine -I$(top_srcdir)/client -I$(top_srcdir)/gvdb $(gio_CFLAGS) diff -Nru d-conf-0.11.6/bin/Makefile.in d-conf-0.11.7/bin/Makefile.in --- d-conf-0.11.6/bin/Makefile.in 2012-03-08 16:34:23.000000000 +0000 +++ d-conf-0.11.7/bin/Makefile.in 2012-03-19 18:08:41.000000000 +0000 @@ -227,7 +227,7 @@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ -AM_CFLAGS = -std=c89 -Wall -Wmissing-prototypes -Wwrite-strings +AM_CFLAGS = -Wall -Wmissing-prototypes -Wwrite-strings INCLUDES = -I$(top_srcdir)/common -I$(top_srcdir)/engine -I$(top_srcdir)/client -I$(top_srcdir)/gvdb $(gio_CFLAGS) dconf_VALAFLAGS = --vapidir ../client --pkg=gio-2.0 --pkg=posix --pkg=dconf dconf_LDADD = $(gio_LIBS) ../client/libdconf.so.0 diff -Nru d-conf-0.11.6/client/dconf-client.c d-conf-0.11.7/client/dconf-client.c --- d-conf-0.11.6/client/dconf-client.c 2012-03-08 16:30:28.000000000 +0000 +++ d-conf-0.11.7/client/dconf-client.c 2012-03-19 18:08:48.000000000 +0000 @@ -1,4 +1,4 @@ -/* dconf-client.c generated by valac 0.15.2.4-51044, the Vala compiler +/* dconf-client.c generated by valac 0.15.2, the Vala compiler * generated from dconf-client.vala, do not modify */ diff -Nru d-conf-0.11.6/client/dconf.vapi d-conf-0.11.7/client/dconf.vapi --- d-conf-0.11.6/client/dconf.vapi 2012-03-08 16:30:28.000000000 +0000 +++ d-conf-0.11.7/client/dconf.vapi 2012-03-19 18:08:48.000000000 +0000 @@ -1,4 +1,4 @@ -/* dconf.vapi generated by valac 0.15.2.4-51044, do not modify. */ +/* dconf.vapi generated by valac 0.15.2, do not modify. */ namespace DConf { [CCode (cheader_filename = "dconf.h")] diff -Nru d-conf-0.11.6/configure d-conf-0.11.7/configure --- d-conf-0.11.6/configure 2012-03-08 16:30:22.000000000 +0000 +++ d-conf-0.11.7/configure 2012-03-19 18:08:42.000000000 +0000 @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.68 for dconf 0.11.6. +# Generated by GNU Autoconf 2.68 for dconf 0.11.7. # # Report bugs to . # @@ -620,8 +620,8 @@ # Identity of this package. PACKAGE_NAME='dconf' PACKAGE_TARNAME='dconf' -PACKAGE_VERSION='0.11.6' -PACKAGE_STRING='dconf 0.11.6' +PACKAGE_VERSION='0.11.7' +PACKAGE_STRING='dconf 0.11.7' PACKAGE_BUGREPORT='https://bugzilla.gnome.org/enter_bug.cgi?product=dconf' PACKAGE_URL='' @@ -1337,7 +1337,7 @@ # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures dconf 0.11.6 to adapt to many kinds of systems. +\`configure' configures dconf 0.11.7 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1403,7 +1403,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of dconf 0.11.6:";; + short | recursive ) echo "Configuration of dconf 0.11.7:";; esac cat <<\_ACEOF @@ -1529,7 +1529,7 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -dconf configure 0.11.6 +dconf configure 0.11.7 generated by GNU Autoconf 2.68 Copyright (C) 2010 Free Software Foundation, Inc. @@ -1584,7 +1584,7 @@ This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by dconf $as_me 0.11.6, which was +It was created by dconf $as_me 0.11.7, which was generated by GNU Autoconf 2.68. Invocation command line was $ $0 $@ @@ -2405,7 +2405,7 @@ # Define the identity of the package. PACKAGE='dconf' - VERSION='0.11.6' + VERSION='0.11.7' cat >>confdefs.h <<_ACEOF @@ -5293,7 +5293,7 @@ # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by dconf $as_me 0.11.6, which was +This file was extended by dconf $as_me 0.11.7, which was generated by GNU Autoconf 2.68. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -5359,7 +5359,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -dconf config.status 0.11.6 +dconf config.status 0.11.7 configured by $0, generated by GNU Autoconf 2.68, with options \\"\$ac_cs_config\\" diff -Nru d-conf-0.11.6/configure.ac d-conf-0.11.7/configure.ac --- d-conf-0.11.6/configure.ac 2012-03-07 22:06:51.000000000 +0000 +++ d-conf-0.11.7/configure.ac 2012-03-19 18:08:21.000000000 +0000 @@ -1,5 +1,5 @@ AC_INIT([dconf], - [0.11.6], + [0.11.7], [https://bugzilla.gnome.org/enter_bug.cgi?product=dconf], [dconf]) diff -Nru d-conf-0.11.6/dbus-1/dconf-dbus-1.c d-conf-0.11.7/dbus-1/dconf-dbus-1.c --- d-conf-0.11.6/dbus-1/dconf-dbus-1.c 2012-03-07 04:49:37.000000000 +0000 +++ d-conf-0.11.7/dbus-1/dconf-dbus-1.c 2012-03-19 15:12:07.000000000 +0000 @@ -597,7 +597,7 @@ if (watch->notify == notify && watch->user_data == user_data) { - *ptr = g_slist_remove (*ptr, *ptr); + *ptr = g_slist_remove_link (*ptr, *ptr); dconf_engine_unwatch (dcdbc->engine, watch->name, &dcem); dconf_dbus_client_send (dcdbc, &dcem, NULL, NULL); diff -Nru d-conf-0.11.6/debian/changelog d-conf-0.11.7/debian/changelog --- d-conf-0.11.6/debian/changelog 2012-03-08 20:49:04.000000000 +0000 +++ d-conf-0.11.7/debian/changelog 2012-03-19 18:49:23.000000000 +0000 @@ -1,3 +1,9 @@ +d-conf (0.11.7-0ubuntu1) precise; urgency=low + + * New upstream version + + -- Sebastien Bacher Mon, 19 Mar 2012 19:49:13 +0100 + d-conf (0.11.6-0ubuntu1) precise; urgency=low * New upstream version diff -Nru d-conf-0.11.6/docs/html/ch01.html d-conf-0.11.7/docs/html/ch01.html --- d-conf-0.11.6/docs/html/ch01.html 2012-03-08 16:34:35.000000000 +0000 +++ d-conf-0.11.7/docs/html/ch01.html 2012-03-19 18:09:54.000000000 +0000 @@ -21,7 +21,7 @@

-DConf Client API

+DConf Client API
DConf Paths — utility functions to validate dconf paths diff -Nru d-conf-0.11.6/editor/dconf-editor.c d-conf-0.11.7/editor/dconf-editor.c --- d-conf-0.11.6/editor/dconf-editor.c 2012-03-08 16:30:30.000000000 +0000 +++ d-conf-0.11.7/editor/dconf-editor.c 2012-03-19 18:08:50.000000000 +0000 @@ -1,4 +1,4 @@ -/* dconf-editor.c generated by valac 0.15.2.4-51044, the Vala compiler +/* dconf-editor.c generated by valac 0.15.2, the Vala compiler * generated from dconf-editor.vala, do not modify */ diff -Nru d-conf-0.11.6/editor/dconf-editor.ui d-conf-0.11.7/editor/dconf-editor.ui --- d-conf-0.11.6/editor/dconf-editor.ui 2012-03-07 04:49:37.000000000 +0000 +++ d-conf-0.11.7/editor/dconf-editor.ui 2012-03-17 16:23:39.000000000 +0000 @@ -190,6 +190,7 @@ 6 + True True False 0 diff -Nru d-conf-0.11.6/editor/dconf-model.c d-conf-0.11.7/editor/dconf-model.c --- d-conf-0.11.6/editor/dconf-model.c 2012-03-08 16:30:30.000000000 +0000 +++ d-conf-0.11.7/editor/dconf-model.c 2012-03-19 18:08:50.000000000 +0000 @@ -1,4 +1,4 @@ -/* dconf-model.c generated by valac 0.15.2.4-51044, the Vala compiler +/* dconf-model.c generated by valac 0.15.2, the Vala compiler * generated from dconf-model.vala, do not modify */ diff -Nru d-conf-0.11.6/editor/dconf-schema.c d-conf-0.11.7/editor/dconf-schema.c --- d-conf-0.11.6/editor/dconf-schema.c 2012-03-08 16:30:30.000000000 +0000 +++ d-conf-0.11.7/editor/dconf-schema.c 2012-03-19 18:08:50.000000000 +0000 @@ -1,4 +1,4 @@ -/* dconf-schema.c generated by valac 0.15.2.4-51044, the Vala compiler +/* dconf-schema.c generated by valac 0.15.2, the Vala compiler * generated from dconf-schema.vala, do not modify */ diff -Nru d-conf-0.11.6/editor/dconf-view.c d-conf-0.11.7/editor/dconf-view.c --- d-conf-0.11.6/editor/dconf-view.c 2012-03-08 16:30:30.000000000 +0000 +++ d-conf-0.11.7/editor/dconf-view.c 2012-03-19 18:08:50.000000000 +0000 @@ -1,4 +1,4 @@ -/* dconf-view.c generated by valac 0.15.2.4-51044, the Vala compiler +/* dconf-view.c generated by valac 0.15.2, the Vala compiler * generated from dconf-view.vala, do not modify */ diff -Nru d-conf-0.11.6/engine/dconf-engine.c d-conf-0.11.7/engine/dconf-engine.c --- d-conf-0.11.6/engine/dconf-engine.c 2012-03-07 16:09:35.000000000 +0000 +++ d-conf-0.11.7/engine/dconf-engine.c 2012-03-19 15:34:35.000000000 +0000 @@ -169,6 +169,12 @@ { if (engine->gvdbs[i] && !gvdb_table_is_valid (engine->gvdbs[i])) { + if (engine->lock_tables[i]) + { + gvdb_table_unref (engine->lock_tables[i]); + engine->lock_tables[i] = NULL; + } + gvdb_table_unref (engine->gvdbs[i]); engine->gvdbs[i] = NULL; } diff -Nru d-conf-0.11.6/NEWS d-conf-0.11.7/NEWS --- d-conf-0.11.6/NEWS 2012-03-08 16:30:11.000000000 +0000 +++ d-conf-0.11.7/NEWS 2012-03-19 18:04:31.000000000 +0000 @@ -1,3 +1,19 @@ +Changes in dconf 0.11.7 +======================= + + - engine: don't leak the lock table if a system database changes while + a program is running + + - dbus-1: call g_slist_remove_link instead of g_slist_remove + + - editor: set 'wrap' property on default value label + + - dconf update: + + - code cleanup, better error handling + - read keyfiles in a defined order (later files take precedence) + - don't issue warnings if a key is defined in multiple files + Changes in dconf 0.11.6 =======================