X-Git-Url: https://asedeno.scripts.mit.edu/gitweb/?a=blobdiff_plain;f=terminal.c;h=c6dee33fa1cd72e7d83c421ca44fee1daf59da76;hb=4c31b113a6deb4894b640e4989ae9ef1f8063c0e;hp=5de2e4befea1e435194b36abee982bdca0556481;hpb=44aca28fad487ed8aa44945ac3121ad3e8a0c7ca;p=PuTTY.git diff --git a/terminal.c b/terminal.c index 5de2e4be..c6dee33f 100644 --- a/terminal.c +++ b/terminal.c @@ -4371,7 +4371,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 +4403,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 +4512,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 {