From e22355117bfed4b7ad686ecb29e441623f585758 Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Mon, 7 Jul 2025 17:43:56 +0600 Subject: [PATCH 1/2] Fixed text wrapping function --- source/libublsettings-char.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/source/libublsettings-char.c b/source/libublsettings-char.c index bf87c91..95efc05 100644 --- a/source/libublsettings-char.c +++ b/source/libublsettings-char.c @@ -701,7 +701,15 @@ char *yon_char_wrap_to_length_str(char *target, unsigned int length){ yon_char_parsed_add_or_create_if_exists(final,&size,parsed); free(parsed); }else { - break; + char *next_space = strstr(current," "); + if (next_space) { + last = strlen(current)-strlen(next_space); + char *parsed = yon_char_divide(current,last); + yon_char_parsed_add_or_create_if_exists(final,&size,parsed); + free(parsed); + } else { + break; + } } } -- 2.35.1 From cbb6911410e6e0c1c3be1a5fb0be40d88fba9187 Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Tue, 8 Jul 2025 11:05:40 +0600 Subject: [PATCH 2/2] Fixed string to lines wrapping --- source/libublsettings-char.c | 32 ++++++-------------------------- 1 file changed, 6 insertions(+), 26 deletions(-) diff --git a/source/libublsettings-char.c b/source/libublsettings-char.c index 95efc05..261a0cc 100644 --- a/source/libublsettings-char.c +++ b/source/libublsettings-char.c @@ -131,36 +131,16 @@ char *yon_char_parsed_check_exist_begins_with(char **target, int size, char *com } config_str yon_char_wrap_to_lines(char *target, unsigned int line_count, unsigned int *final_size){ + (*final_size)=0; if (!yon_char_is_empty(target)&&line_count){ - (*final_size)=0; - unsigned int spaces = yon_char_count(target," "); - float line_spaces = (float)spaces/line_count; - float left = spaces%line_count; + unsigned int size = strlen(target); + unsigned int line_size = ((unsigned int)size/line_count)+1; - int processed=0; + char *final = yon_char_wrap_to_length_str(target,line_size); + return yon_char_parse(final,final_size,"\n"); - int size; - config_str parsed = yon_char_parse(target,&size," "); - config_str final = NULL; - for (int i=0;ispaces+1) break; - if (final_str){ - char *temp = yon_char_unite(final_str," ",parsed[processed],NULL); - free(final_str); - final_str = temp; - } else { - final_str = parsed[processed]; - } - processed++; - } - if (left) left--; - yon_char_parsed_add_or_create_if_exists(final,final_size,final_str); - } - return final; } - else return NULL; + return NULL; } char *yon_char_divide(char *source, int dividepos) -- 2.35.1