Xinqi Bao's Git
projects
/
st.git
/ blobdiff
summary
|
log
|
commit
|
diff
|
tree
raw
|
inline
| side by side
Simplify a bit more tdeletechar and tinsertblank
[st.git]
/
st.c
diff --git
a/st.c
b/st.c
index
60243a7
..
e468d73
100644
(file)
--- a/
st.c
+++ b/
st.c
@@
-1586,37
+1586,33
@@
tclearregion(int x1, int y1, int x2, int y2) {
void
tdeletechar(int n) {
void
tdeletechar(int n) {
- int src = term.c.x + n;
- int dst = term.c.x;
- int size = term.col - src;
+ int dst, src, size;
+ Glyph *line;
-
term.dirty[term.c.y] = 1
;
+
LIMIT(n, 0, term.col - term.c.x)
;
- if(src >= term.col) {
-
tclearregion(term.c.x, term.c.y, term.col-1, term.c.y)
;
-
return
;
- }
+ dst = term.c.x;
+
src = term.c.x + n
;
+
size = term.col - src
;
+ line = term.line[term.c.y];
- memmove(&term.line[term.c.y][dst], &term.line[term.c.y][src],
- size * sizeof(Glyph));
+ memmove(&line[dst], &line[src], size * sizeof(Glyph));
tclearregion(term.col-n, term.c.y, term.col-1, term.c.y);
}
void
tinsertblank(int n) {
tclearregion(term.col-n, term.c.y, term.col-1, term.c.y);
}
void
tinsertblank(int n) {
- int src = term.c.x;
- int dst = src + n;
- int size = term.col - dst;
+ int dst, src, size;
+ Glyph *line;
-
term.dirty[term.c.y] = 1
;
+
LIMIT(n, 0, term.col - term.c.x)
;
- if(dst >= term.col) {
-
tclearregion(term.c.x, term.c.y, term.col-1, term.c.y)
;
-
return
;
- }
+ dst = term.c.x + n;
+
src = term.c.x
;
+
size = term.col - dst
;
+ line = term.line[term.c.y];
- memmove(&term.line[term.c.y][dst], &term.line[term.c.y][src],
- size * sizeof(Glyph));
+ memmove(&line[dst], &line[src], size * sizeof(Glyph));
tclearregion(src, term.c.y, dst - 1, term.c.y);
}
tclearregion(src, term.c.y, dst - 1, term.c.y);
}