From b94c02b62bd5ba8f33682a2acdcaab234ddfa90e Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Fri, 23 May 2025 16:32:14 +0600 Subject: [PATCH 1/3] Test fix for saving --- source/libublsettings-config.c | 16 +++++++++++----- source/libublsettings.h | 1 + 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/source/libublsettings-config.c b/source/libublsettings-config.c index 6b91f3b..767f6dc 100644 --- a/source/libublsettings-config.c +++ b/source/libublsettings-config.c @@ -345,6 +345,8 @@ int yon_config_load_config(YON_CONFIG_TYPE config_type, ...){ if (config_type==YON_CONFIG_DEFAULT){ yon_config_set_ignore(key); yon_config_set_status(key,-2); + } else { + yon_config_default_remove(key); } } } @@ -678,6 +680,15 @@ int yon_config_clean(){ else return 0; } +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; + } + return 0; +} + enum YON_CONFIG_SAVED_TYPE yon_config_register(char *key,char *config_load, char *data){ if (yon_char_is_empty(key)||yon_char_is_empty(config_load)) return YON_CONFIG_SAVED_ERROR; @@ -698,11 +709,6 @@ enum YON_CONFIG_SAVED_TYPE yon_config_register(char *key,char *config_load, char current = __yon__config__strings; } - 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); - } - switch(current->flag1){ case -1: save_type = YON_CONFIG_SAVED_REMOVED; case 1: save_type = YON_CONFIG_SAVED_CHANGED; diff --git a/source/libublsettings.h b/source/libublsettings.h index b49b4a9..66b1dd8 100644 --- a/source/libublsettings.h +++ b/source/libublsettings.h @@ -972,6 +972,7 @@ int yon_config_append(char *key, char *data, char *divider); */ int yon_config_clean(); +int yon_config_default_remove(char *key); enum YON_CONFIG_SAVED_TYPE{ YON_CONFIG_SAVED_NEW, -- 2.35.1 From 802ec78b88b65337953477181a0cae74cfaf2bab Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Fri, 23 May 2025 17:14:51 +0600 Subject: [PATCH 2/3] Parameter registering fix --- source/libublsettings-config.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/source/libublsettings-config.c b/source/libublsettings-config.c index 767f6dc..cc2328c 100644 --- a/source/libublsettings-config.c +++ b/source/libublsettings-config.c @@ -700,12 +700,14 @@ enum YON_CONFIG_SAVED_TYPE yon_config_register(char *key,char *config_load, char if (!current){ yon_config_parameter_add_or_create_if_exists_with_data(__yon__config__strings,key,data); current = (yon_config_parameter*)yon_dictionary_get_last((dictionary *)__yon__config__strings); - } else if (!yon_char_is_empty(data)&&!strcmp((char*)current->data,(char*)data)){ + } else if (!yon_char_is_empty(data)&¤t->data&&!strcmp((char*)current->data,(char*)data)){ save_type=YON_CONFIG_SAVED_EXIST; return save_type; + } else { + current->data = yon_char_new(data); } } else { - yon_config_parameter_add_or_create_if_exists_with_data(__yon__config__strings,key,data); + yon_config_parameter_add_or_create_if_exists_with_data(__yon__config__strings,key,NULL); current = __yon__config__strings; } -- 2.35.1 From 534234d853f381e5f7fac7a087f8144fa48dfed2 Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Fri, 23 May 2025 17:34:21 +0600 Subject: [PATCH 3/3] Parameter registering fix --- source/libublsettings-config.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/source/libublsettings-config.c b/source/libublsettings-config.c index cc2328c..0dde52b 100644 --- a/source/libublsettings-config.c +++ b/source/libublsettings-config.c @@ -746,6 +746,8 @@ enum YON_CONFIG_SAVED_TYPE yon_config_register_default(char *key,char *config_lo } else if (!yon_char_is_empty(data)&&!strcmp((char*)current->data,(char*)data)){ save_type=YON_CONFIG_SAVED_EXIST; return save_type; + } else { + current->data = yon_char_new(data); } } else { yon_config_parameter_add_or_create_if_exists_with_data(__yon__config__default__strings,key,data); -- 2.35.1