mirror of
https://github.com/tmate-io/tmate.git
synced 2026-01-23 02:24:06 +00:00
Rework reflow code so it does not do so much allocation which should be
faster with large histories.
This commit is contained in:
parent
180faf73af
commit
9b7e18f166
2 changed files with 129 additions and 37 deletions
13
screen.c
13
screen.c
|
|
@ -362,15 +362,10 @@ screen_check_selection(struct screen *s, u_int px, u_int py)
|
|||
|
||||
/* Reflow wrapped lines. */
|
||||
void
|
||||
screen_reflow(struct screen *s, u_int sx)
|
||||
screen_reflow(struct screen *s, u_int new_x)
|
||||
{
|
||||
struct grid *old, *new;
|
||||
struct grid *old = s->grid;
|
||||
|
||||
old = s->grid;
|
||||
new = grid_create(old->sx, old->sy, old->hlimit);
|
||||
|
||||
s->cy -= grid_reflow(new, old, sx);
|
||||
s->grid = new;
|
||||
|
||||
grid_destroy(old);
|
||||
s->grid = grid_create(old->sx, old->sy, old->hlimit);
|
||||
s->cy -= grid_reflow(s->grid, old, new_x);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue