aboutsummaryrefslogtreecommitdiff
path: root/src/vterm/screen.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/vterm/screen.c')
-rw-r--r--src/vterm/screen.c15
1 files changed, 7 insertions, 8 deletions
diff --git a/src/vterm/screen.c b/src/vterm/screen.c
index bd3cbd6bd0..1f5bb36114 100644
--- a/src/vterm/screen.c
+++ b/src/vterm/screen.c
@@ -2,9 +2,10 @@
#include <stdio.h>
#include <string.h>
+#include "nvim/mbyte.h"
+#include "nvim/tui/termkey/termkey.h"
#include "rect.h"
-#include "utf8.h"
#define UNICODE_SPACE 0x20
#define UNICODE_LINEFEED 0x0a
@@ -508,8 +509,6 @@ static int line_popcount(ScreenCell *buffer, int row, int rows, int cols)
return col + 1;
}
-#define REFLOW (screen->reflow)
-
static void resize_buffer(VTermScreen *screen, int bufidx, int new_rows, int new_cols, bool active, VTermStateFields *statefields)
{
int old_rows = screen->rows;
@@ -540,13 +539,13 @@ static void resize_buffer(VTermScreen *screen, int bufidx, int new_rows, int new
while(old_row >= 0) {
int old_row_end = old_row;
/* TODO: Stop if dwl or dhl */
- while(REFLOW && old_lineinfo && old_row > 0 && old_lineinfo[old_row].continuation)
+ while(screen->reflow && old_lineinfo && old_row > 0 && old_lineinfo[old_row].continuation)
old_row--;
int old_row_start = old_row;
int width = 0;
for(int row = old_row_start; row <= old_row_end; row++) {
- if(REFLOW && row < (old_rows - 1) && old_lineinfo[row + 1].continuation)
+ if(screen->reflow && row < (old_rows - 1) && old_lineinfo[row + 1].continuation)
width += old_cols;
else
width += line_popcount(old_buffer, row, old_rows, old_cols);
@@ -555,7 +554,7 @@ static void resize_buffer(VTermScreen *screen, int bufidx, int new_rows, int new
if(final_blank_row == (new_row + 1) && width == 0)
final_blank_row = new_row;
- int new_height = REFLOW
+ int new_height = screen->reflow
? width ? (width + new_cols - 1) / new_cols : 1
: 1;
@@ -628,7 +627,7 @@ static void resize_buffer(VTermScreen *screen, int bufidx, int new_rows, int new
if(old_col == old_cols) {
old_row++;
- if(!REFLOW) {
+ if(!screen->reflow) {
new_col++;
break;
}
@@ -922,7 +921,7 @@ static size_t _get_chars(const VTermScreen *screen, const int utf8, void *buffer
#define PUT(c) \
if(utf8) { \
- size_t thislen = utf8_seqlen(c); \
+ size_t thislen = utf_char2len(c); \
if(buffer && outpos + thislen <= len) \
outpos += fill_utf8((c), (char *)buffer + outpos); \
else \