# st

Unnamed repository; edit this file 'description' to name the repository.

| Log | Files | Refs | README | LICENSE

    commit 6b315558f8095b91988d5b305ed06e082da48889
    parent 5f91983541014d34274087dbf723b48551f90fc0
    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:
    Mst.c | 4+++-

    1 file changed, 3 insertions(+), 1 deletion(-)
    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);
     }