Merge pull request 'Added new char and configuration functions' (#82) from YanTheKaller/libublsettings:master into master

Reviewed-on: #82
pull/87/head v1.77
Dmitry Razumov 2 months ago
commit 68e924fad8

@ -76,6 +76,28 @@ char *yon_char_remove_element(char *source,char *target, char *divider){
return yon_char_new(source);
}
char *yon_char_remove_elements(char *source,char *target, char *divider){
if (!yon_char_is_empty(source)&&!yon_char_is_empty(target)&&!yon_char_is_empty(divider)){
int size;
int element_size;
config_str parsed = yon_char_parse(source,&size,divider);
config_str parsed_element = yon_char_parse(target,&element_size,divider);
for (int i=0;i<element_size;i++){
if (yon_char_is_empty(source)) return NULL;
int pos = yon_char_parsed_check_exist(parsed,size,parsed_element[i]);
if (pos!=-1){
parsed = yon_char_parsed_rip(parsed,&size,pos);
}
}
char *final = yon_char_parsed_to_string(parsed,size,divider);
yon_char_parsed_free(parsed,size);
yon_char_parsed_free(parsed_element,element_size);
return final;
}
return yon_char_new(source);
}
char *yon_char_new(const char *chr)
{
if (chr){

@ -625,6 +625,27 @@ int yon_config_remove_element(char *key, char *delete_target, char *divider){
} else return 0;
}
int yon_config_remove_elements(char *key, char *delete_target, char *divider){
check_config{
int found = 0;
yon_config_parameter *dict = (yon_config_parameter*)yon_dictionary_get((dictionary**)&__yon__config__strings,key);
if (dict){
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;
} 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;

@ -663,6 +663,13 @@ char *yon_char_force_append_element(char *source,char *target, char *divider);
*/
char *yon_char_remove_element(char *source,char *target, char *divider);
/// @brief Remove elements from elements string
/// @param source source elements string
/// @param target string of elements to remove
/// @param separator string, separating elements within parameter's value
/// @return a newly allocated string of elements, or NULL if removed elements was last
char *yon_char_remove_elements(char *source,char *target, char *separator);
/**
* @brief Copy string.
*
@ -1354,6 +1361,13 @@ int yon_config_clear_by_key(const char *key);
/// @return 1 if element was successfully removed, 0 otherwise
int yon_config_remove_element(char *key, char *delete_target, char *separator);
/// @brief Remove elements string from registered parameter value string of elements
/// @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(char *key, char *delete_target, char *separator);
/// @brief Append registered parameter value string
/// @param key parameter key
/// @param append string to append

Loading…
Cancel
Save