summaryrefslogtreecommitdiff
path: root/source/fitz/font.c
diff options
context:
space:
mode:
authorTor Andersson <tor.andersson@artifex.com>2018-09-05 15:27:22 +0200
committerTor Andersson <tor.andersson@artifex.com>2018-09-21 14:21:05 +0200
commit48b026e7500c5f7239e173d14d09b9e2e272e874 (patch)
treed6231e9b0c39d7a6eb361eff3762855ea05102d8 /source/fitz/font.c
parent60103f2af83eb04c1e74b32fa9d29c74bf01c118 (diff)
downloadmupdf-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.c19
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");