fixed ED.
authorAurélien Aptel <aurelien.aptel@gmail.com>
Sun, 31 Oct 2010 19:29:22 +0000 (20:29 +0100)
committerAurélien Aptel <aurelien.aptel@gmail.com>
Sun, 31 Oct 2010 19:29:22 +0000 (20:29 +0100)
st.c

diff --git a/st.c b/st.c
index ed8e2a8..76a2016 100644 (file)
--- a/st.c
+++ b/st.c
@@ -883,10 +883,14 @@ csihandle(void) {
        case 'J': /* ED -- Clear screen */
                switch(escseq.arg[0]) {
                case 0: /* below */
-                       tclearregion(term.c.x, term.c.y, term.col-1, term.row-1);
+                       tclearregion(term.c.x, term.c.y, term.col-1, term.c.y);
+                       if(term.c.y < term.row-1)
+                               tclearregion(0, term.c.y+1, term.col-1, term.row-1);
                        break;
                case 1: /* above */
-                       tclearregion(0, 0, term.c.x, term.c.y);
+                       if(term.c.y > 1)
+                               tclearregion(0, 0, term.col-1, term.c.y-1);
+                       tclearregion(0, term.c.y, term.c.x, term.c.y);
                        break;
                case 2: /* all */
                        tclearregion(0, 0, term.col-1, term.row-1);