Do not save cursor in tresize. - st - Personal fork of st
 (HTM) git clone git://git.drkhsh.at/st.git
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
 (DIR) commit 6b315558f8095b91988d5b305ed06e082da48889
 (DIR) parent 5f91983541014d34274087dbf723b48551f90fc0
 (HTM) Author: noname <noname@inventati.org>
       Date:   Tue, 29 Apr 2014 02:35:22 +0400
       
       Do not save cursor in tresize.
       
       This patch fixes the bug introduced in
       8f11e1cd034ff28ca47bb4955505db7fa8016ba8
       
       To reproduce the bug:
       1. Save cursor: printf '\e[s'
       2. Load cursor: printf '\e[u'
       3. Resize st window.
       4. Load cursor again: printf '\e[u'
       
       Diffstat:
         M st.c                                |       4 +++-
       
       1 file changed, 3 insertions(+), 1 deletion(-)
       ---
 (DIR) diff --git a/st.c b/st.c
       @@ -2634,6 +2634,7 @@ tresize(int col, int row) {
                int slide = term.c.y - row + 1;
                bool *bp;
                Line *orig;
       +        TCursor c;
        
                if(col < 1 || row < 1)
                        return 0;
       @@ -2695,6 +2696,7 @@ tresize(int col, int row) {
                tmoveto(term.c.x, term.c.y);
                /* Clearing both screens */
                orig = term.line;
       +        c = term.c;
                do {
                        if(mincol < col && 0 < minrow) {
                                tclearregion(mincol, 0, col - 1, minrow - 1);
       @@ -2702,10 +2704,10 @@ tresize(int col, int row) {
                        if(0 < col && minrow < row) {
                                tclearregion(0, minrow, col - 1, row - 1);
                        }
       -                tcursor(CURSOR_SAVE);
                        tswapscreen();
                        tcursor(CURSOR_LOAD);
                } while(orig != term.line);
       +        term.c = c;
        
                return (slide > 0);
        }