=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/tmux/grid.c,v retrieving revision 1.106 retrieving revision 1.107 diff -u -r1.106 -r1.107 --- src/usr.bin/tmux/grid.c 2020/04/15 12:59:20 1.106 +++ src/usr.bin/tmux/grid.c 2020/05/16 14:53:23 1.107 @@ -1,4 +1,4 @@ -/* $OpenBSD: grid.c,v 1.106 2020/04/15 12:59:20 nicm Exp $ */ +/* $OpenBSD: grid.c,v 1.107 2020/05/16 14:53:23 nicm Exp $ */ /* * Copyright (c) 2008 Nicholas Marriott @@ -211,19 +211,28 @@ return (0); } -/* Compare grid cells. Return 1 if equal, 0 if not. */ +/* Check if two styles are (visibly) the same. */ int -grid_cells_equal(const struct grid_cell *gca, const struct grid_cell *gcb) +grid_cells_look_equal(const struct grid_cell *gc1, const struct grid_cell *gc2) { - if (gca->fg != gcb->fg || gca->bg != gcb->bg) + if (gc1->fg != gc2->fg || gc1->bg != gc2->bg) return (0); - if (gca->attr != gcb->attr || gca->flags != gcb->flags) + if (gc1->attr != gc2->attr || gc1->flags != gc2->flags) return (0); - if (gca->data.width != gcb->data.width) + return (1); +} + +/* Compare grid cells. Return 1 if equal, 0 if not. */ +int +grid_cells_equal(const struct grid_cell *gc1, const struct grid_cell *gc2) +{ + if (!grid_cells_look_equal(gc1, gc2)) return (0); - if (gca->data.size != gcb->data.size) + if (gc1->data.width != gc2->data.width) return (0); - return (memcmp(gca->data.data, gcb->data.data, gca->data.size) == 0); + if (gc1->data.size != gc2->data.size) + return (0); + return (memcmp(gc1->data.data, gc2->data.data, gc1->data.size) == 0); } /* Free one line. */