Completely rewrite the reflow code to correctly handle double width

characters (previously they were not accounted for).
This commit is contained in:
nicm
2017-11-15 19:21:24 +00:00
parent aeda2e5808
commit 533a5719c5
4 changed files with 277 additions and 190 deletions

View File

@ -470,14 +470,5 @@ screen_select_cell(struct screen *s, struct grid_cell *dst,
static void
screen_reflow(struct screen *s, u_int new_x)
{
struct grid *old = s->grid;
u_int change;
s->grid = grid_create(old->sx, old->sy, old->hlimit);
change = grid_reflow(s->grid, old, new_x);
if (change < s->cy)
s->cy -= change;
else
s->cy = 0;
grid_reflow(s->grid, new_x, &s->cy);
}