From bb9e10a14cd5cea591fadb49df73647b51e2d28f Mon Sep 17 00:00:00 2001 From: Ivan Dmitrievich Yartsev Date: Fri, 27 Mar 2026 14:20:40 +0600 Subject: [PATCH 1/2] Fixed parameter getting function --- 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 afe8a92..b75f01f 100644 --- a/source/libublsettings-config.c +++ b/source/libublsettings-config.c @@ -858,7 +858,7 @@ void *yon_config_get_all_keys_by_key(char *key, int *size){ config_str ret_data=NULL; dictionary *dict = NULL; for_dictionaries(dict, (dictionary*)__yon__config__strings){ - if (strstr(dict->key,key)&&((yon_config_parameter*)dict)->flag1!=-1) { + if (strstr(dict->key,key)/*&&((yon_config_parameter*)dict)->flag1!=-1*/) { char *ret_string = yon_char_new(dict->key); if (ret_data) ret_data = yon_char_parsed_append(ret_data,size,ret_string); else ret_data = yon_char_parsed_new(size,ret_string,NULL); From 31adf787b3beacacc3d0bbd5b5a14c1e55722b04 Mon Sep 17 00:00:00 2001 From: Ivan Dmitrievich Yartsev Date: Fri, 27 Mar 2026 15:24:58 +0600 Subject: [PATCH 2/2] Fixed char_check_elements func; Added new function --- source/libublsettings-char.c | 2 +- source/libublsettings-config.c | 22 ++++++++++++++++++++++ source/libublsettings.h | 7 +++++++ 3 files changed, 30 insertions(+), 1 deletion(-) diff --git a/source/libublsettings-char.c b/source/libublsettings-char.c index 55e231e..6b9ec69 100644 --- a/source/libublsettings-char.c +++ b/source/libublsettings-char.c @@ -179,7 +179,7 @@ int yon_char_check_elements(char *target, char *element, char *divider){ config_str parsed = yon_char_parse(target,&size,divider); config_str parsed_element = yon_char_parse(element,&element_size,divider); for (int i=0;idata,delete_target,divider)){ + char *temp = yon_char_remove_elements((char*)dict->data,delete_target,divider); + if (!yon_char_is_empty(temp)){ + if (!yon_char_is_empty((char*)dict->data)) free(dict->data); + dict->data = temp; + yon_config_set_status(key,1); + } else { + dict->data = NULL; + yon_config_set_status(key,-1); + } + + + return 1; + } + + } else return 0; +} + int yon_config_append_element(char *key, char *append, char *divider){ check_config{ int found = 0; diff --git a/source/libublsettings.h b/source/libublsettings.h index 0b556b8..0002fb0 100644 --- a/source/libublsettings.h +++ b/source/libublsettings.h @@ -1376,6 +1376,13 @@ int yon_config_remove_element(char *key, char *delete_target, char *separator); /// @return 1 if element was successfully removed, 0 otherwise int yon_config_remove_elements(char *key, char *delete_target, char *separator); +/// @brief Remove elements string from registered parameter value string of elements if all of requested parameters exist +/// @param key parameter key +/// @param delete_target substring to delete +/// @param separator string, separating elements within parameter's value +/// @return 1 if element was successfully removed, 0 otherwise +int yon_config_remove_elements_all(char *key, char *delete_target, char *divider); + /// @brief Append registered parameter value string /// @param key parameter key /// @param append string to append