From 62ac915712ce905d257755b76a7a706f10cc0aac Mon Sep 17 00:00:00 2001 From: Ivan Dmitrievich Yartsev Date: Wed, 25 Mar 2026 15:40:39 +0600 Subject: [PATCH 1/3] Fixed saving of unchanged parameters --- source/libublsettings-config.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/libublsettings-config.c b/source/libublsettings-config.c index 2095876..00451e2 100644 --- a/source/libublsettings-config.c +++ b/source/libublsettings-config.c @@ -1246,11 +1246,12 @@ config_str yon_config_get_save_parameters_by_list(int *size, config_str paramete current_size = &removed_size; break; case 1: - case 0: action = "set"; current = &updated; current_size = &updated_size; break; + default: + continue; } int position = yon_char_parsed_find_element(*current,*current_size,((yon_config_parameter*)temp)->section); if (position>=0){ @@ -1317,7 +1318,6 @@ config_str yon_config_get_save_parameters_by_key(int *size,...){ current = &removed; current_size = &removed_size; break; - case 0: case 1: action = "set"; current = &updated; -- 2.35.1 From f1ebe5ce2be746da363e65103ed05ce737a16f05 Mon Sep 17 00:00:00 2001 From: Ivan Dmitrievich Yartsev Date: Wed, 25 Mar 2026 16:47:13 +0600 Subject: [PATCH 2/3] Fixed crash --- source/libublsettings-config.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/source/libublsettings-config.c b/source/libublsettings-config.c index 00451e2..f1c71f0 100644 --- a/source/libublsettings-config.c +++ b/source/libublsettings-config.c @@ -781,7 +781,7 @@ void *yon_config_get_by_key(char *key){ } char *yon_config_default_get_by_key(char *key){ - check_config{ + check_default_config{ dictionary *dict = NULL; for_dictionaries(dict, (dictionary*)__yon__config__default__strings){ if (strcmp(dict->key,key)==0&&((yon_config_parameter*)dict)->flag1!=-1){ @@ -971,11 +971,13 @@ int yon_config_clean(){ } int yon_config_default_remove(char *key){ - yon_config_parameter *default_parameter = (yon_config_parameter*)yon_dictionary_get((dictionary**)&__yon__config__default__strings,key); - if (default_parameter){ - __yon__config__default__strings = (yon_config_parameter*)yon_dictionary_rip((dictionary*)default_parameter); - return 1; - } + check_default_config{ + yon_config_parameter *default_parameter = (yon_config_parameter*)yon_dictionary_get((dictionary**)&__yon__config__default__strings,key); + if (default_parameter){ + __yon__config__default__strings = (yon_config_parameter*)yon_dictionary_rip((dictionary*)default_parameter); + return 1; + } + } return 0; } -- 2.35.1 From c075b6a0c21fd132935c668df4aa1e3f27efc905 Mon Sep 17 00:00:00 2001 From: Ivan Dmitrievich Yartsev Date: Wed, 25 Mar 2026 18:09:44 +0600 Subject: [PATCH 3/3] TEST added new function for importing strings of parameters --- source/libublsettings-config.c | 87 ++++++++++++++++++++-------------- source/libublsettings.h | 10 ++++ 2 files changed, 62 insertions(+), 35 deletions(-) diff --git a/source/libublsettings-config.c b/source/libublsettings-config.c index f1c71f0..3af21aa 100644 --- a/source/libublsettings-config.c +++ b/source/libublsettings-config.c @@ -449,32 +449,11 @@ void yon_config_set_last_command(char *command){ config_last_load_command=yon_char_new(command); } -int yon_config_load_config(YON_CONFIG_TYPE config_type, ...){ - if (config_type == YON_CONFIG_BOTH) return 0; - - char *current; - va_list args; - va_start(args,config_type); - - int commands_size; - config_str commands = NULL; - while ((current=va_arg(args,char*))){ - yon_char_parsed_add_or_create_if_exists(commands,&commands_size,current); - } - - char *final_command = yon_config_command_get_full(commands,commands_size); - yon_config_set_last_command(final_command); - if (yon_char_is_empty(final_command)) return 0; - int parameters_size; - config_str parameters = yon_config_load(final_command,¶meters_size); - char *section = NULL; - if (!strstr(final_command," -ea ")){ - section = yon_config_command_get_section(final_command); - } - for (int i=0;i