diff options
Diffstat (limited to 'grid.c')
-rw-r--r-- | grid.c | 10 |
1 files changed, 6 insertions, 4 deletions
@@ -76,7 +76,7 @@ grid_need_extended_cell(const struct grid_cell_entry *gce, return (1); if (gc->attr > 0xff) return (1); - if (gc->data.size != 1 || gc->data.width != 1) + if (gc->data.size > 1 || gc->data.width > 1) return (1); if ((gc->fg & COLOUR_FLAG_RGB) || (gc->bg & COLOUR_FLAG_RGB)) return (1); @@ -114,7 +114,7 @@ grid_extended_cell(struct grid_line *gl, struct grid_cell_entry *gce, gl->flags |= GRID_LINE_EXTENDED; gee = &gl->extddata[gce->offset]; - gee->data = utf8_map_big(&gc->data); + utf8_from_data(&gc->data, &gee->data); gee->attr = gc->attr; gee->flags = flags; gee->fg = gc->fg; @@ -496,7 +496,8 @@ grid_get_cell1(struct grid_line *gl, u_int px, struct grid_cell *gc) gc->fg = gee->fg; gc->bg = gee->bg; gc->us = gee->us; - utf8_get_big(gee->data, &gc->data); + log_debug("!!! %x", gc->flags); + utf8_to_data(gee->data, &gc->data); } return; } @@ -541,6 +542,7 @@ grid_set_cell(struct grid *gd, u_int px, u_int py, const struct grid_cell *gc) gl->cellused = px + 1; gce = &gl->celldata[px]; + if (gc->flags & GRID_FLAG_PADDING) log_debug("!!! padding %d\n", grid_need_extended_cell(gce, gc)); if (grid_need_extended_cell(gce, gc)) grid_extended_cell(gl, gce, gc); else @@ -570,7 +572,7 @@ grid_set_cells(struct grid *gd, u_int px, u_int py, const struct grid_cell *gc, gce = &gl->celldata[px + i]; if (grid_need_extended_cell(gce, gc)) { gee = grid_extended_cell(gl, gce, gc); - gee->data = utf8_set_big(s[i], 1); + gee->data = utf8_build_one(s[i], 1); } else grid_store_cell(gce, gc, s[i]); } |