diff --git a/source/libublsettings-char.c b/source/libublsettings-char.c index 0521521..b8a6b62 100644 --- a/source/libublsettings-char.c +++ b/source/libublsettings-char.c @@ -48,6 +48,24 @@ char *yon_char_append_element(char *source,char *target, char *divider){ return yon_char_new(source); } +char *yon_char_append_elements(char *source,char *target, char *divider){ + if (!yon_char_is_empty(target)&&!yon_char_is_empty(divider)){ + if (yon_char_is_empty(source)) return yon_char_new(target); + int size=0; + int target_size=0; + config_str parsed = yon_char_parse(source,&size,divider); + config_str target_parsed = yon_char_parse(target,&target_size,divider); + for (int i=0;idata,append,divider)){ + char *temp = yon_char_append_elements((char*)dict->data,append,divider); + if (!yon_char_is_empty((char*)dict->data)) free(dict->data); + dict->data = temp; + dict->flag1 = 1; + yon_config_remove_ignore(key); + return 1; + } + } + + } + return 0; +} + int yon_config_force_append_element(char *key, char *append, char *divider){ check_config{ int found = 0; diff --git a/source/libublsettings.h b/source/libublsettings.h index 7dce9c4..ca1dbd1 100644 --- a/source/libublsettings.h +++ b/source/libublsettings.h @@ -646,6 +646,13 @@ char *yon_char_append_c(const char *source, char append); */ char *yon_char_append_element(char *source,char *target, char *divider); +/// @brief Append string of elements with another string of elements +/// @param source sSource string of elements. +/// @param target Appended string of elements. +/// @param separator String, separating elements within parameter's value +/// @return A newly allocated string of elements +char *yon_char_append_elements(char *source,char *target, char *separator); + char *yon_char_force_append_element(char *source,char *target, char *divider); /** * @brief Remove substring from string. @@ -1375,6 +1382,13 @@ int yon_config_remove_elements(char *key, char *delete_target, char *separator); /// @return 1 if element was successfully added, 0 otherwise int yon_config_append_element(char *key, char *append, char *separator); +/// @brief Append registered parameter value string of elements with another string of elements +/// @param key parameter key +/// @param append string to append +/// @param separator string, separating elements within parameter's value +/// @return 1 if element was successfully added, 0 otherwise +int yon_config_append_elements(char *key, char *append, char *divider); + /// @brief Append parameter value string event if appended string already exists in parameter value or empty /// @param key parameter key /// @param append string to append