From 3dad86270abdfe8f7a21e33a1256d72327aeadb7 Mon Sep 17 00:00:00 2001 From: Ivan Dmitrievich Yartsev Date: Wed, 1 Apr 2026 13:31:50 +0600 Subject: [PATCH 1/3] changed yon_config_update_by_args func --- source/libublsettings-config.c | 8 +++----- source/libublsettings.h | 4 ++-- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/source/libublsettings-config.c b/source/libublsettings-config.c index 3c50019..a976c11 100644 --- a/source/libublsettings-config.c +++ b/source/libublsettings-config.c @@ -1563,14 +1563,12 @@ int yon_config_update_by_list(config_str keys, size_t size){ return 0; } -int yon_config_update_by_args(char *key, ...){ +int yon_config_update_by_args(char *config_path, ...){ check_config{ int size=0; config_str keys = NULL; - yon_char_parsed_add_or_create_if_exists(keys,&size,key); va_list args; - yon_config_remove_by_key(key); - va_start(args,key); + va_start(args,config_path); char *cur_key = NULL; while((cur_key = va_arg(args,char*))){ yon_char_parsed_add_or_create_if_exists(keys,&size,cur_key); @@ -1580,7 +1578,7 @@ int yon_config_update_by_args(char *key, ...){ int params_size=0; config_str parameters = yon_config_get_load_parameters_by_list(¶ms_size,keys,size); if (params_size&¶meters){ - char *path = yon_config_command_get_path(config_last_load_command); + char *path = config_path; char *parameters_str = yon_char_parsed_to_string(parameters,params_size," -- get "); char *command = yon_char_unite(ubconfig_load_command(path), parameters_str, NULL); yon_config_load_config(YON_CONFIG_CUSTOM,command,NULL); diff --git a/source/libublsettings.h b/source/libublsettings.h index d1f87d3..fefee27 100644 --- a/source/libublsettings.h +++ b/source/libublsettings.h @@ -1565,10 +1565,10 @@ int yon_config_update_by_key(char *key); int yon_config_update_by_list(config_str keys, size_t size); /// @brief Update parameters value from configuration. -/// @param key First parameter's key. +/// @param config_path Configuration path where from to update parameter. /// @param ... NULL-terminated list of parameter keys. /// @return TRUE if parameter successfully updated, FALSE if parameter doesn't registered in configuration -int yon_config_update_by_args(char *key, ...); +int yon_config_update_by_args(char *config_path, ...); /**int yon_config_force_save_registered(char *path, char *section) * [EN] -- 2.35.1 From 40bd61a4a58c6fe67210c90c92925c70d100e089 Mon Sep 17 00:00:00 2001 From: Ivan Dmitrievich Yartsev Date: Wed, 1 Apr 2026 13:33:11 +0600 Subject: [PATCH 2/3] Changed yon_config_update_by_list function --- source/libublsettings-config.c | 4 ++-- source/libublsettings.h | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/source/libublsettings-config.c b/source/libublsettings-config.c index a976c11..bef68b2 100644 --- a/source/libublsettings-config.c +++ b/source/libublsettings-config.c @@ -1547,14 +1547,14 @@ int yon_config_update_by_key(char *key){ return 0; } -int yon_config_update_by_list(config_str keys, size_t size){ +int yon_config_update_by_list(char *config_path, config_str keys, size_t size){ if (!size||!keys) return 0; check_config{ int params_size=0; yon_config_remove_by_list(keys,size); config_str parameters = yon_config_get_load_parameters_by_list(¶ms_size,keys,size); if (params_size&¶meters){ - char *path = yon_config_command_get_path(config_last_load_command); + char *path = config_path; char *parameters_str = yon_char_parsed_to_string(parameters,params_size," "); char *command = yon_char_unite(ubconfig_load_command(path), parameters_str, NULL); yon_config_load_config(YON_CONFIG_CUSTOM,command,NULL); diff --git a/source/libublsettings.h b/source/libublsettings.h index fefee27..0043b74 100644 --- a/source/libublsettings.h +++ b/source/libublsettings.h @@ -1562,7 +1562,7 @@ int yon_config_update_by_key(char *key); /// @param key Parameters key list. /// @param size size of parameters keys list. /// @return TRUE if parameter successfully updated, FALSE if parameter doesn't registered in configuration -int yon_config_update_by_list(config_str keys, size_t size); +int yon_config_update_by_list(char *config_path,config_str keys, size_t size); /// @brief Update parameters value from configuration. /// @param config_path Configuration path where from to update parameter. -- 2.35.1 From 3bd11162073c34aeb3478db0e1276da6375eb55b Mon Sep 17 00:00:00 2001 From: Ivan Dmitrievich Yartsev Date: Wed, 1 Apr 2026 16:19:59 +0600 Subject: [PATCH 3/3] Test fix for crash --- source/libublsettings-config.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/libublsettings-config.c b/source/libublsettings-config.c index bef68b2..9436623 100644 --- a/source/libublsettings-config.c +++ b/source/libublsettings-config.c @@ -2064,7 +2064,7 @@ int yon_config_custom_swap(yon_config_custom **target){ int yon_config_custom_apply(yon_config_custom **target){ yon_config_clean(); - if (target){ + if (*target){ __yon__config__strings = ((yon_config_parameter *)*target)->first; } *target=NULL; -- 2.35.1