]> git.armaanb.net Git - st.git/blobdiff - st.c
set sel.alt in selstart instead of selextend
[st.git] / st.c
diff --git a/st.c b/st.c
index f46aab61c0329a11c652bbb574f9a71525dfc994..2612c955872b516a0ad76e2097b7f09d9a47bc78 100644 (file)
--- a/st.c
+++ b/st.c
@@ -3,24 +3,18 @@
 #include <errno.h>
 #include <fcntl.h>
 #include <limits.h>
-#include <locale.h>
 #include <pwd.h>
 #include <stdarg.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
 #include <signal.h>
-#include <stdint.h>
 #include <sys/ioctl.h>
 #include <sys/select.h>
-#include <sys/stat.h>
-#include <sys/time.h>
 #include <sys/types.h>
 #include <sys/wait.h>
 #include <termios.h>
-#include <time.h>
 #include <unistd.h>
-#include <libgen.h>
 #include <wchar.h>
 
 #include "st.h"
@@ -452,6 +446,7 @@ selstart(int col, int row, int snap)
        selclear();
        sel.mode = SEL_EMPTY;
        sel.type = SEL_REGULAR;
+       sel.alt = IS_SET(MODE_ALTSCREEN);
        sel.snap = snap;
        sel.oe.x = sel.ob.x = col;
        sel.oe.y = sel.ob.y = row;
@@ -467,7 +462,7 @@ selextend(int col, int row, int type, int done)
 {
        int oldey, oldex, oldsby, oldsey, oldtype;
 
-       if (!sel.mode)
+       if (sel.mode == SEL_IDLE)
                return;
        if (done && sel.mode == SEL_EMPTY) {
                selclear();
@@ -480,7 +475,6 @@ selextend(int col, int row, int type, int done)
        oldsey = sel.ne.y;
        oldtype = sel.type;
 
-       sel.alt = IS_SET(MODE_ALTSCREEN);
        sel.oe.x = col;
        sel.oe.y = row;
        selnormalize();
@@ -746,7 +740,6 @@ sigchld(int a)
        exit(0);
 }
 
-
 void
 stty(char **args)
 {
@@ -768,7 +761,7 @@ stty(char **args)
        }
        *q = '\0';
        if (system(cmd) != 0)
-           perror("Couldn't call stty");
+               perror("Couldn't call stty");
 }
 
 int
@@ -1700,7 +1693,6 @@ csihandle(void)
                tputtab(csiescseq.arg[0]);
                break;
        case 'J': /* ED -- Clear screen */
-               selclear();
                switch (csiescseq.arg[0]) {
                case 0: /* below */
                        tclearregion(term.c.x, term.c.y, term.col-1, term.c.y);