diff --git a/source/libublsettings.c b/source/libublsettings.c index 1d313ea..874d5f6 100644 --- a/source/libublsettings.c +++ b/source/libublsettings.c @@ -1969,9 +1969,11 @@ config_str yon_config_get_save_parameters_by_list(int *size, config_str paramete config_str final = NULL; char *current_str = NULL; for (int i=0;ikey,current_str)){ + found = 1; if (((yon_config_parameter*)temp)->flag1!=-2){ char *action = NULL; config_str *current=NULL; @@ -2002,6 +2004,20 @@ config_str yon_config_get_save_parameters_by_list(int *size, config_str paramete } } } + if (!found){ + if(removed){ + int position = yon_char_parsed_find_element(removed,removed_size,((yon_config_parameter*)temp)->section); + if (position>=0){ + char *string = yon_char_unite((removed)[position]," ",yon_config_parameter_to_string((yon_config_parameter*)temp,0),NULL); + free(removed[position]); + removed[position]=string; + + } + } else { + char *string = yon_char_unite("remove"," ",parameters[i],NULL); + yon_char_parsed_add_or_create_if_exists(removed,&removed_size,string); + } + } } if (updated&&removed){ final = yon_char_parsed_merge(updated,updated_size,removed,removed_size,size); @@ -2299,6 +2315,16 @@ char *yon_config_get_parameter(config_str parameters, int size, char *param) return NULL; } +int yon_config_change_key(char *target, char *key){ + if (!yon_char_is_empty(target)&&!yon_char_is_empty(key)){ + dictionary *dict = yon_dictionary_get((dictionary**)&__yon__config__strings,target); + if (!dict) return 0; + free(dict->key); + dict->key = yon_char_new(key); + } + return 0; +} + char *yon_file_path_proceed_spaces(char *path){ int size; config_str parsed = yon_char_parse(path,&size,"/"); diff --git a/source/libublsettings.h b/source/libublsettings.h index a2cea25..a0d6f9b 100644 --- a/source/libublsettings.h +++ b/source/libublsettings.h @@ -831,6 +831,8 @@ int yon_char_remove_brackets(char *string); int yon_config_load_config(YON_CONFIG_TYPE config_type, ...); +int yon_config_change_key(char *target, char *key); + /**yon_config_load_register_no_cleaning(YON_CONFIG_TYPE config_type,char *section,char *parameter, ...) * [EN] *