diff options
author | Thomas Adam <thomas@xteddy.org> | 2017-02-07 16:01:13 +0000 |
---|---|---|
committer | Thomas Adam <thomas@xteddy.org> | 2017-02-07 16:01:13 +0000 |
commit | 97fd2910795f8b63b2e32eb27fed8e6a8dac5086 (patch) | |
tree | bc29bc1aba8bf6a71e0cf65745ffc77d544c2c1c /tty.c | |
parent | 8872a0da8e9588b0ec5eac1a1cc3753037ed68e1 (diff) | |
parent | 9491a5c1cfad69e49d3dcbf7df77768ab6cf7a87 (diff) | |
download | rtmux-97fd2910795f8b63b2e32eb27fed8e6a8dac5086.tar.gz rtmux-97fd2910795f8b63b2e32eb27fed8e6a8dac5086.tar.bz2 rtmux-97fd2910795f8b63b2e32eb27fed8e6a8dac5086.zip |
Merge branch 'obsd-master'
Diffstat (limited to 'tty.c')
-rw-r--r-- | tty.c | 53 |
1 files changed, 6 insertions, 47 deletions
@@ -64,8 +64,6 @@ static int tty_large_region(struct tty *, const struct tty_ctx *); static int tty_fake_bce(const struct tty *, const struct window_pane *, u_int); static void tty_redraw_region(struct tty *, const struct tty_ctx *); -static void tty_clear_area(struct tty *, const struct tty_ctx *ctx, u_int, - u_int, u_int, u_int); static void tty_emulate_repeat(struct tty *, enum tty_code_code, enum tty_code_code, u_int); static void tty_repeat_space(struct tty *, u_int); @@ -687,17 +685,6 @@ tty_redraw_region(struct tty *tty, const struct tty_ctx *ctx) } } -static void -tty_clear_area(struct tty *tty, const struct tty_ctx *ctx, u_int sx, u_int sy, - u_int ex, u_int ey) -{ - char s[64]; - - snprintf (s, sizeof s, "\033[32;%u;%u;%u;%u$x", ctx->yoff + sy + 1, - ctx->xoff + sx + 1, ctx->yoff + ey + 1, ctx->xoff + ex + 1); - tty_puts(tty, s); -} - void tty_draw_pane(struct tty *tty, const struct window_pane *wp, u_int py, u_int ox, u_int oy) @@ -921,9 +908,6 @@ tty_cmd_clearline(struct tty *tty, const struct tty_ctx *ctx) !tty_fake_bce(tty, wp, ctx->bg) && tty_term_has(tty->term, TTYC_EL)) tty_putcode(tty, TTYC_EL); - else if (tty->term_type == TTY_VT420 && - !tty_fake_bce(tty, wp, ctx->bg)) - tty_clear_area(tty, ctx, 0, ctx->ocy, sx - 1, ctx->ocy); else tty_repeat_space(tty, sx); } @@ -943,9 +927,6 @@ tty_cmd_clearendofline(struct tty *tty, const struct tty_ctx *ctx) tty_term_has(tty->term, TTYC_EL) && !tty_fake_bce(tty, wp, ctx->bg)) tty_putcode(tty, TTYC_EL); - else if (tty->term_type == TTY_VT420 && - !tty_fake_bce(tty, wp, ctx->bg)) - tty_clear_area(tty, ctx, ctx->ocx, ctx->ocy, sx - 1, ctx->ocy); else tty_repeat_space(tty, sx - ctx->ocx); } @@ -957,18 +938,14 @@ tty_cmd_clearstartofline(struct tty *tty, const struct tty_ctx *ctx) tty_default_attributes(tty, wp, ctx->bg); + tty_cursor_pane(tty, ctx, 0, ctx->ocy); + if (ctx->xoff == 0 && tty_term_has(tty->term, TTYC_EL1) && - !tty_fake_bce(tty, ctx->wp, ctx->bg)) { - tty_cursor_pane(tty, ctx, ctx->ocx, ctx->ocy); + !tty_fake_bce(tty, ctx->wp, ctx->bg)) tty_putcode(tty, TTYC_EL1); - } else if (tty->term_type == TTY_VT420 && - !tty_fake_bce(tty, wp, ctx->bg)) - tty_clear_area(tty, ctx, 0, ctx->ocy, ctx->ocx, ctx->ocy); - else { - tty_cursor_pane(tty, ctx, 0, ctx->ocy); + else tty_repeat_space(tty, ctx->ocx + 1); - } } void @@ -1059,18 +1036,6 @@ tty_cmd_clearendofscreen(struct tty *tty, const struct tty_ctx *ctx) tty_term_has(tty->term, TTYC_ED)) { tty_cursor_pane(tty, ctx, ctx->ocx, ctx->ocy); tty_putcode(tty, TTYC_ED); - } else if (tty->term_type == TTY_VT420 && - !tty_fake_bce(tty, wp, ctx->bg)) { - tty_cursor_pane(tty, ctx, ctx->ocx, ctx->ocy); - if (tty_pane_full_width(tty, ctx) && - tty_term_has(tty->term, TTYC_EL)) - tty_putcode(tty, TTYC_EL); - else - tty_repeat_space(tty, sx - ctx->ocx); - if (ctx->ocy != sy - 1) { - tty_clear_area(tty, ctx, 0, ctx->ocy + 1, sx - 1, - sy - 1); - } } else if (tty_pane_full_width(tty, ctx) && tty_term_has(tty->term, TTYC_EL) && !tty_fake_bce(tty, wp, ctx->bg)) { @@ -1109,10 +1074,7 @@ tty_cmd_clearstartofscreen(struct tty *tty, const struct tty_ctx *ctx) tty_region_pane(tty, ctx, 0, sy - 1); tty_margin_off(tty); - if (tty->term_type == TTY_VT420 && - !tty_fake_bce(tty, wp, ctx->bg)) - tty_clear_area(tty, ctx, 0, 0, sx - 1, ctx->ocy - 1); - else if (tty_pane_full_width(tty, ctx) && + if (tty_pane_full_width(tty, ctx) && tty_term_has(tty->term, TTYC_EL) && !tty_fake_bce(tty, wp, ctx->bg)) { tty_cursor_pane(tty, ctx, 0, 0); @@ -1150,10 +1112,7 @@ tty_cmd_clearscreen(struct tty *tty, const struct tty_ctx *ctx) tty_term_has(tty->term, TTYC_ED)) { tty_cursor_pane(tty, ctx, 0, 0); tty_putcode(tty, TTYC_ED); - } else if (tty->term_type == TTY_VT420 && - !tty_fake_bce(tty, wp, ctx->bg)) - tty_clear_area(tty, ctx, 0, 0, sx - 1, sy - 1); - else if (tty_pane_full_width(tty, ctx) && + } else if (tty_pane_full_width(tty, ctx) && tty_term_has(tty->term, TTYC_EL) && !tty_fake_bce(tty, wp, ctx->bg)) { tty_cursor_pane(tty, ctx, 0, 0); |