master #88

Merged
asmeron merged 2 commits from YanTheKaller/libublsettings:master into master 1 month ago

@ -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;i<element_size;i++){
int found = yon_char_parsed_check_exist(parsed,size,element);
int found = yon_char_parsed_check_exist(parsed,size,parsed_element[i]);
if (found<0){
yon_char_parsed_free(parsed,size);
yon_char_parsed_free(parsed_element,element_size);

@ -702,6 +702,28 @@ int yon_config_remove_elements(char *key, char *delete_target, char *divider){
} else return 0;
}
int yon_config_remove_elements_all(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&&yon_char_check_elements((char*)dict->data,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;
@ -858,7 +880,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);

@ -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

Loading…
Cancel
Save