diff options
author | Thomas Adam <thomas@xteddy.org> | 2017-04-16 22:01:19 +0100 |
---|---|---|
committer | Thomas Adam <thomas@xteddy.org> | 2017-04-16 22:01:19 +0100 |
commit | d912687be76891cdf5d124d278bf42b0bebd3106 (patch) | |
tree | 6b7bfcddd7f754408007a3406e7ddca86ec70cdf | |
parent | 9583878a7b31a37cfaca9a39d3884c06da7d1ae1 (diff) | |
parent | d566c780e54010112d499707cd80a594144d1a89 (diff) |
Merge branch 'obsd-master'
-rw-r--r-- | tmux.c | 2 | ||||
-rw-r--r-- | tty.c | 15 |
2 files changed, 15 insertions, 2 deletions
@@ -139,6 +139,8 @@ make_label(const char *label) if (realpath(base, resolved) == NULL) strlcpy(resolved, base, sizeof resolved); xasprintf(&path, "%s/%s", resolved, label); + + free(base); return (path); fail: @@ -693,10 +693,11 @@ tty_draw_line(struct tty *tty, const struct window_pane *wp, { struct grid_cell gc, last; u_int i, j, sx, width; - int flags = (tty->flags & TTY_NOCURSOR); + int flags, cleared = 0; char buf[512]; size_t len; + flags = (tty->flags & TTY_NOCURSOR); tty->flags |= TTY_NOCURSOR; tty_update_mode(tty, tty->mode, s); @@ -709,6 +710,16 @@ tty_draw_line(struct tty *tty, const struct window_pane *wp, if (sx > tty->sx) sx = tty->sx; + if (screen_size_x(s) < tty->sx && + ox == 0 && + sx != screen_size_x(s) && + tty_term_has(tty->term, TTYC_EL1) && + !tty_fake_bce(tty, wp, 8)) { + tty_default_attributes(tty, wp, 8); + tty_cursor(tty, screen_size_x(s) - 1, oy + py); + tty_putcode(tty, TTYC_EL1); + cleared = 1; + } tty_cursor(tty, ox, oy + py); memcpy(&last, &grid_default_cell, sizeof last); @@ -763,7 +774,7 @@ tty_draw_line(struct tty *tty, const struct window_pane *wp, tty_putn(tty, buf, len, width); } - if (sx < tty->sx) { + if (!cleared && sx < tty->sx) { tty_default_attributes(tty, wp, 8); tty_cursor(tty, ox + sx, oy + py); |