config.def.h: remove crlf value section
[st.git] / st.c
diff --git a/st.c b/st.c
index 812f30c..ede7ae6 100644 (file)
--- a/st.c
+++ b/st.c
@@ -41,7 +41,7 @@
 #define ISCONTROLC0(c)         (BETWEEN(c, 0, 0x1f) || (c) == '\177')
 #define ISCONTROLC1(c)         (BETWEEN(c, 0x80, 0x9f))
 #define ISCONTROL(c)           (ISCONTROLC0(c) || ISCONTROLC1(c))
-#define ISDELIM(u)             (u != 0 && wcschr(worddelimiters, u) != NULL)
+#define ISDELIM(u)             (u && wcschr(worddelimiters, u))
 
 enum term_mode {
        MODE_WRAP        = 1 << 0,
@@ -458,7 +458,7 @@ selextend(int col, int row, int type, int done)
        selnormalize();
        sel.type = type;
 
-       if (oldey != sel.oe.y || oldex != sel.oe.x || oldtype != sel.type)
+       if (oldey != sel.oe.y || oldex != sel.oe.x || oldtype != sel.type || sel.mode == SEL_EMPTY)
                tsetdirt(MIN(sel.nb.y, oldsby), MAX(sel.ne.y, oldsey));
 
        sel.mode = done ? SEL_IDLE : SEL_READY;
@@ -1829,7 +1829,7 @@ csireset(void)
 void
 strhandle(void)
 {
-       char *p = NULL;
+       char *p = NULL, *dec;
        int j, narg, par;
 
        term.esc &= ~(ESC_STR_END|ESC_STR);
@@ -1847,8 +1847,6 @@ strhandle(void)
                        return;
                case 52:
                        if (narg > 2) {
-                               char *dec;
-
                                dec = base64dec(strescseq.args[2]);
                                if (dec) {
                                        xsetsel(dec);
@@ -1866,7 +1864,10 @@ strhandle(void)
                case 104: /* color reset, here p = NULL */
                        j = (narg > 1) ? atoi(strescseq.args[1]) : -1;
                        if (xsetcolorname(j, p)) {
-                               fprintf(stderr, "erresc: invalid color %s\n", p);
+                               if (par == 104 && narg <= 1)
+                                       return; /* color reset without parameter */
+                               fprintf(stderr, "erresc: invalid color j=%d, p=%s\n",
+                                       j, p ? p : "(null)");
                        } else {
                                /*
                                 * TODO if defaultbg color is changed, borders