break;
case 0:
add_cc(cline, term->curs.x - !term->wrapnext, c);
+ term->seen_disp_event = 1;
continue;
default:
continue;
if (i == our_curs_y && (term->curstype != cursor || updated_line)) {
ch[0] = (wchar_t) cursor_background.chr;
attr = cursor_background.attr | cursor;
+ ccount = 1;
if (cursor_background.cc_next) {
termchar *dd = ldata->chars + cursor_background.cc_next;
attr |= TATTR_COMBINING;
}
- do_cursor(ctx, our_curs_x, i, ch, 1, attr, ldata->lattr);
+ do_cursor(ctx, our_curs_x, i, ch, ccount, attr, ldata->lattr);
term->curstype = cursor;
}
active = 0;
do_text_internal(ctx, x, y, text, len, attr, lattr);
+ if (attr & TATTR_COMBINING)
+ len = 1;
+
if (attr & ATTR_WIDE) {
widefactor = 2;
} else {