From 9d46df7ae76533833c26df9f0b0bf24e086c25b2 Mon Sep 17 00:00:00 2001 From: Jose Antonio Ortega Ruiz Date: Thu, 19 Jul 2001 00:24:23 +0000 Subject: cond bp support --- mixlib/mix_config.c | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) (limited to 'mixlib/mix_config.c') diff --git a/mixlib/mix_config.c b/mixlib/mix_config.c index ba9ad19..fd3505e 100644 --- a/mixlib/mix_config.c +++ b/mixlib/mix_config.c @@ -143,24 +143,28 @@ mix_config_get_integer (const mix_config_t *config, const gchar *key) void mix_config_update (mix_config_t *config, const gchar *key, const gchar *value) { - gpointer tmp = NULL; + gpointer okey = NULL; + gpointer oval = NULL; g_return_if_fail (config != NULL); g_return_if_fail (key != NULL); g_return_if_fail (value != NULL); - tmp = g_hash_table_lookup (config->items, key); - if (tmp) + if (g_hash_table_lookup_extended (config->items, key, &okey, &oval)) { - g_free (tmp); - tmp = (gpointer)key; + if (oval != value) + { + g_free (oval); + oval = (gpointer)g_strdup (value); + } } else { - tmp = (gpointer)g_strdup (key); + okey = (gpointer)g_strdup (key); + oval = (gpointer)g_strdup (value); } - g_hash_table_insert (config->items, tmp, g_strdup (value)); + g_hash_table_insert (config->items, okey, oval); } void @@ -170,7 +174,6 @@ mix_config_update_integer (mix_config_t *config, const gchar *key, gint value) g_return_if_fail (config != NULL); g_return_if_fail (key != NULL); - g_return_if_fail (value != NULL); val = g_strdup_printf ("%d", value); mix_config_update (config, key, val); -- cgit v1.2.3