Xinqi Bao's Git
projects
/
st.git
/ diff
summary
|
log
|
commit
|
diff
|
tree
raw
|
patch
|
inline
| side by side (parent:
ef69118
)
fixed IL and DL.
author
Aurélien Aptel <
[email protected]
>
Wed, 1 Sep 2010 15:21:09 +0000
(17:21 +0200)
committer
Aurélien Aptel <
[email protected]
>
Wed, 1 Sep 2010 15:21:09 +0000
(17:21 +0200)
st.c
diff
|
blob
|
history
diff --git
a/st.c
b/st.c
index
6abdc3f
..
65829a8
100644
(file)
--- a/
st.c
+++ b/
st.c
@@
-392,8
+392,10
@@
ttyread(void) {
if((ret = read(cmdfd, buf, LEN(buf))) < 0)
die("Couldn't read from shell: %s\n", SERRNO);
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);
tputs(buf, ret);
+ }
}
void
}
void
@@
-589,21
+591,16
@@
tinsertblankline(int n) {
Line blank;
int bot = term.bot;
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;
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;
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));
}
}
}
}
@@
-613,21
+610,16
@@
tdeleteline(int n) {
Line blank;
int bot = term.bot;
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;
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;
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));
}
}
}
}