tfactor and cleanup code. - st - [fork] customized build of st, the simple term… | |
git clone git://src.adamsgaard.dk/st | |
Log | |
Files | |
Refs | |
README | |
LICENSE | |
--- | |
commit ef69118028afad1938951a1f7dff8db2aa557879 | |
parent f732ca5f1f03a0a496a07aa6bda15f6c363a2484 | |
Author: Aurélien Aptel <[email protected]> | |
Date: Wed, 1 Sep 2010 16:26:12 +0200 | |
factor and cleanup code. | |
Diffstat: | |
M st.c | 23 +++++++++++------------ | |
1 file changed, 11 insertions(+), 12 deletions(-) | |
--- | |
diff --git a/st.c b/st.c | |
t@@ -387,10 +387,10 @@ dump(char c) { | |
void | |
ttyread(void) { | |
- char buf[BUFSIZ] = {0}; | |
+ char buf[BUFSIZ]; | |
int ret; | |
- if((ret = read(cmdfd, buf, BUFSIZ)) < 0) | |
+ if((ret = read(cmdfd, buf, LEN(buf))) < 0) | |
die("Couldn't read from shell: %s\n", SERRNO); | |
else | |
tputs(buf, ret); | |
t@@ -465,8 +465,7 @@ tscrolldown (int n) { | |
LIMIT(n, 0, term.bot-term.top+1); | |
- for(i = 0; i < n; i++) | |
- memset(term.line[term.bot-i], 0, term.col*sizeof(Glyph)); | |
+ tclearregion(0, term.bot-n+1, term.col-1, term.bot); | |
for(i = term.bot; i >= term.top+n; i--) { | |
temp = term.line[i]; | |
t@@ -481,8 +480,7 @@ tscrollup (int n) { | |
Line temp; | |
LIMIT(n, 0, term.bot-term.top+1); | |
- for(i = 0; i < n; i++) | |
- memset(term.line[term.top+i], 0, term.col*sizeof(Glyph)); | |
+ tclearregion(0, term.top, term.col-1, term.top+n-1); | |
for(i = term.top; i <= term.bot-n; i++) { | |
temp = term.line[i]; | |
t@@ -957,7 +955,8 @@ tputc(char c) { | |
term.esc = 0; | |
csiparse(), csihandle(); | |
} | |
- } else if(term.esc & ESC_OSC) { | |
+ /* TODO: handle other OSC */ | |
+ } else if(term.esc & ESC_OSC) { | |
if(c == ';') { | |
term.titlelen = 0; | |
term.esc = ESC_START | ESC_TITLE; | |
t@@ -1201,18 +1200,18 @@ xinit(void) { | |
xloadcols(); | |
/* windows */ | |
- xw.h = term.row * xw.ch + 2*BORDER; | |
- xw.w = term.col * xw.cw + 2*BORDER; | |
+ xw.bufh = term.row * xw.ch; | |
+ xw.bufw = term.col * xw.cw; | |
+ xw.h = xw.bufh + 2*BORDER; | |
+ xw.w = xw.bufw + 2*BORDER; | |
xw.win = XCreateSimpleWindow(xw.dis, XRootWindow(xw.dis, xw.scr), 0, 0, | |
xw.w, xw.h, 0, | |
dc.col[DefaultBG], | |
dc.col[DefaultBG]); | |
- xw.bufw = xw.w - 2*BORDER; | |
- xw.bufh = xw.h - 2*BORDER; | |
xw.buf = XCreatePixmap(xw.dis, xw.win, xw.bufw, xw.bufh, XDefaultDepth… | |
/* gc */ | |
dc.gc = XCreateGC(xw.dis, xw.win, 0, NULL); | |
- | |
+ | |
/* event mask */ | |
XSelectInput(xw.dis, xw.win, ExposureMask | KeyPressMask | |
| StructureNotifyMask | FocusChangeMask | PointerMotionMask |