From: Eduardo Lima (Etrunko) Date: Tue, 17 Sep 2013 18:22:19 +0000 (-0300) Subject: Added missing implementation of config_key_string_list_set X-Git-Tag: v0.0.2~40 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=0a7ee257c2c3fd8e9db4b311b3cf7cb41385a1ac;p=profile%2Fivi%2Fweekeyboard.git Added missing implementation of config_key_string_list_set Also fix config_key_string_set Signed-off-by: Eduardo Lima (Etrunko) --- diff --git a/src/wkb-ibus-config-key.c b/src/wkb-ibus-config-key.c index 6853974..38f76d1 100644 --- a/src/wkb-ibus-config-key.c +++ b/src/wkb-ibus-config-key.c @@ -112,7 +112,7 @@ _key_string_set(struct wkb_config_key *key, Eldbus_Message_Iter *iter) return EINA_FALSE; } - if ((*field = (const char *) key->field) != NULL) + if ((field = (const char *) key->field) && *field) eina_stringshare_del(*field); if (str && strlen(str)) @@ -143,6 +143,18 @@ _key_string_list_free(Eina_List **list) static Eina_Bool _key_string_list_set(struct wkb_config_key *key, Eldbus_Message_Iter *iter) { + const char *str; + Eina_List *list = NULL; + Eina_List **field; + + while (eldbus_message_iter_get_and_next(iter, 's', &str)) + list = eina_list_append(list,eina_stringshare_add(str)); + + if ((field = (Eina_List **) key->field) && *field) + _key_string_list_free(field); + + *field = list; + return EINA_TRUE; } @@ -155,7 +167,6 @@ _key_string_list_get(struct wkb_config_key *key) /* * PUBLIC FUNCTIONS */ - struct wkb_config_key * wkb_config_key_int(const char *id, void *field) {