From 4fc82672649a175ebbbd82242d715a693d3c13ce Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Sun, 14 Nov 2021 10:23:42 +0530 Subject: [PATCH] Fix #4235 --- kitty/fonts.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/kitty/fonts.c b/kitty/fonts.c index e49f19372..f1c09af08 100644 --- a/kitty/fonts.c +++ b/kitty/fonts.c @@ -1257,10 +1257,12 @@ render_line(FONTS_DATA_HANDLE fg_, Line *line, index_type lnum, Cursor *cursor, } unsigned int num_spaces = 0; - while ((line->cpu_cells[i+num_spaces+1].ch == ' ') + while ( + i + num_spaces + 1 < line->xnum + && line->cpu_cells[i+num_spaces+1].ch == ' ' && num_spaces < MAX_NUM_EXTRA_GLYPHS_PUA && num_spaces + 1 < desired_cells - && i + num_spaces + 1 < line->xnum) { + ) { num_spaces++; // We have a private use char followed by space(s), render it as a multi-cell ligature. GPUCell *space_cell = line->gpu_cells + i + num_spaces;