diff --git a/source/libublsettings.c b/source/libublsettings.c index 9963154..1d313ea 100644 --- a/source/libublsettings.c +++ b/source/libublsettings.c @@ -286,13 +286,12 @@ dictionary *yon_dictionary_rip(dictionary *dict) else if (!dict->next) { dictionary *prev = dict->prev; + free(dict); if (prev) { prev->next = NULL; return prev; } - else - return dict; } else if (!dict->prev) { @@ -301,16 +300,16 @@ dictionary *yon_dictionary_rip(dictionary *dict) { yon_dictionary_make_first(next); next->prev = NULL; + free(dict); return next; } - else - return dict; } else { dictionary *next = dict->next, *prev = dict->prev; next->prev = prev; prev->next = next; + free(dict); return next; } } @@ -470,7 +469,7 @@ char *yon_cut(char *source, int size, int startpos) config_str yon_char_wrap_to_lines(char *target, unsigned int line_count, unsigned int *final_size){ if (!yon_char_is_empty(target)&&line_count){ (*final_size)=0; - unsigned int spaces = yon_char_find_count(target," "); + unsigned int spaces = yon_char_count(target," "); float line_spaces = (float)spaces/line_count; float left = spaces%line_count; @@ -694,7 +693,6 @@ int yon_char_parsed_check_exist(char **parameters, int size, char *param){ return -1; } - int yon_char_parsed_strstr(char **parameters, int size, char *param){ if (parameters){ for (int i=0;ilength){ + config_str final = NULL; + char *current = yon_char_new(target); + for (;strlen(current)>length;){ + int last = yon_char_find_last_symbol_before_length(target,' ',length); + if (last>-1){ + char *parsed = yon_char_divide(current,last); + yon_char_parsed_add_or_create_if_exists(final,size,parsed); + free(parsed); + } + + } + return final; + } + return NULL; +} + int yon_ubl_check_root(){ if (getuid()==0) return 1; else return 0; diff --git a/source/libublsettings.h b/source/libublsettings.h index 196c8bb..b1a83d3 100644 --- a/source/libublsettings.h +++ b/source/libublsettings.h @@ -538,7 +538,12 @@ char *yon_char_parsed_to_string(config_str parsed, int size, char *divider_repla char *yon_char_parsed_to_string_for_iters(config_str parsed, int size, char *divider_replace,int iterations); -config_str yonchar_parsed_cut(config_str *parsed, int size, int pos); +config_str yon_char_parsed_cut(config_str parsed, int size, int pos); + +int yon_char_find_last_symbol_before_length(char *string, char target, int length); + +config_str yon_char_wrap_to_length(char *target, unsigned int length, int *size); + /**yon_ubl_check_root() * [EN] *