X-Git-Url: https://git.xinqibao.xyz/st.git/blobdiff_plain/ab69ea89b759eb457b1e5314d5345fdeea3dec87..0d7448dabc981716d277a5afac22fabc127bacca:/st.c diff --git a/st.c b/st.c index 71b1521..f9aba90 100644 --- a/st.c +++ b/st.c @@ -158,8 +158,7 @@ enum escape_state { enum window_state { WIN_VISIBLE = 1, - WIN_REDRAW = 2, - WIN_FOCUSED = 4 + WIN_FOCUSED = 2 }; enum selection_type { @@ -2269,8 +2268,7 @@ strhandle(void) { term.esc &= ~(ESC_STR_END|ESC_STR); strparse(); - narg = strescseq.narg; - par = atoi(strescseq.args[0]); + par = (narg = strescseq.narg) ? atoi(strescseq.args[0]) : 0; switch(strescseq.type) { case ']': /* OSC -- Operating System Command */ @@ -2907,7 +2905,7 @@ xloadcols(void) { Color *cp; if(loaded) { - for (cp = dc.col; cp < dc.col + LEN(dc.col); ++cp) + for (cp = dc.col; cp < &dc.col[LEN(dc.col)]; ++cp) XftColorFree(xw.dpy, xw.vis, xw.cmap, cp); } @@ -3739,12 +3737,6 @@ drawregion(int x1, int y1, int x2, int y2) { void expose(XEvent *ev) { - XExposeEvent *e = &ev->xexpose; - - if(xw.state & WIN_REDRAW) { - if(!e->count) - xw.state &= ~WIN_REDRAW; - } redraw(); } @@ -3752,12 +3744,7 @@ void visibility(XEvent *ev) { XVisibilityEvent *e = &ev->xvisibility; - if(e->state == VisibilityFullyObscured) { - xw.state &= ~WIN_VISIBLE; - } else if(!(xw.state & WIN_VISIBLE)) { - /* need a full redraw for next Expose, not just a buf copy */ - xw.state |= WIN_VISIBLE | WIN_REDRAW; - } + MODBIT(xw.state, e->state != VisibilityFullyObscured, WIN_VISIBLE); } void @@ -4102,7 +4089,7 @@ run: if(argc > 0) { /* eat all remaining arguments */ opt_cmd = argv; - if(!opt_title) + if(!opt_title && !opt_line) opt_title = basename(xstrdup(argv[0])); } setlocale(LC_CTYPE, "");