Merge branch 'master' into floating_panes

This commit is contained in:
Nicholas Marriott
2026-05-22 12:39:09 +01:00
3 changed files with 48 additions and 36 deletions

33
tty.c
View File

@@ -1708,7 +1708,7 @@ tty_cmd_insertcharacter(struct tty *tty, const struct tty_ctx *ctx)
tty_cursor_pane(tty, ctx, ctx->ocx, ctx->ocy);
tty_emulate_repeat(tty, TTYC_ICH, TTYC_ICH1, ctx->num);
tty_emulate_repeat(tty, TTYC_ICH, TTYC_ICH1, ctx->n);
}
void
@@ -1731,7 +1731,7 @@ tty_cmd_deletecharacter(struct tty *tty, const struct tty_ctx *ctx)
tty_cursor_pane(tty, ctx, ctx->ocx, ctx->ocy);
tty_emulate_repeat(tty, TTYC_DCH, TTYC_DCH1, ctx->num);
tty_emulate_repeat(tty, TTYC_DCH, TTYC_DCH1, ctx->n);
}
void
@@ -1740,7 +1740,7 @@ tty_cmd_clearcharacter(struct tty *tty, const struct tty_ctx *ctx)
tty_default_attributes(tty, &ctx->defaults, ctx->palette, ctx->bg,
ctx->s->hyperlinks);
tty_clear_pane_line(tty, ctx, ctx->ocy, ctx->ocx, ctx->num, ctx->bg);
tty_clear_pane_line(tty, ctx, ctx->ocy, ctx->ocx, ctx->n, ctx->bg);
}
void
@@ -1767,7 +1767,7 @@ tty_cmd_insertline(struct tty *tty, const struct tty_ctx *ctx)
tty_margin_off(tty);
tty_cursor_pane(tty, ctx, ctx->ocx, ctx->ocy);
tty_emulate_repeat(tty, TTYC_IL, TTYC_IL1, ctx->num);
tty_emulate_repeat(tty, TTYC_IL, TTYC_IL1, ctx->n);
tty->cx = tty->cy = UINT_MAX;
}
@@ -1795,7 +1795,7 @@ tty_cmd_deleteline(struct tty *tty, const struct tty_ctx *ctx)
tty_margin_off(tty);
tty_cursor_pane(tty, ctx, ctx->ocx, ctx->ocy);
tty_emulate_repeat(tty, TTYC_DL, TTYC_DL1, ctx->num);
tty_emulate_repeat(tty, TTYC_DL, TTYC_DL1, ctx->n);
tty->cx = tty->cy = UINT_MAX;
}
@@ -1928,19 +1928,19 @@ tty_cmd_scrollup(struct tty *tty, const struct tty_ctx *ctx)
tty_region_pane(tty, ctx, ctx->orupper, ctx->orlower);
tty_margin_pane(tty, ctx);
if (ctx->num == 1 || !tty_term_has(tty->term, TTYC_INDN)) {
if (ctx->n == 1 || !tty_term_has(tty->term, TTYC_INDN)) {
if (!tty_use_margin(tty))
tty_cursor(tty, 0, tty->rlower);
else
tty_cursor(tty, tty->rright, tty->rlower);
for (i = 0; i < ctx->num; i++)
for (i = 0; i < ctx->n; i++)
tty_putc(tty, '\n');
} else {
if (tty->cy == UINT_MAX)
tty_cursor(tty, 0, 0);
else
tty_cursor(tty, 0, tty->cy);
tty_putcode_i(tty, TTYC_INDN, ctx->num);
tty_putcode_i(tty, TTYC_INDN, ctx->n);
}
}
@@ -1971,9 +1971,9 @@ tty_cmd_scrolldown(struct tty *tty, const struct tty_ctx *ctx)
tty_cursor_pane(tty, ctx, ctx->ocx, ctx->orupper);
if (tty_term_has(tty->term, TTYC_RIN))
tty_putcode_i(tty, TTYC_RIN, ctx->num);
tty_putcode_i(tty, TTYC_RIN, ctx->n);
else {
for (i = 0; i < ctx->num; i++)
for (i = 0; i < ctx->n; i++)
tty_putcode(tty, TTYC_RI);
}
}
@@ -2124,14 +2124,15 @@ tty_cmd_cells(struct tty *tty, const struct tty_ctx *ctx)
struct visible_ranges *r;
struct visible_range *ri;
u_int i, px, py, cx;
char *cp = ctx->ptr;
const char *cp = ctx->data.data;
size_t n = ctx->data.size;
if (!tty_is_visible(tty, ctx, ctx->ocx, ctx->ocy, ctx->num, 1))
if (!tty_is_visible(tty, ctx, ctx->ocx, ctx->ocy, n, 1))
return;
if ((ctx->flags & TTY_CTX_WINDOW_BIGGER) &&
(ctx->xoff + ctx->ocx < ctx->wox ||
ctx->xoff + ctx->ocx + ctx->num > ctx->wox + ctx->wsx)) {
ctx->xoff + ctx->ocx + n > ctx->wox + ctx->wsx)) {
if ((~ctx->flags & TTY_CTX_WRAPPED) ||
!tty_full_width(tty, ctx) ||
(tty->term->flags & TERM_NOAM) ||
@@ -2154,7 +2155,7 @@ tty_cmd_cells(struct tty *tty, const struct tty_ctx *ctx)
px = ctx->xoff + ctx->ocx - ctx->wox;
py = ctx->yoff + ctx->ocy - ctx->woy;
r = tty_check_overlay_range(tty, px, py, ctx->num);
r = tty_check_overlay_range(tty, px, py, n);
for (i = 0; i < r->used; i++) {
ri = &r->ranges[i];
if (ri->nx != 0) {
@@ -2168,7 +2169,7 @@ tty_cmd_cells(struct tty *tty, const struct tty_ctx *ctx)
void
tty_cmd_setselection(struct tty *tty, const struct tty_ctx *ctx)
{
tty_set_selection(tty, ctx->ptr2, ctx->ptr, ctx->num);
tty_set_selection(tty, ctx->sel.clip, ctx->sel.data, ctx->sel.size);
}
void
@@ -2197,7 +2198,7 @@ void
tty_cmd_rawstring(struct tty *tty, const struct tty_ctx *ctx)
{
tty->flags |= TTY_NOBLOCK;
tty_add(tty, ctx->ptr, ctx->num);
tty_add(tty, ctx->data.data, ctx->data.size);
tty_invalidate(tty);
}