X-Git-Url: https://git.distorted.org.uk/u/mdw/putty/blobdiff_plain/9e7c372cf496832b64aa375949301f2f3d6fa33a..3394416cef1cce33c820cc00cbec2fc050bf189b:/terminal.c diff --git a/terminal.c b/terminal.c index 5de2e4be..54f86f86 100644 --- a/terminal.c +++ b/terminal.c @@ -4337,7 +4337,8 @@ static void term_out(Terminal *term) } term_print_flush(term); - logflush(term->logctx); + if (term->cfg.logflush) + logflush(term->logctx); } /* @@ -4371,7 +4372,7 @@ static int term_bidi_cache_hit(Terminal *term, int line, 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; @@ -4403,14 +4404,14 @@ static void term_bidi_cache_store(Terminal *term, int line, termchar *lbefore, 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)); @@ -4512,7 +4513,8 @@ static termchar *term_bidi_line(Terminal *term, struct termline *ldata, 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 {