mirror of
https://codeberg.org/dnkl/foot.git
synced 2026-02-05 04:06:08 -05:00
osc: store column of FTCS_COMMAND_{EXECUTED,FINISHED} in row struct
This commit is contained in:
parent
f8e875a7cd
commit
e9607de5ae
4 changed files with 16 additions and 2 deletions
4
grid.c
4
grid.c
|
|
@ -367,6 +367,8 @@ grid_row_alloc(int cols, bool initialize)
|
||||||
row->linebreak = false;
|
row->linebreak = false;
|
||||||
row->extra = NULL;
|
row->extra = NULL;
|
||||||
row->shell_integration.prompt_marker = false;
|
row->shell_integration.prompt_marker = false;
|
||||||
|
row->shell_integration.cmd_start = -1;
|
||||||
|
row->shell_integration.cmd_end = -1;
|
||||||
|
|
||||||
if (initialize) {
|
if (initialize) {
|
||||||
row->cells = xcalloc(cols, sizeof(row->cells[0]));
|
row->cells = xcalloc(cols, sizeof(row->cells[0]));
|
||||||
|
|
@ -588,6 +590,8 @@ _line_wrap(struct grid *old_grid, struct row **new_grid, struct row *row,
|
||||||
grid_row_reset_extra(new_row);
|
grid_row_reset_extra(new_row);
|
||||||
new_row->linebreak = false;
|
new_row->linebreak = false;
|
||||||
new_row->shell_integration.prompt_marker = false;
|
new_row->shell_integration.prompt_marker = false;
|
||||||
|
new_row->shell_integration.cmd_start = -1;
|
||||||
|
new_row->shell_integration.cmd_end = -1;
|
||||||
|
|
||||||
tll_foreach(old_grid->sixel_images, it) {
|
tll_foreach(old_grid->sixel_images, it) {
|
||||||
if (it->item.pos.row == *row_idx) {
|
if (it->item.pos.row == *row_idx) {
|
||||||
|
|
|
||||||
10
osc.c
10
osc.c
|
|
@ -901,11 +901,17 @@ osc_dispatch(struct terminal *term)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'C':
|
case 'C':
|
||||||
LOG_DBG("FTCS_COMMAND_EXECUTED");
|
LOG_DBG("FTCS_COMMAND_EXECUTED: %dx%d",
|
||||||
|
term->grid->cursor.point.row,
|
||||||
|
term->grid->cursor.point.col);
|
||||||
|
term->grid->cur_row->shell_integration.cmd_start = term->grid->cursor.point.col;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'D':
|
case 'D':
|
||||||
LOG_DBG("FTCS_COMMAND_FINISHED");
|
LOG_DBG("FTCS_COMMAND_FINISHED: %dx%d",
|
||||||
|
term->grid->cursor.point.row,
|
||||||
|
term->grid->cursor.point.col);
|
||||||
|
term->grid->cur_row->shell_integration.cmd_end = term->grid->cursor.point.col;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
|
||||||
|
|
@ -1826,6 +1826,8 @@ erase_line(struct terminal *term, struct row *row)
|
||||||
erase_cell_range(term, row, 0, term->cols - 1);
|
erase_cell_range(term, row, 0, term->cols - 1);
|
||||||
row->linebreak = false;
|
row->linebreak = false;
|
||||||
row->shell_integration.prompt_marker = false;
|
row->shell_integration.prompt_marker = false;
|
||||||
|
row->shell_integration.cmd_start = -1;
|
||||||
|
row->shell_integration.cmd_end = -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
|
|
||||||
|
|
@ -123,6 +123,8 @@ struct row {
|
||||||
|
|
||||||
struct {
|
struct {
|
||||||
bool prompt_marker;
|
bool prompt_marker;
|
||||||
|
int cmd_start; /* Column, -1 if unset */
|
||||||
|
int cmd_end; /* Column, -1 if unset */
|
||||||
} shell_integration;
|
} shell_integration;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue