diff options
author | Jose Antonio Ortega Ruiz <jao@gnu.org> | 2001-07-19 00:24:23 +0000 |
---|---|---|
committer | Jose Antonio Ortega Ruiz <jao@gnu.org> | 2001-07-19 00:24:23 +0000 |
commit | 6a50cff1bd4a2e3d22e97c8d559cfae17bb182e6 (patch) | |
tree | 0285f33b1326c79058a826f9808d26c981ce7552 /mixlib/mix_config.c | |
parent | 10936aff2077de18c519db7691f32efdf4822a89 (diff) | |
download | mdk-6a50cff1bd4a2e3d22e97c8d559cfae17bb182e6.tar.gz mdk-6a50cff1bd4a2e3d22e97c8d559cfae17bb182e6.tar.bz2 |
cond bp support
Diffstat (limited to 'mixlib/mix_config.c')
-rw-r--r-- | mixlib/mix_config.c | 19 |
1 files changed, 11 insertions, 8 deletions
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); |