From bee3921c6242af97773f1e683c4b72685d9f50b1 Mon Sep 17 00:00:00 2001 From: Alexander Zhylin Date: Wed, 15 Jul 2026 15:44:45 +0300 Subject: [PATCH] text edit: display text correctly --- src/windows/text_edit.c | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/src/windows/text_edit.c b/src/windows/text_edit.c index 749db9f..fdef631 100644 --- a/src/windows/text_edit.c +++ b/src/windows/text_edit.c @@ -11,6 +11,7 @@ #include #include #include +#include #include "text_edit.h" #include "widget_core.h" @@ -126,7 +127,23 @@ void w_te_draw(w_te_ui_t *fui) { } int len_rest = fui->text_len; - mvwaddnwstr(win, p_y, p_x, fui->text, fui->text_len); + + wchar_t *cur_ptr = fui->text; + wchar_t *nl_ptr = wcschr(cur_ptr, '\n'); + + if (nl_ptr == NULL) { + mvwaddnwstr(win, p_y++, p_x, cur_ptr, fui->text_len); + } else { + while (true) { + mvwaddnwstr(win, p_y++, p_x, cur_ptr, nl_ptr - cur_ptr); + cur_ptr = nl_ptr + 1; + nl_ptr = wcschr(cur_ptr, '\n'); + if (nl_ptr == NULL) { + mvwaddnwstr(win, p_y++, p_x, cur_ptr, wcslen(cur_ptr)); + break; + } + } + } fui->cur_pos.y = i;