From a7780a772c378e770478ee7a4ceef25045c667b8 Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Tue, 6 Aug 2024 09:43:58 +0600 Subject: [PATCH 1/3] Replaces yon_char_parsed_rip with another function --- source/libublsettings.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/source/libublsettings.c b/source/libublsettings.c index b33f5e0..fc13cd6 100644 --- a/source/libublsettings.c +++ b/source/libublsettings.c @@ -833,9 +833,11 @@ char *yon_char_parsed_to_string(config_str parsed, int size, char *divider_repla char *final_string = ""; char *temp; for (int i=0;i Date: Thu, 8 Aug 2024 10:40:36 +0600 Subject: [PATCH 2/3] Fixed default variables adding --- source/libublsettings.c | 52 ++++++++++++++++++++++++++++++++++++++--- 1 file changed, 49 insertions(+), 3 deletions(-) diff --git a/source/libublsettings.c b/source/libublsettings.c index fc13cd6..222a273 100644 --- a/source/libublsettings.c +++ b/source/libublsettings.c @@ -1259,8 +1259,10 @@ int yon_config_load_config(YON_CONFIG_TYPE config_type, ...){ config_str parsed = yon_config_load(command[i],&parsed_size); int command_parsed_size=0; config_str command_parsed = yon_char_parse(command[i],&command_parsed_size," "); - yon_config_register(command_parsed[5], command[i],NULL); - yon_config_set_status(command_parsed[5],0); + if (!strstr(command_parsed[5],"[*]")){ + yon_config_register(command_parsed[5], command[i],NULL); + yon_config_set_status(command_parsed[5],0); + } yon_char_parsed_free(command_parsed,command_parsed_size); if (parsed_size>0){ for (int j=0;jdata_type=DICTIONARY_CHAR_TYPE; current->load_command=config_load; if (yon_dictionary_get(&__yon_config_ignored, current->key)){ - yon_dictionary_rip(__yon_config_ignored); + __yon_config_ignored = yon_dictionary_rip(__yon_config_ignored); } int size=0; config_str section = yon_char_parse(config_load,&size," "); @@ -1624,6 +1626,50 @@ void yon_config_register(char *key, char *config_load, void *data){ config_str section = yon_char_parse(config_load,&size," "); current->section=yon_char_new(section[4]); yon_char_parsed_free(section,size); + } else { + if (!__yon__config__strings||!(current=(yon_config_parameter*)yon_dictionary_get((dictionary**)&__yon__config__strings,key))){ + { + if (__yon__config__strings){ + yon_config_parameter* dict=NULL; + for_dictionaries(dict,__yon__config__strings){ + if (!dict->next){ + __yon__config__strings=dict; + } + } + __yon__config__strings=yon_config_parameter_append_with_data(__yon__config__strings,key,NULL); + + } + else { + __yon__config__strings=yon_config_parameter_new_with_data(key,NULL); + } + } + yon_config_set_ignore(key); + __yon__config__strings = (yon_config_parameter*)yon_dictionary_get_last((dictionary*)__yon__config__strings); + __yon__config__strings->flag1=0; + __yon__config__strings->data_type=DICTIONARY_CHAR_TYPE; + __yon__config__strings->load_command=config_load; + int size=0; + config_str section = yon_char_parse(config_load,&size," "); + __yon__config__strings->section=yon_char_new(section[4]); + yon_char_parsed_free(section,size); + } + else if ((current = (yon_config_parameter*)yon_dictionary_get((dictionary**)&__yon__config__strings,key))){ + if ((current->data&&data!=__yon__config__strings->data&&strcmp(__yon__config__strings->data,data))||!current->data){ + yon_config_set_ignore(key); + + current->data=NULL; + current->flag1=0; + current->data_type=DICTIONARY_CHAR_TYPE; + current->load_command=config_load; + if (yon_dictionary_get(&__yon_config_ignored, current->key)){ + __yon_config_ignored= yon_dictionary_rip(__yon_config_ignored); + } + int size=0; + config_str section = yon_char_parse(config_load,&size," "); + current->section=yon_char_new(section[4]); + yon_char_parsed_free(section,size); + } + } } } From 5432473e3ec1d9cfb2cfeeb7e1fb1a9fc9c012ee Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Thu, 8 Aug 2024 12:04:59 +0600 Subject: [PATCH 3/3] Fixed config loading --- source/libublsettings.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/source/libublsettings.c b/source/libublsettings.c index 222a273..783a43f 100644 --- a/source/libublsettings.c +++ b/source/libublsettings.c @@ -1259,9 +1259,8 @@ int yon_config_load_config(YON_CONFIG_TYPE config_type, ...){ config_str parsed = yon_config_load(command[i],&parsed_size); int command_parsed_size=0; config_str command_parsed = yon_char_parse(command[i],&command_parsed_size," "); - if (!strstr(command_parsed[5],"[*]")){ + if (config_type==YON_CONFIG_DEFAULT&&!strstr(command_parsed[5],"[*]")){ yon_config_register(command_parsed[5], command[i],NULL); - yon_config_set_status(command_parsed[5],0); } yon_char_parsed_free(command_parsed,command_parsed_size); if (parsed_size>0){ @@ -1273,8 +1272,12 @@ int yon_config_load_config(YON_CONFIG_TYPE config_type, ...){ yon_char_remove_brackets(current_value); char *current_command = yon_char_new(command[i]); current_command = yon_config_replace_parameter(current_command,key,5); + char *cur_data = config(key); + int cur_ignore = yon_config_check_ignore(key); + if ((cur_ignore&¤t_value)||(!cur_ignore)) yon_config_register(key,current_command,current_value); if (config_type==YON_CONFIG_DEFAULT){ + yon_config_set_ignore(key); yon_config_set_status(key,-2); } }