diff --git a/source/libublsettings-config.c b/source/libublsettings-config.c index 0f85427..9d41f61 100644 --- a/source/libublsettings-config.c +++ b/source/libublsettings-config.c @@ -677,8 +677,17 @@ int yon_config_remove_element(char *key, char *delete_target, char *divider){ if (dict){ if (yon_char_is_empty(dict->data)) return 0; char *temp = yon_char_remove_element((char*)dict->data,delete_target,divider); - if (!yon_char_is_empty((char*)dict->data)) free(dict->data); - dict->data = temp; + if (strcmp((char*)dict->data,temp)){ + if (!yon_char_is_empty((char*)dict->data)){ + free(dict->data); + } + dict->data = temp; + if (!yon_char_is_empty(temp)){ + dict->flag1 = -1; + } else { + dict->flag1 = 1; + } + } return 1; } @@ -693,12 +702,14 @@ int yon_config_remove_elements(char *key, char *delete_target, char *divider){ if (yon_char_is_empty(dict->data)) return 0; char *temp = yon_char_remove_elements((char*)dict->data,delete_target,divider); if (!yon_char_is_empty(temp)){ - if (!yon_char_is_empty((char*)dict->data)) free(dict->data); - dict->data = temp; - yon_config_set_status(key,1); + if (strcmp((char*)dict->data,temp)){ + if (!yon_char_is_empty((char*)dict->data)) free(dict->data); + dict->data = temp; + dict->flag1=1; + } } else { dict->data = NULL; - yon_config_set_status(key,-1); + dict->flag1=-1; } @@ -716,12 +727,14 @@ int yon_config_remove_elements_all(char *key, char *delete_target, char *divider if (dict&&yon_char_check_elements((char*)dict->data,delete_target,divider)){ char *temp = yon_char_remove_elements((char*)dict->data,delete_target,divider); if (!yon_char_is_empty(temp)){ - if (!yon_char_is_empty((char*)dict->data)) free(dict->data); - dict->data = temp; - yon_config_set_status(key,1); + if (strcmp((char*)dict->data,temp)){ + if (!yon_char_is_empty((char*)dict->data)) free(dict->data); + dict->data = temp; + dict->flag1=1; + } } else { dict->data = NULL; - yon_config_set_status(key,-1); + dict->flag1=-1; }