JasonWoof Got questions, comments, patches, etc.? Contact Jason Woofenden
tresize return value is not used
[st.git] / st.c
diff --git a/st.c b/st.c
index a2703f4..9eebbe4 100644 (file)
--- a/st.c
+++ b/st.c
@@ -382,7 +382,7 @@ static void tnewline(int);
 static void tputtab(int);
 static void tputc(char *, int);
 static void treset(void);
-static int tresize(int, int);
+static void tresize(int, int);
 static void tscrollup(int, int);
 static void tscrolldown(int, int);
 static void tsetattr(int *, int);
@@ -1176,16 +1176,15 @@ execsh(void) {
 
 void
 sigchld(int a) {
-       int stat = 0;
+       int stat, ret;
 
        if(waitpid(pid, &stat, 0) < 0)
                die("Waiting for pid %hd failed: %s\n", pid, strerror(errno));
 
-       if(WIFEXITED(stat)) {
-               exit(WEXITSTATUS(stat));
-       } else {
-               exit(EXIT_FAILURE);
-       }
+       ret = WIFEXITED(stat) ? WEXITSTATUS(stat) : EXIT_FAILURE;
+       if (ret != EXIT_SUCCESS)
+               die("child finished with error '%d'\n", stat);
+       exit(EXIT_SUCCESS);
 }
 
 void
@@ -1554,6 +1553,7 @@ tsetchar(char *c, Glyph *attr, int x, int y) {
 void
 tclearregion(int x1, int y1, int x2, int y2) {
        int x, y, temp;
+       Glyph *gp;
 
        if(x1 > x2)
                temp = x1, x1 = x2, x2 = temp;
@@ -1568,10 +1568,13 @@ tclearregion(int x1, int y1, int x2, int y2) {
        for(y = y1; y <= y2; y++) {
                term.dirty[y] = 1;
                for(x = x1; x <= x2; x++) {
+                       gp = &term.line[y][x];
                        if(selected(x, y))
                                selclear(NULL);
-                       term.line[y][x] = term.c.attr;
-                       memcpy(term.line[y][x].c, " ", 2);
+                       gp->fg = term.c.attr.fg;
+                       gp->bg = term.c.attr.bg;
+                       gp->mode = 0;
+                       memcpy(gp->c, " ", 2);
                }
        }
 }
@@ -2653,7 +2656,7 @@ tputc(char *c, int len) {
        }
 }
 
-int
+void
 tresize(int col, int row) {
        int i;
        int minrow = MIN(row, term.row);
@@ -2663,8 +2666,11 @@ tresize(int col, int row) {
        Line *orig;
        TCursor c;
 
-       if(col < 1 || row < 1)
-               return 0;
+       if(col < 1 || row < 1) {
+               fprintf(stderr,
+                       "tresize: error resizing to %dx%d\n", col, row);
+               return;
+       }
 
        /* free unneeded rows */
        i = 0;
@@ -2735,8 +2741,6 @@ tresize(int col, int row) {
                tcursor(CURSOR_LOAD);
        } while(orig != term.line);
        term.c = c;
-
-       return (slide > 0);
 }
 
 void