From dfb7524a46c6364ff512d4dab33ddbcdee178eb5 Mon Sep 17 00:00:00 2001 From: Ivan Dmitrievich Yartsev Date: Fri, 13 Mar 2026 12:00:02 +0600 Subject: [PATCH] Added new function --- source/libublsettings-config.c | 21 ++++++++++++++++++--- source/libublsettings.h | 6 ++++++ 2 files changed, 24 insertions(+), 3 deletions(-) diff --git a/source/libublsettings-config.c b/source/libublsettings-config.c index 0dad04d..5a15414 100644 --- a/source/libublsettings-config.c +++ b/source/libublsettings-config.c @@ -746,11 +746,26 @@ void *yon_config_get_all_by_key(char *key, int *size){ dictionary *dict = NULL; for_dictionaries(dict, (dictionary*)__yon__config__strings){ if (strstr(dict->key,key)&&((yon_config_parameter*)dict)->flag1!=-1) { - char *key_quoted = yon_config_parameter_set_quotes(dict->key); - char *ret_string = yon_char_unite(key_quoted,"=",(char*)dict->data,NULL); + char *ret_string = yon_char_unite(dict->key,"=",(char*)dict->data,NULL); + 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); + } + } + return ret_data; + } + return NULL; +} + +void *yon_config_get_all_keys_by_key(char *key, int *size){ + (*size)=0; + check_config{ + 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) { + 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); - free(key_quoted); } } return ret_data; diff --git a/source/libublsettings.h b/source/libublsettings.h index 6df4e36..10cf70f 100644 --- a/source/libublsettings.h +++ b/source/libublsettings.h @@ -1414,6 +1414,12 @@ config_str yon_config_get_parameters_for_section(const char *section_name, int * /// @return A newly allocated list of all found parameters or NULL void *yon_config_get_all_by_key(char *key, int *size); +/// @brief Find all parameter keys from the configuration by string +/// @param key the search string +/// @param size Size of the returned parameter list +/// @return A newly allocated list of all found parameter keys or NULL +void *yon_config_get_all_keys_by_key(char *key, int *size); + /// @brief Find all parameters from the configuration by string, excluding ignored parameters /// @param key the search string /// @param size Size of the returned parameter list