diff options
author | Tor Andersson <tor.andersson@artifex.com> | 2018-09-05 15:27:22 +0200 |
---|---|---|
committer | Tor Andersson <tor.andersson@artifex.com> | 2018-09-21 14:21:05 +0200 |
commit | 48b026e7500c5f7239e173d14d09b9e2e272e874 (patch) | |
tree | d6231e9b0c39d7a6eb361eff3762855ea05102d8 /source/fitz/font.c | |
parent | 60103f2af83eb04c1e74b32fa9d29c74bf01c118 (diff) | |
download | mupdf-48b026e7500c5f7239e173d14d09b9e2e272e874.tar.xz |
Regularize language and script names.
Drop the unused 'serif' argument to the CJK lookup functions.
Use the BCP 47 names for CJK scripts and languages:
zh-Hant for traditional Chinese,
zh-Hans for simplified Chinese,
ja for Japanese,
ko for Korean.
The lookup function also allows commonly used language+country codes:
zh-TW and zh-HK for traditional Chinese,
zh-CN for simplified Chinese.
Diffstat (limited to 'source/fitz/font.c')
-rw-r--r-- | source/fitz/font.c | 19 |
1 files changed, 9 insertions, 10 deletions
diff --git a/source/fitz/font.c b/source/fitz/font.c index f9609aec..733d91da 100644 --- a/source/fitz/font.c +++ b/source/fitz/font.c @@ -230,7 +230,7 @@ struct fz_font_context_s /* Cached fallback fonts */ fz_font *base14[14]; - fz_font *cjk[8]; + fz_font *cjk[4]; struct { fz_font *serif, *sans; } fallback[256]; fz_font *symbol1, *symbol2; fz_font *emoji; @@ -416,7 +416,7 @@ fz_font *fz_load_fallback_font(fz_context *ctx, int script, int language, int se *fontp = fz_load_system_fallback_font(ctx, script, language, serif, bold, italic); if (!*fontp) { - data = fz_lookup_noto_font(ctx, script, language, serif, &size, &subfont); + data = fz_lookup_noto_font(ctx, script, language, &size, &subfont); if (data) *fontp = fz_new_font_from_memory(ctx, NULL, data, size, subfont, 0); } @@ -697,20 +697,19 @@ fz_new_base14_font(fz_context *ctx, const char *name) } fz_font * -fz_new_cjk_font(fz_context *ctx, int ordering, int serif) +fz_new_cjk_font(fz_context *ctx, int ordering) { const unsigned char *data; int size, index; - int x = (ordering * 2) + !!serif; - if (x >= 0 && x < nelem(ctx->font->cjk)) + if (ordering >= 0 && ordering < nelem(ctx->font->cjk)) { - if (ctx->font->cjk[x]) - return fz_keep_font(ctx, ctx->font->cjk[x]); - data = fz_lookup_cjk_font(ctx, ordering, serif, &size, &index); + if (ctx->font->cjk[ordering]) + return fz_keep_font(ctx, ctx->font->cjk[ordering]); + data = fz_lookup_cjk_font(ctx, ordering, &size, &index); if (data) { - ctx->font->cjk[x] = fz_new_font_from_memory(ctx, NULL, data, size, index, 0); - return fz_keep_font(ctx, ctx->font->cjk[x]); + ctx->font->cjk[ordering] = fz_new_font_from_memory(ctx, NULL, data, size, index, 0); + return fz_keep_font(ctx, ctx->font->cjk[ordering]); } } fz_throw(ctx, FZ_ERROR_GENERIC, "cannot find builtin CJK font"); |