aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--st.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/st.c b/st.c
index 263abaa..e468d73 100644
--- a/st.c
+++ b/st.c
@@ -1587,30 +1587,32 @@ tclearregion(int x1, int y1, int x2, int y2) {
1587void 1587void
1588tdeletechar(int n) { 1588tdeletechar(int n) {
1589 int dst, src, size; 1589 int dst, src, size;
1590 Glyph *line;
1590 1591
1591 LIMIT(n, 0, term.col - term.c.x); 1592 LIMIT(n, 0, term.col - term.c.x);
1592 1593
1593 dst = term.c.x; 1594 dst = term.c.x;
1594 src = term.c.x + n; 1595 src = term.c.x + n;
1595 size = term.col - src; 1596 size = term.col - src;
1597 line = term.line[term.c.y];
1596 1598
1597 memmove(&term.line[term.c.y][dst], &term.line[term.c.y][src], 1599 memmove(&line[dst], &line[src], size * sizeof(Glyph));
1598 size * sizeof(Glyph));
1599 tclearregion(term.col-n, term.c.y, term.col-1, term.c.y); 1600 tclearregion(term.col-n, term.c.y, term.col-1, term.c.y);
1600} 1601}
1601 1602
1602void 1603void
1603tinsertblank(int n) { 1604tinsertblank(int n) {
1604 int dst, src, size; 1605 int dst, src, size;
1606 Glyph *line;
1605 1607
1606 LIMIT(n, 0, term.col - term.c.x); 1608 LIMIT(n, 0, term.col - term.c.x);
1607 1609
1608 dst = term.c.x + n; 1610 dst = term.c.x + n;
1609 src = term.c.x; 1611 src = term.c.x;
1610 size = term.col - dst; 1612 size = term.col - dst;
1613 line = term.line[term.c.y];
1611 1614
1612 memmove(&term.line[term.c.y][dst], &term.line[term.c.y][src], 1615 memmove(&line[dst], &line[src], size * sizeof(Glyph));
1613 size * sizeof(Glyph));
1614 tclearregion(src, term.c.y, dst - 1, term.c.y); 1616 tclearregion(src, term.c.y, dst - 1, term.c.y);
1615} 1617}
1616 1618