1
0
mirror of https://git.tartarus.org/simon/putty.git synced 2025-06-30 19:12:48 -05:00

bidi.c: update the API.

The input length field is now a size_t rather than an int, on general
principles. The return value is now void (we weren't using the
previous return value at all). And we now require the client to have
previously allocated a BidiContext, which will allow allocated storage
to be reused between runs, saving a lot of churn on malloc.

(However, the current BidiContext doesn't contain anything
interesting. I could have moved the existing mallocs into it, but
there's no point, since I'm about to rewrite the whole thing anyway.)
This commit is contained in:
Simon Tatham
2021-10-10 14:40:51 +01:00
parent 53e84b8933
commit caa16deb1c
5 changed files with 31 additions and 5 deletions

View File

@ -2048,6 +2048,8 @@ Terminal *term_init(Conf *myconf, struct unicode_data *ucsdata, TermWin *win)
term->win_scrollbar_update_pending = false;
term->win_palette_pending = false;
term->bidi_ctx = bidi_new_context();
palette_reset(term, false);
return term;
@ -2107,6 +2109,8 @@ void term_free(Terminal *term)
sfree(term->window_title);
sfree(term->icon_title);
bidi_free_context(term->bidi_ctx);
sfree(term);
}
@ -5662,7 +5666,7 @@ static termchar *term_bidi_line(Terminal *term, struct termline *ldata,
}
if(!term->no_bidi)
do_bidi(term->wcFrom, nbc);
do_bidi(term->bidi_ctx, term->wcFrom, nbc);
if(!term->no_arabicshaping) {
do_shape(term->wcFrom, term->wcTo, nbc);