JasonWoof Got questions, comments, patches, etc.? Contact Jason Woofenden
Fix definition of CONTROLC0
[st.git] / st.c
diff --git a/st.c b/st.c
index 8f19018..1c998ec 100644 (file)
--- a/st.c
+++ b/st.c
@@ -70,7 +70,7 @@ char *argv0;
 #define LEN(a)     (sizeof(a) / sizeof(a)[0])
 #define DEFAULT(a, b)     (a) = (a) ? (a) : (b)
 #define BETWEEN(x, a, b)  ((a) <= (x) && (x) <= (b))
-#define ISCONTROLC0(c) (BETWEEN(c, 0, 0x1f))
+#define ISCONTROLC0(c) (BETWEEN(c, 0, 0x1f) || (c) == '\177')
 #define ISCONTROLC1(c) (BETWEEN(c, 0x80, 0x9f))
 #define ISCONTROL(c) (ISCONTROLC0(c) || ISCONTROLC1(c))
 #define LIMIT(x, a, b)    (x) = (x) < (a) ? (a) : (x) > (b) ? (b) : (x)
@@ -1356,9 +1356,12 @@ treset(void) {
        memset(term.trantbl, sizeof(term.trantbl), CS_USA);
        term.charset = 0;
 
-       tclearregion(0, 0, term.col-1, term.row-1);
-       tmoveto(0, 0);
-       tcursor(CURSOR_SAVE);
+       for(i = 0; i < 2; i++) {
+               tmoveto(0, 0);
+               tcursor(CURSOR_SAVE);
+               tclearregion(0, 0, term.col-1, term.row-1);
+               tswapscreen();
+       }
 }
 
 void
@@ -2661,7 +2664,6 @@ tresize(int col, int row) {
        int mincol = MIN(col, term.col);
        int slide = term.c.y - row + 1;
        bool *bp;
-       Line *orig;
        TCursor c;
 
        if(col < 1 || row < 1) {
@@ -2724,9 +2726,8 @@ tresize(int col, int row) {
        /* make use of the LIMIT in tmoveto */
        tmoveto(term.c.x, term.c.y);
        /* Clearing both screens (it makes dirty all lines) */
-       orig = term.line;
        c = term.c;
-       do {
+       for(i = 0; i < 2; i++) {
                if(mincol < col && 0 < minrow) {
                        tclearregion(mincol, 0, col - 1, minrow - 1);
                }
@@ -2735,7 +2736,7 @@ tresize(int col, int row) {
                }
                tswapscreen();
                tcursor(CURSOR_LOAD);
-       } while(orig != term.line);
+       }
        term.c = c;
 }