X-Git-Url: https://asedeno.scripts.mit.edu/gitweb/?a=blobdiff_plain;f=terminal.c;h=54f86f8630a80cee77305d8bf99d755f34d43fb9;hb=bee5812a496b6d24b6ac5bb13e8aa4de1d2f61b7;hp=5de2e4befea1e435194b36abee982bdca0556481;hpb=44aca28fad487ed8aa44945ac3121ad3e8a0c7ca;p=PuTTY.git 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 {