}
term_print_flush(term);
- logflush(term->logctx);
+ if (term->cfg.logflush)
+ logflush(term->logctx);
}
/*
static void term_bidi_cache_store(Terminal *term, int line, termchar *lbefore,
termchar *lafter, bidi_char *wcTo,
- int width)
+ int width, int size)
{
int i;
sfree(term->post_bidi_cache[line].backward);
term->pre_bidi_cache[line].width = width;
- term->pre_bidi_cache[line].chars = snewn(width, termchar);
+ term->pre_bidi_cache[line].chars = snewn(size, termchar);
term->post_bidi_cache[line].width = width;
- term->post_bidi_cache[line].chars = snewn(width, termchar);
+ term->post_bidi_cache[line].chars = snewn(size, termchar);
term->post_bidi_cache[line].forward = snewn(width, int);
term->post_bidi_cache[line].backward = snewn(width, int);
- memcpy(term->pre_bidi_cache[line].chars, lbefore, width * TSIZE);
- memcpy(term->post_bidi_cache[line].chars, lafter, width * TSIZE);
+ memcpy(term->pre_bidi_cache[line].chars, lbefore, size * TSIZE);
+ memcpy(term->post_bidi_cache[line].chars, lafter, size * TSIZE);
memset(term->post_bidi_cache[line].forward, 0, width * sizeof(int));
memset(term->post_bidi_cache[line].backward, 0, width * sizeof(int));
term->ltemp[it].chr = term->wcTo[it].wc;
}
term_bidi_cache_store(term, scr_y, ldata->chars,
- term->ltemp, term->wcTo, ldata->size);
+ term->ltemp, term->wcTo,
+ term->cols, ldata->size);
lchars = term->ltemp;
} else {