diff --git a/src/terminal/new/Terminal.zig b/src/terminal/new/Terminal.zig index a7cf7ecfd..089981cf9 100644 --- a/src/terminal/new/Terminal.zig +++ b/src/terminal/new/Terminal.zig @@ -303,6 +303,8 @@ fn printCell(self: *Terminal, unmapped_c: u21) void { // If the prior value had graphemes, clear those //if (cell.attrs.grapheme) row.clearGraphemes(self.screen.cursor.x); + // TODO: prev cell overwriting style + // Write self.screen.cursor.page_cell.* = .{ .style_id = self.screen.cursor.style_id, diff --git a/src/terminal/new/page.zig b/src/terminal/new/page.zig index 4f6be3a8f..8628d0ea9 100644 --- a/src/terminal/new/page.zig +++ b/src/terminal/new/page.zig @@ -53,6 +53,12 @@ pub const Page = struct { /// first column, all cells in that row are laid out in column order. cells: Offset(Cell), + /// The multi-codepoint grapheme data for this page. This is where + /// any cell that has more than one codepoint will be stored. This is + /// relatively rare (typically only emoji) so this defaults to a very small + /// size and we force page realloc when it grows. + __todo_graphemes: void = {}, + /// The available set of styles in use on this page. styles: style.Set,