Use a grid cell not a style for the pane style.

This commit is contained in:
nicm
2020-05-16 14:53:23 +00:00
parent 428137d876
commit 5bf96c2f2c
6 changed files with 72 additions and 83 deletions

23
grid.c
View File

@ -211,19 +211,28 @@ grid_check_y(struct grid *gd, const char *from, u_int py)
return (0);
}
/* Check if two styles are (visibly) the same. */
int
grid_cells_look_equal(const struct grid_cell *gc1, const struct grid_cell *gc2)
{
if (gc1->fg != gc2->fg || gc1->bg != gc2->bg)
return (0);
if (gc1->attr != gc2->attr || gc1->flags != gc2->flags)
return (0);
return (1);
}
/* Compare grid cells. Return 1 if equal, 0 if not. */
int
grid_cells_equal(const struct grid_cell *gca, const struct grid_cell *gcb)
grid_cells_equal(const struct grid_cell *gc1, const struct grid_cell *gc2)
{
if (gca->fg != gcb->fg || gca->bg != gcb->bg)
if (!grid_cells_look_equal(gc1, gc2))
return (0);
if (gca->attr != gcb->attr || gca->flags != gcb->flags)
if (gc1->data.width != gc2->data.width)
return (0);
if (gca->data.width != gcb->data.width)
if (gc1->data.size != gc2->data.size)
return (0);
if (gca->data.size != gcb->data.size)
return (0);
return (memcmp(gca->data.data, gcb->data.data, gca->data.size) == 0);
return (memcmp(gc1->data.data, gc2->data.data, gc1->data.size) == 0);
}
/* Free one line. */