Added check for value sameness

This commit is contained in:
Jesse van den Kieboom 2005-11-06 15:52:50 +00:00
parent 8967e4b40f
commit 12368a24bd

View file

@ -92,14 +92,19 @@ gm_options_dup(GmOptions *source) {
void void
gm_options_set(GmOptions * options, const gchar *key, const gchar *value) { gm_options_set(GmOptions * options, const gchar *key, const gchar *value) {
gchar *trimmed = gm_string_trim(key); gchar *trimmed = gm_string_trim(key);
gboolean changed = g_hash_table_lookup(options->priv->options, trimmed) gchar *lookup = g_hash_table_lookup(options->priv->options, trimmed);
!= NULL; gboolean changed = lookup != NULL && lookup != value;
g_hash_table_insert(options->priv->options, trimmed, g_strdup(value)); if (lookup != value) {
g_hash_table_insert(options->priv->options, g_strdup(trimmed),
g_strdup(value));
}
if (changed) { if (changed) {
g_signal_emit(options, options_signals[OPTION_CHANGED], 0, key); g_signal_emit(options, options_signals[OPTION_CHANGED], 0, trimmed);
} }
g_free(trimmed);
} }
const gchar * const gchar *
@ -112,7 +117,7 @@ gm_options_set_int(GmOptions *options, const gchar *key, int value) {
gchar val[15]; gchar val[15];
g_snprintf((gchar *) &val, 15, "%d", value); g_snprintf((gchar *) &val, 15, "%d", value);
gm_options_set(options, key, (const gchar *) &val); gm_options_set(options, key, (const gchar *)val);
} }
int int