From 60adcceaa7068c3381362ec3721b5f7d8959c9fe Mon Sep 17 00:00:00 2001 From: Daniel Carl Date: Sun, 17 Aug 2014 15:30:50 +0200 Subject: [PATCH] Fixed wrong value in :set+= for integer vars. --- src/setting.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/setting.c b/src/setting.c index d803b8b..9cc1f9c 100644 --- a/src/setting.c +++ b/src/setting.c @@ -385,15 +385,16 @@ static gboolean prepare_setting_value(Setting *prop, void *value, SettingType ty /* perform arithmetic operation for integer values */ if (prop->type == TYPE_INTEGER) { - int newint; + int *newint = g_malloc(sizeof(int)); + res = true; if (type == SETTING_APPEND) { - newint = prop->value.i + *((int*)value); + *newint = prop->value.i + *((int*)value); } else if (type == SETTING_PREPEND) { - newint = prop->value.i * *((int*)value); + *newint = prop->value.i * *((int*)value); } else if (type == SETTING_REMOVE) { - newint = prop->value.i - *((int*)value); + *newint = prop->value.i - *((int*)value); } - *newvalue = (void*)&newint; + *newvalue = (void*)newint; return res; } -- 2.20.1