=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/tmux/tty.c,v retrieving revision 1.298 retrieving revision 1.299 diff -u -r1.298 -r1.299 --- src/usr.bin/tmux/tty.c 2018/01/12 16:41:00 1.298 +++ src/usr.bin/tmux/tty.c 2018/01/16 17:03:18 1.299 @@ -1,4 +1,4 @@ -/* $OpenBSD: tty.c,v 1.298 2018/01/12 16:41:00 nicm Exp $ */ +/* $OpenBSD: tty.c,v 1.299 2018/01/16 17:03:18 nicm Exp $ */ /* * Copyright (c) 2007 Nicholas Marriott @@ -977,17 +977,23 @@ } if (gcp->flags & GRID_FLAG_SELECTED) - screen_select_cell(s, &last, &gc); + screen_select_cell(s, &last, gcp); else - memcpy(&last, &gc, sizeof last); - if (ux + gcp->data.width > screen_size_x(s)) + memcpy(&last, gcp, sizeof last); + if (ux + gcp->data.width > screen_size_x(s)) { + tty_attributes(tty, &last, wp); for (j = 0; j < gcp->data.width; j++) { if (ux + j > screen_size_x(s)) break; tty_putc(tty, ' '); ux++; } - else { + } else if (gcp->attr & GRID_ATTR_CHARSET) { + tty_attributes(tty, &last, wp); + for (j = 0; j < gcp->data.size; j++) + tty_putc(tty, gcp->data.data[j]); + ux += gc.data.width; + } else { memcpy(buf + len, gcp->data.data, gcp->data.size); len += gcp->data.size; width += gcp->data.width;