tfixed IL and DL. - st - [fork] customized build of st, the simple terminal | |
git clone git://src.adamsgaard.dk/st | |
Log | |
Files | |
Refs | |
README | |
LICENSE | |
--- | |
commit 5ce6c5c0324ef3b7d0f5b9e6e2ba4d87ae0d3bb1 | |
parent ef69118028afad1938951a1f7dff8db2aa557879 | |
Author: Aurélien Aptel <[email protected]> | |
Date: Wed, 1 Sep 2010 17:21:09 +0200 | |
fixed IL and DL. | |
Diffstat: | |
M st.c | 30 +++++++++++------------------- | |
1 file changed, 11 insertions(+), 19 deletions(-) | |
--- | |
diff --git a/st.c b/st.c | |
t@@ -392,8 +392,10 @@ ttyread(void) { | |
if((ret = read(cmdfd, buf, LEN(buf))) < 0) | |
die("Couldn't read from shell: %s\n", SERRNO); | |
- else | |
+ else { | |
+ printf("ttyread %d\n", ret); | |
tputs(buf, ret); | |
+ } | |
} | |
void | |
t@@ -589,21 +591,16 @@ tinsertblankline(int n) { | |
Line blank; | |
int bot = term.bot; | |
- if(term.c.y > term.bot) | |
- bot = term.row - 1; | |
- else if(term.c.y < term.top) | |
- bot = term.top - 1; | |
- if(term.c.y + n >= bot) { | |
- tclearregion(0, term.c.y, term.col-1, bot); | |
+ if(term.c.y < term.top || term.c.y > term.bot) | |
return; | |
- } | |
+ | |
+ LIMIT(n, 0, bot-term.c.y+1); | |
+ tclearregion(0, bot-n+1, term.col-1, bot); | |
for(i = bot; i >= term.c.y+n; i--) { | |
/* swap deleted line <-> blanked line */ | |
blank = term.line[i]; | |
term.line[i] = term.line[i-n]; | |
term.line[i-n] = blank; | |
- /* blank it */ | |
- memset(blank, 0, term.col * sizeof(Glyph)); | |
} | |
} | |
t@@ -613,21 +610,16 @@ tdeleteline(int n) { | |
Line blank; | |
int bot = term.bot; | |
- if(term.c.y > term.bot) | |
- bot = term.row - 1; | |
- else if(term.c.y < term.top) | |
- bot = term.top - 1; | |
- if(term.c.y + n >= bot) { | |
- tclearregion(0, term.c.y, term.col-1, bot); | |
+ if(term.c.y < term.top || term.c.y > term.bot) | |
return; | |
- } | |
+ | |
+ LIMIT(n, 0, bot-term.c.y+1); | |
+ tclearregion(0, term.c.y, term.col-1, term.c.y+n-1); | |
for(i = term.c.y; i <= bot-n; i++) { | |
/* swap deleted line <-> blanked line */ | |
blank = term.line[i]; | |
term.line[i] = term.line[i+n]; | |
term.line[i+n] = blank; | |
- /* blank it */ | |
- memset(blank, 0, term.col * sizeof(Glyph)); | |
} | |
} | |