From 7ac685b68ca7da8388010372a41ec08bd92be618 Mon Sep 17 00:00:00 2001 From: Boris Faure Date: Mon, 26 Jun 2017 21:58:59 +0200 Subject: [PATCH] termpty: DECERA only changes codepoints --- src/bin/termpty.c | 13 +++++++++++++ src/bin/termpty.h | 2 ++ src/bin/termptyesc.c | 2 +- 3 files changed, 16 insertions(+), 1 deletion(-) diff --git a/src/bin/termpty.c b/src/bin/termpty.c index 90a080f6..23575764 100644 --- a/src/bin/termpty.c +++ b/src/bin/termpty.c @@ -1585,6 +1585,19 @@ termpty_cell_fill(Termpty *ty, Termcell *src, Termcell *dst, int n) } } +void +termpty_cells_set_content(Termpty *ty, Termcell *cells, + Eina_Unicode codepoint, int count) +{ + int i; + for (i = 0; i < count; i++) + { + _handle_block_codepoint_overwrite(ty, cells[i].codepoint, codepoint); + cells[i].codepoint = codepoint; + } +} + + void termpty_cell_codepoint_att_fill(Termpty *ty, Eina_Unicode codepoint, Termatt att, Termcell *dst, int n) diff --git a/src/bin/termpty.h b/src/bin/termpty.h index aab9df58..c8594016 100644 --- a/src/bin/termpty.h +++ b/src/bin/termpty.h @@ -255,6 +255,8 @@ Termblock *termpty_block_chid_get(Termpty *ty, const char *chid); void termpty_cell_copy(Termpty *ty, Termcell *src, Termcell *dst, int n); void termpty_cell_fill(Termpty *ty, Termcell *src, Termcell *dst, int n); void termpty_cell_codepoint_att_fill(Termpty *ty, Eina_Unicode codepoint, Termatt att, Termcell *dst, int n); +void termpty_cells_set_content(Termpty *ty, Termcell *cells, + Eina_Unicode codepoint, int count); void termpty_screen_swap(Termpty *ty); ssize_t termpty_line_length(const Termcell *cells, ssize_t nb_cells); diff --git a/src/bin/termptyesc.c b/src/bin/termptyesc.c index 26211f95..6794d2cf 100644 --- a/src/bin/termptyesc.c +++ b/src/bin/termptyesc.c @@ -930,7 +930,7 @@ _handle_esc_csi_decera(Termpty *ty, Eina_Unicode **b) for (; top <= bottom; top++) { Termcell *cells = &(TERMPTY_SCREEN(ty, left, top)); - termpty_cells_clear(ty, cells, len); + termpty_cells_set_content(ty, cells, ' ', len); } }