tresize: move for loop outside if
[st.git] / st.c
diff --git a/st.c b/st.c
index 0065240..fb37eb5 100644 (file)
--- a/st.c
+++ b/st.c
@@ -944,7 +944,7 @@ getsel(void) {
        ptr = str = xmalloc(bufsize);
 
        /* append every set & selected glyph to the selection */
-       for(y = sel.nb.y; y < sel.ne.y + 1; y++) {
+       for(y = sel.nb.y; y <= sel.ne.y; y++) {
                linelen = tlinelen(y);
 
                if(sel.type == SEL_RECTANGULAR) {
@@ -2780,17 +2780,16 @@ tresize(int col, int row) {
        }
 
        /* free unneeded rows */
-       i = 0;
+       for(i = 0; i < slide; i++) {
+               free(term.line[i]);
+               free(term.alt[i]);
+       }
        if(slide > 0) {
                /*
                 * slide screen to keep cursor where we expect it -
                 * tscrollup would work here, but we can optimize to
                 * memmove because we're freeing the earlier lines
                 */
-               for(/* i = 0 */; i < slide; i++) {
-                       free(term.line[i]);
-                       free(term.alt[i]);
-               }
                memmove(term.line, term.line + slide, row * sizeof(Line));
                memmove(term.alt, term.alt + slide, row * sizeof(Line));
        }
@@ -3591,15 +3590,15 @@ xdrawcursor(void) {
                        case 4: /* Steady Underline */
                                XftDrawRect(xw.draw, &dc.col[defaultcs],
                                                borderpx + curx * xw.cw,
-                                               borderpx + (term.c.y + 1) * xw.ch - 1,
-                                               xw.cw, 1);
+                                               borderpx + (term.c.y + 1) * xw.ch - cursorthickness,
+                                               xw.cw, cursorthickness);
                                break;
                        case 5: /* Blinking bar */
                        case 6: /* Steady bar */
                                XftDrawRect(xw.draw, &dc.col[defaultcs],
-                                                               borderpx + curx * xw.cw,
-                                                               borderpx + term.c.y * xw.ch,
-                                                               1, xw.ch);
+                                               borderpx + curx * xw.cw,
+                                               borderpx + term.c.y * xw.ch,
+                                               cursorthickness, xw.ch);
                                break;
                }
        } else {
@@ -3917,17 +3916,13 @@ run(void) {
        long deltatime;
 
        /* Waiting for window mapping */
-       while(1) {
+       do {
                XNextEvent(xw.dpy, &ev);
-               if(XFilterEvent(&ev, None))
-                       continue;
                if(ev.type == ConfigureNotify) {
                        w = ev.xconfigure.width;
                        h = ev.xconfigure.height;
-               } else if(ev.type == MapNotify) {
-                       break;
                }
-       }
+       } while(ev.type != MapNotify);
 
        ttynew();
        cresize(w, h);
@@ -4072,7 +4067,7 @@ main(int argc, char *argv[]) {
 run:
        setlocale(LC_CTYPE, "");
        XSetLocaleModifiers("");
-       tnew(cols? cols : 1, rows? rows : 1);
+       tnew(MAX(cols, 1), MAX(rows, 1));
        xinit();
        selinit();
        run();