+
+ if (have_env) {
+ GList *l;
+
+ /* merge the ones from the environment paths. If any of them has a
+ * higher version, take that as the "master" version. Lower versions are
+ * then just merged in. */
+ g_queue_sort (&in_env, compare_preset_and_version, NULL);
+ /* highest version to lowest */
+ for (l = in_env.head; l; l = l->next) {
+ PresetAndVersion *pv = l->data;
+
+ if (version > pv->version) {
+ preset_merge (presets, pv->preset);
+ g_key_file_free (pv->preset);
+ } else {
+ if (presets)
+ g_key_file_free (presets);
+ presets = pv->preset;
+ version = pv->version;
+ }
+ g_free (pv);
+ }
+ g_queue_clear (&in_env);
+ }
+