unicode-combine: remove utf8proc dependency

We only used utf8proc to try to pre-compose a glyph from a base and
combining character.

We can do this ourselves by using a pre-compiled table of valid
pre-compositions. This table isn't _that_ big, and binary searching it
is fast.

That is, for a very small amount of code, and not too much extra RO
data, we can get rid of the utf8proc dependency.
This commit is contained in:
Daniel Eklöf 2020-05-02 17:29:00 +02:00
parent 8389c76549
commit d945b68b73
No known key found for this signature in database
GPG key ID: 5BBD4992C116573F
13 changed files with 34934 additions and 40 deletions

View file

@ -143,7 +143,7 @@ min_bufsize_for_extraction(const struct terminal *term)
const struct coord *start = &term->selection.start;
const struct coord *end = &term->selection.end;
const size_t chars_per_cell =
#if FOOT_UNICODE_COMBINING
#if FOOT_UNICODE_MAX_COMBINING_CHARS > 0
1 + ALEN(term->grid->cur_row->comb_chars[0].chars);
#else
1;
@ -241,7 +241,7 @@ extract_one(struct terminal *term, struct row *row, struct cell *cell,
assert(ctx->idx + 1 <= ctx->size);
ctx->buf[ctx->idx++] = cell->wc;
#if FOOT_UNICODE_COMBINING
#if FOOT_UNICODE_MAX_COMBINING_CHARS > 0
const struct combining_chars *comb_chars = &row->comb_chars[col];
assert(cell->wc != 0);