Added check for value sameness
This commit is contained in:
parent
8967e4b40f
commit
12368a24bd
1 changed files with 10 additions and 5 deletions
|
@ -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
|
||||||
|
|
Reference in a new issue