URI: 
       Do not save cursor in tresize. - st - simple terminal
  HTML git clone https://git.parazyd.org/st
   DIR Log
   DIR Files
   DIR Refs
   DIR README
   DIR LICENSE
       ---
   DIR commit 6b315558f8095b91988d5b305ed06e082da48889
   DIR parent 5f91983541014d34274087dbf723b48551f90fc0
  HTML 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);
        }