X-Git-Url: https://jasonwoof.com/gitweb/?p=st.git;a=blobdiff_plain;f=st.c;h=6a68c3c92d8d8e365b11a21fdc53f83ffa1b36d1;hp=068fbb3469bd6c11aea544c57516a5d00e7509fe;hb=4d14d97547d335974e98aa612ac5b4fcfc25e1d9;hpb=bafbba56cd5735c680676db2adf6f614ba61356f diff --git a/st.c b/st.c index 068fbb3..6a68c3c 100644 --- a/st.c +++ b/st.c @@ -947,6 +947,8 @@ getsel(void) { lastx = (sel.ne.y == y) ? sel.ne.x : term.col-1; } last = &term.line[y][MIN(lastx, linelen-1)]; + while(last >= gp && last->c[0] == ' ') + --last; for( ; gp <= last; ++gp) { if(gp->mode & ATTR_WDUMMY) @@ -1190,7 +1192,7 @@ execsh(void) { signal(SIGALRM, SIG_DFL); execvp(prog, args); - exit(EXIT_FAILURE); + _exit(EXIT_FAILURE); } void @@ -2671,13 +2673,16 @@ tputc(char *c, int len) { if(IS_SET(MODE_WRAP) && (term.c.state & CURSOR_WRAPNEXT)) { gp->mode |= ATTR_WRAP; tnewline(1); + gp = &term.line[term.c.y][term.c.x]; } if(IS_SET(MODE_INSERT) && term.c.x+1 < term.col) memmove(gp+1, gp, (term.col - term.c.x - 1) * sizeof(Glyph)); - if(term.c.x+width > term.col) + if(term.c.x+width > term.col) { tnewline(1); + gp = &term.line[term.c.y][term.c.x]; + } tsetchar(c, &term.c.attr, term.c.x, term.c.y); @@ -3920,6 +3925,9 @@ run(void) { TIMEDIFF(now, lastblink))); } + drawtimeout.tv_sec = \ + drawtimeout.tv_nsec / 1E9; + drawtimeout.tv_nsec %= (long)1E9; } else { tv = NULL; }