Added check for value sameness
This commit is contained in:
parent
8967e4b40f
commit
12368a24bd
|
@ -92,14 +92,19 @@ gm_options_dup(GmOptions *source) {
|
|||
void
|
||||
gm_options_set(GmOptions * options, const gchar *key, const gchar *value) {
|
||||
gchar *trimmed = gm_string_trim(key);
|
||||
gboolean changed = g_hash_table_lookup(options->priv->options, trimmed)
|
||||
!= NULL;
|
||||
gchar *lookup = g_hash_table_lookup(options->priv->options, trimmed);
|
||||
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) {
|
||||
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 *
|
||||
|
@ -112,7 +117,7 @@ gm_options_set_int(GmOptions *options, const gchar *key, int value) {
|
|||
gchar val[15];
|
||||
|
||||
g_snprintf((gchar *) &val, 15, "%d", value);
|
||||
gm_options_set(options, key, (const gchar *) &val);
|
||||
gm_options_set(options, key, (const gchar *)val);
|
||||
}
|
||||
|
||||
int
|
||||
|
|
Reference in a new issue