[hackers] [st] factor and cleanup code. || Aurélien Aptel

From: <hg_AT_suckless.org>
Date: Wed, 1 Sep 2010 15:21:38 +0000 (UTC)

changeset: 128:10b8e415d688
user: Aurélien Aptel <aurelien.aptel_AT_gmail.com>
date: Wed Sep 01 16:26:12 2010 +0200
files: st.c
description:
factor and cleanup code.

diff -r 41911d8ef8f5 -r 10b8e415d688 st.c
--- a/st.c Wed Sep 01 00:30:39 2010 +0200
+++ b/st.c Wed Sep 01 16:26:12 2010 +0200
@@ -387,10 +387,10 @@
 
 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);
@@ -465,8 +465,7 @@
         
         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];
@@ -481,8 +480,7 @@
         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];
@@ -957,7 +955,8 @@
                                 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;
@@ -1201,18 +1200,18 @@
         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(xw.dis, xw.scr));
         /* gc */
         dc.gc = XCreateGC(xw.dis, xw.win, 0, NULL);
-
+
         /* event mask */
         XSelectInput(xw.dis, xw.win, ExposureMask | KeyPressMask
                 | StructureNotifyMask | FocusChangeMask | PointerMotionMask
Received on Wed Sep 01 2010 - 17:21:38 CEST

This archive was generated by hypermail 2.2.0 : Wed Sep 01 2010 - 17:24:04 CEST