aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBoris Faure <billiob@gmail.com>2017-06-26 21:58:59 +0200
committerBoris Faure <billiob@gmail.com>2017-06-26 21:58:59 +0200
commit7ac685b68ca7da8388010372a41ec08bd92be618 (patch)
tree60b5f9a7a0f1530f4fe433844771e0193a978e2d
parenttermptyesc: restrict right/bottom rectangle coordinates (diff)
downloadterminology-7ac685b68ca7da8388010372a41ec08bd92be618.tar.gz
termpty: DECERA only changes codepoints
-rw-r--r--src/bin/termpty.c13
-rw-r--r--src/bin/termpty.h2
-rw-r--r--src/bin/termptyesc.c2
3 files changed, 16 insertions, 1 deletions
diff --git a/src/bin/termpty.c b/src/bin/termpty.c
index 90a080f..2357576 100644
--- a/src/bin/termpty.c
+++ b/src/bin/termpty.c
@@ -1586,6 +1586,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 aab9df5..c859401 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 26211f9..6794d2c 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);
}
}