summaryrefslogtreecommitdiff
path: root/platform/java/mupdf_native.c
diff options
context:
space:
mode:
authorTor Andersson <tor.andersson@artifex.com>2018-04-17 17:22:40 +0200
committerTor Andersson <tor.andersson@artifex.com>2018-04-25 16:22:51 +0200
commit85ec0410ca1eb10e0d592027e990f7e569cd4d3f (patch)
tree17f7986264900d90225764c8467df868bd8caedf /platform/java/mupdf_native.c
parentd69dcb5afd27a7cbce35ac4dadec9c6145799a15 (diff)
downloadmupdf-85ec0410ca1eb10e0d592027e990f7e569cd4d3f.tar.xz
Update Noto fonts.
Import Source Han Serif 1.001. Use serif fonts in preference for sans.
Diffstat (limited to 'platform/java/mupdf_native.c')
-rw-r--r--platform/java/mupdf_native.c278
1 files changed, 174 insertions, 104 deletions
diff --git a/platform/java/mupdf_native.c b/platform/java/mupdf_native.c
index 104f4eb2..b47192bc 100644
--- a/platform/java/mupdf_native.c
+++ b/platform/java/mupdf_native.c
@@ -719,11 +719,20 @@ static void lose_fids(JNIEnv *env)
#ifdef HAVE_ANDROID
-static fz_font *load_noto(fz_context *ctx, const char *filename, int idx)
+static fz_font *load_noto(fz_context *ctx, const char *a, const char *b, const char *c, int idx)
{
- fz_font *font;
+ char buf[500];
+ fz_font *font = NULL;
fz_try(ctx)
- font = fz_new_font_from_file(ctx, NULL, filename, idx, 0);
+ {
+ fz_snprintf(buf, sizeof buf, "/system/fonts/%s%s%s.ttf", a, b, c);
+ if (!fz_file_exists(ctx, buf))
+ fz_snprintf(buf, sizeof buf, "/system/fonts/%s%s%s.otf", a, b, c);
+ if (!fz_file_exists(ctx, buf))
+ fz_snprintf(buf, sizeof buf, "/system/fonts/%s%s%s.ttc", a, b, c);
+ if (fz_file_exists(ctx, buf))
+ font = fz_new_font_from_file(ctx, NULL, buf, idx, 0);
+ }
fz_catch(ctx)
return NULL;
return font;
@@ -731,25 +740,36 @@ static fz_font *load_noto(fz_context *ctx, const char *filename, int idx)
static fz_font *load_noto_cjk(fz_context *ctx, int lang)
{
- fz_font *font = load_noto(ctx, "/system/fonts/NotoSansCJK-Regular.ttc", lang);
- if (!font)
- font = load_noto(ctx, "/system/fonts/DroidSansFallback.ttf", 0);
+ fz_font *font = load_noto(ctx, "NotoSerif", "CJK", "-Regular", lang);
+ if (!font) font = load_noto(ctx, "NotoSans", "CJK", "-Regular", lang);
+ if (!font) font = load_noto(ctx, "DroidSans", "Fallback", "", 0);
return font;
}
-static fz_font *load_noto3(fz_context *ctx, const char *a, const char *b, const char *c)
+static fz_font *load_noto_arabic(fz_context *ctx)
{
- fz_font *font = load_noto(ctx, a, 0);
- if (!font && b) font = load_noto(ctx, b, 0);
- if (!font && c) font = load_noto(ctx, c, 0);
+ fz_font *font = load_noto(ctx, "Noto", "Naskh", "-Regular", 0);
+ if (!font) font = load_noto(ctx, "Noto", "NaskhArabic", "-Regular", 0);
+ if (!font) font = load_noto(ctx, "Droid", "Naskh", "-Regular", 0);
+ if (!font) font = load_noto(ctx, "NotoSerif", "Arabic", "-Regular", 0);
+ if (!font) font = load_noto(ctx, "NotoSans", "Arabic", "-Regular", 0);
+ if (!font) font = load_noto(ctx, "DroidSans", "Arabic", "-Regular", 0);
+ return font;
+}
+
+static fz_font *load_noto_try(fz_context *ctx, const char *stem)
+{
+ fz_font *font = load_noto(ctx, buf, "NotoSerif", stem, "-Regular", 0);
+ if (!font) font = load_noto(ctx, buf, "NotoSans", stem, "-Regular", 0);
+ if (!font) font = load_noto(ctx, buf, "DroidSans", stem, "-Regular", 0);
return font;
}
enum { JP, KR, SC, TC };
-#define NOTO3(NAME1, NAME2, NAME3) load_noto3(ctx, "/system/fonts/" NAME1 "-Regular.ttf", "/system/fonts/" NAME2 "-Regular.ttf", "/system/fonts/" NAME3 "-Regular.ttf")
-#define NOTO2(NAME1, NAME2) load_noto3(ctx, "/system/fonts/" NAME1 "-Regular.ttf", "/system/fonts/" NAME2 "-Regular.ttf", NULL)
-#define NOTO(NAME) load_noto3(ctx, "/system/fonts/" NAME "-Regular.ttf", NULL, NULL)
+#define NOTO3(NAME1, NAME2, NAME3) load_noto3(ctx, NAME1 "-Regular", NAME2 "-Regular", NAME3 "-Regular")
+#define NOTO2(NAME1, NAME2) load_noto3(ctx, NAME1 "-Regular", NAME2 "-Regular", NULL)
+#define NOTO(NAME) load_noto_try(ctx, NAME)
fz_font *load_droid_fallback_font(fz_context *ctx, int script, int language, int serif, int bold, int italic)
{
@@ -764,7 +784,7 @@ fz_font *load_droid_fallback_font(fz_context *ctx, int script, int language, int
case UCDN_SCRIPT_HANGUL: return load_noto_cjk(ctx, KR);
case UCDN_SCRIPT_HIRAGANA: return load_noto_cjk(ctx, JP);
case UCDN_SCRIPT_KATAKANA: return load_noto_cjk(ctx, JP);
- case UCDN_SCRIPT_BOPOMOFO: return load_noto_cjk(ctx, SC);
+ case UCDN_SCRIPT_BOPOMOFO: return load_noto_cjk(ctx, TC);
case UCDN_SCRIPT_HAN:
switch (language) {
case FZ_LANG_ja: return load_noto_cjk(ctx, JP);
@@ -774,96 +794,146 @@ fz_font *load_droid_fallback_font(fz_context *ctx, int script, int language, int
case FZ_LANG_zh_Hant: return load_noto_cjk(ctx, TC);
}
- case UCDN_SCRIPT_LATIN: return NOTO2("NotoSans", "DroidSans");
- case UCDN_SCRIPT_GREEK: return NOTO2("NotoSans", "DroidSans");
- case UCDN_SCRIPT_CYRILLIC: return NOTO2("NotoSans", "DroidSans");
- case UCDN_SCRIPT_ARABIC: return NOTO3("NotoNaskh", "NotoNaskhArabic", "DroidNaskh");
-
- case UCDN_SCRIPT_ARMENIAN: return NOTO2("NotoSansArmenian", "DroidSansArmenian");
- case UCDN_SCRIPT_BALINESE: return NOTO("NotoSansBalinese");
- case UCDN_SCRIPT_BAMUM: return NOTO("NotoSansBamum");
- case UCDN_SCRIPT_BATAK: return NOTO("NotoSansBatak");
- case UCDN_SCRIPT_BENGALI: return NOTO("NotoSansBengali");
- case UCDN_SCRIPT_CANADIAN_ABORIGINAL: return NOTO("NotoSansCanadianAboriginal");
- case UCDN_SCRIPT_CHAM: return NOTO("NotoSansCham");
- case UCDN_SCRIPT_CHEROKEE: return NOTO("NotoSansCherokee");
- case UCDN_SCRIPT_DEVANAGARI: return NOTO2("NotoSansDevanagari", "DroidSansDevanagari");
- case UCDN_SCRIPT_ETHIOPIC: return NOTO2("NotoSansEthiopic", "DroidSansEthiopic");
- case UCDN_SCRIPT_GEORGIAN: return NOTO2("NotoSansGeorgian", "DroidSansGeorgian");
- case UCDN_SCRIPT_GUJARATI: return NOTO("NotoSansGujarati");
- case UCDN_SCRIPT_GURMUKHI: return NOTO("NotoSansGurmukhi");
- case UCDN_SCRIPT_HEBREW: return NOTO2("NotoSansHebrew", "DroidSansHebrew");
- case UCDN_SCRIPT_JAVANESE: return NOTO("NotoSansJavanese");
- case UCDN_SCRIPT_KANNADA: return NOTO("NotoSansKannada");
- case UCDN_SCRIPT_KAYAH_LI: return NOTO("NotoSansKayahLi");
- case UCDN_SCRIPT_KHMER: return NOTO("NotoSansKhmer");
- case UCDN_SCRIPT_LAO: return NOTO("NotoSansLao");
- case UCDN_SCRIPT_LEPCHA: return NOTO("NotoSansLepcha");
- case UCDN_SCRIPT_LIMBU: return NOTO("NotoSansLimbu");
- case UCDN_SCRIPT_LISU: return NOTO("NotoSansLisu");
- case UCDN_SCRIPT_MALAYALAM: return NOTO("NotoSansMalayalam");
- case UCDN_SCRIPT_MANDAIC: return NOTO("NotoSansMandaic");
- case UCDN_SCRIPT_MEETEI_MAYEK: return NOTO("NotoSansMeeteiMayek");
- case UCDN_SCRIPT_MONGOLIAN: return NOTO("NotoSansMongolian");
- case UCDN_SCRIPT_MYANMAR: return NOTO("NotoSansMyanmar");
- case UCDN_SCRIPT_NEW_TAI_LUE: return NOTO("NotoSansNewTaiLue");
- case UCDN_SCRIPT_NKO: return NOTO("NotoSansNKo");
- case UCDN_SCRIPT_OL_CHIKI: return NOTO("NotoSansOlChiki");
- case UCDN_SCRIPT_ORIYA: return NOTO("NotoSansOriya");
- case UCDN_SCRIPT_SAURASHTRA: return NOTO("NotoSansSaurashtra");
- case UCDN_SCRIPT_SINHALA: return NOTO("NotoSansSinhala");
- case UCDN_SCRIPT_SUNDANESE: return NOTO("NotoSansSundanese");
- case UCDN_SCRIPT_SYLOTI_NAGRI: return NOTO("NotoSansSylotiNagri");
- case UCDN_SCRIPT_SYRIAC: return NOTO("NotoSansSyriacEastern");
- case UCDN_SCRIPT_TAI_LE: return NOTO("NotoSansTaiLe");
- case UCDN_SCRIPT_TAI_THAM: return NOTO("NotoSansTaiTham");
- case UCDN_SCRIPT_TAI_VIET: return NOTO("NotoSansTaiViet");
- case UCDN_SCRIPT_TAMIL: return NOTO2("NotoSansTamil", "DroidSansTamil");
- case UCDN_SCRIPT_TELUGU: return NOTO("NotoSansTelugu");
- case UCDN_SCRIPT_THAANA: return NOTO("NotoSansThaana");
- case UCDN_SCRIPT_THAI: return NOTO2("NotoSansThai", "DroidSansThai");
- case UCDN_SCRIPT_TIBETAN: return NOTO("NotoSansTibetan");
- case UCDN_SCRIPT_TIFINAGH: return NOTO("NotoSansTifinagh");
- case UCDN_SCRIPT_VAI: return NOTO("NotoSansVai");
- case UCDN_SCRIPT_YI: return NOTO("NotoSansYi");
-
- /* Historic */
- case UCDN_SCRIPT_AVESTAN: return NOTO("NotoSansAvestan");
- case UCDN_SCRIPT_BRAHMI: return NOTO("NotoSansBrahmi");
- case UCDN_SCRIPT_BUGINESE: return NOTO("NotoSansBuginese");
- case UCDN_SCRIPT_BUHID: return NOTO("NotoSansBuhid");
- case UCDN_SCRIPT_CARIAN: return NOTO("NotoSansCarian");
- case UCDN_SCRIPT_COPTIC: return NOTO("NotoSansCoptic");
- case UCDN_SCRIPT_CUNEIFORM: return NOTO("NotoSansCuneiform");
- case UCDN_SCRIPT_CYPRIOT: return NOTO("NotoSansCypriot");
- case UCDN_SCRIPT_DESERET: return NOTO("NotoSansDeseret");
- case UCDN_SCRIPT_EGYPTIAN_HIEROGLYPHS: return NOTO("NotoSansEgyptianHieroglyphs");
- case UCDN_SCRIPT_GLAGOLITIC: return NOTO("NotoSansGlagolitic");
- case UCDN_SCRIPT_GOTHIC: return NOTO("NotoSansGothic");
- case UCDN_SCRIPT_HANUNOO: return NOTO("NotoSansHanunoo");
- case UCDN_SCRIPT_IMPERIAL_ARAMAIC: return NOTO("NotoSansImperialAramaic");
- case UCDN_SCRIPT_INSCRIPTIONAL_PAHLAVI: return NOTO("NotoSansInscriptionalPahlavi");
- case UCDN_SCRIPT_INSCRIPTIONAL_PARTHIAN: return NOTO("NotoSansInscriptionalParthian");
- case UCDN_SCRIPT_KAITHI: return NOTO("NotoSansKaithi");
- case UCDN_SCRIPT_KHAROSHTHI: return NOTO("NotoSansKharoshthi");
- case UCDN_SCRIPT_LINEAR_B: return NOTO("NotoSansLinearB");
- case UCDN_SCRIPT_LYCIAN: return NOTO("NotoSansLycian");
- case UCDN_SCRIPT_LYDIAN: return NOTO("NotoSansLydian");
- case UCDN_SCRIPT_OGHAM: return NOTO("NotoSansOgham");
- case UCDN_SCRIPT_OLD_ITALIC: return NOTO("NotoSansOldItalic");
- case UCDN_SCRIPT_OLD_PERSIAN: return NOTO("NotoSansOldPersian");
- case UCDN_SCRIPT_OLD_SOUTH_ARABIAN: return NOTO("NotoSansOldSouthArabian");
- case UCDN_SCRIPT_OLD_TURKIC: return NOTO("NotoSansOldTurkic");
- case UCDN_SCRIPT_OSMANYA: return NOTO("NotoSansOsmanya");
- case UCDN_SCRIPT_PHAGS_PA: return NOTO("NotoSansPhagsPa");
- case UCDN_SCRIPT_PHOENICIAN: return NOTO("NotoSansPhoenician");
- case UCDN_SCRIPT_REJANG: return NOTO("NotoSansRejang");
- case UCDN_SCRIPT_RUNIC: return NOTO("NotoSansRunic");
- case UCDN_SCRIPT_SAMARITAN: return NOTO("NotoSansSamaritan");
- case UCDN_SCRIPT_SHAVIAN: return NOTO("NotoSansShavian");
- case UCDN_SCRIPT_TAGALOG: return NOTO("NotoSansTagalog");
- case UCDN_SCRIPT_TAGBANWA: return NOTO("NotoSansTagbanwa");
- case UCDN_SCRIPT_UGARITIC: return NOTO("NotoSansUgaritic");
+ case UCDN_SCRIPT_LATIN:
+ case UCDN_SCRIPT_GREEK:
+ case UCDN_SCRIPT_CYRILLIC:
+ return load_noto_try(ctx, "");
+ case UCDN_SCRIPT_ARABIC:
+ return load_noto_arabic(ctx);
+ case UCDN_SCRIPT_MEROITIC_CURSIVE:
+ case UCDN_SCRIPT_MEROITIC_HIEROGLYPHS:
+ return load_noto_try(ctx, "Meroitic");
+ case UCDN_SCRIPT_NKO:
+ return load_noto_try(ctx, "NKo");
+ case UCDN_SCRIPT_SYRIAC:
+ return load_noto_try(ctx, "SyriacWestern");
+
+ case UCDN_SCRIPT_ARMENIAN: return load_noto_try(ctx, "Armenian");
+ case UCDN_SCRIPT_HEBREW: return load_noto_try(ctx, "Hebrew");
+ case UCDN_SCRIPT_THAANA: return load_noto_try(ctx, "Thaana");
+ case UCDN_SCRIPT_DEVANAGARI: return load_noto_try(ctx, "Devanagari");
+ case UCDN_SCRIPT_BENGALI: return load_noto_try(ctx, "Bengali");
+ case UCDN_SCRIPT_GURMUKHI: return load_noto_try(ctx, "Gurmukhi");
+ case UCDN_SCRIPT_GUJARATI: return load_noto_try(ctx, "Gujarati");
+ case UCDN_SCRIPT_ORIYA: return load_noto_try(ctx, "Oriya");
+ case UCDN_SCRIPT_TAMIL: return load_noto_try(ctx, "Tamil");
+ case UCDN_SCRIPT_TELUGU: return load_noto_try(ctx, "Telugu");
+ case UCDN_SCRIPT_KANNADA: return load_noto_try(ctx, "Kannada");
+ case UCDN_SCRIPT_MALAYALAM: return load_noto_try(ctx, "Malayalam");
+ case UCDN_SCRIPT_SINHALA: return load_noto_try(ctx, "Sinhala");
+ case UCDN_SCRIPT_THAI: return load_noto_try(ctx, "Thai");
+ case UCDN_SCRIPT_LAO: return load_noto_try(ctx, "Lao");
+ case UCDN_SCRIPT_TIBETAN: return load_noto_try(ctx, "Tibetan");
+ case UCDN_SCRIPT_MYANMAR: return load_noto_try(ctx, "Myanmar");
+ case UCDN_SCRIPT_GEORGIAN: return load_noto_try(ctx, "Georgian");
+ case UCDN_SCRIPT_ETHIOPIC: return load_noto_try(ctx, "Ethiopic");
+ case UCDN_SCRIPT_CHEROKEE: return load_noto_try(ctx, "Cherokee");
+ case UCDN_SCRIPT_CANADIAN_ABORIGINAL: return load_noto_try(ctx, "CanadianAboriginal");
+ case UCDN_SCRIPT_OGHAM: return load_noto_try(ctx, "Ogham");
+ case UCDN_SCRIPT_RUNIC: return load_noto_try(ctx, "Runic");
+ case UCDN_SCRIPT_KHMER: return load_noto_try(ctx, "Khmer");
+ case UCDN_SCRIPT_MONGOLIAN: return load_noto_try(ctx, "Mongolian");
+ case UCDN_SCRIPT_YI: return load_noto_try(ctx, "Yi");
+ case UCDN_SCRIPT_OLD_ITALIC: return load_noto_try(ctx, "OldItalic");
+ case UCDN_SCRIPT_GOTHIC: return load_noto_try(ctx, "Gothic");
+ case UCDN_SCRIPT_DESERET: return load_noto_try(ctx, "Deseret");
+ case UCDN_SCRIPT_TAGALOG: return load_noto_try(ctx, "Tagalog");
+ case UCDN_SCRIPT_HANUNOO: return load_noto_try(ctx, "Hanunoo");
+ case UCDN_SCRIPT_BUHID: return load_noto_try(ctx, "Buhid");
+ case UCDN_SCRIPT_TAGBANWA: return load_noto_try(ctx, "Tagbanwa");
+ case UCDN_SCRIPT_LIMBU: return load_noto_try(ctx, "Limbu");
+ case UCDN_SCRIPT_TAI_LE: return load_noto_try(ctx, "TaiLe");
+ case UCDN_SCRIPT_LINEAR_B: return load_noto_try(ctx, "LinearB");
+ case UCDN_SCRIPT_UGARITIC: return load_noto_try(ctx, "Ugaritic");
+ case UCDN_SCRIPT_SHAVIAN: return load_noto_try(ctx, "Shavian");
+ case UCDN_SCRIPT_OSMANYA: return load_noto_try(ctx, "Osmanya");
+ case UCDN_SCRIPT_CYPRIOT: return load_noto_try(ctx, "Cypriot");
+ case UCDN_SCRIPT_BUGINESE: return load_noto_try(ctx, "Buginese");
+ case UCDN_SCRIPT_COPTIC: return load_noto_try(ctx, "Coptic");
+ case UCDN_SCRIPT_NEW_TAI_LUE: return load_noto_try(ctx, "NewTaiLue");
+ case UCDN_SCRIPT_GLAGOLITIC: return load_noto_try(ctx, "Glagolitic");
+ case UCDN_SCRIPT_TIFINAGH: return load_noto_try(ctx, "Tifinagh");
+ case UCDN_SCRIPT_SYLOTI_NAGRI: return load_noto_try(ctx, "SylotiNagri");
+ case UCDN_SCRIPT_OLD_PERSIAN: return load_noto_try(ctx, "OldPersian");
+ case UCDN_SCRIPT_KHAROSHTHI: return load_noto_try(ctx, "Kharoshthi");
+ case UCDN_SCRIPT_BALINESE: return load_noto_try(ctx, "Balinese");
+ case UCDN_SCRIPT_CUNEIFORM: return load_noto_try(ctx, "Cuneiform");
+ case UCDN_SCRIPT_PHOENICIAN: return load_noto_try(ctx, "Phoenician");
+ case UCDN_SCRIPT_PHAGS_PA: return load_noto_try(ctx, "PhagsPa");
+ case UCDN_SCRIPT_SUNDANESE: return load_noto_try(ctx, "Sundanese");
+ case UCDN_SCRIPT_LEPCHA: return load_noto_try(ctx, "Lepcha");
+ case UCDN_SCRIPT_OL_CHIKI: return load_noto_try(ctx, "OlChiki");
+ case UCDN_SCRIPT_VAI: return load_noto_try(ctx, "Vai");
+ case UCDN_SCRIPT_SAURASHTRA: return load_noto_try(ctx, "Saurashtra");
+ case UCDN_SCRIPT_KAYAH_LI: return load_noto_try(ctx, "KayahLi");
+ case UCDN_SCRIPT_REJANG: return load_noto_try(ctx, "Rejang");
+ case UCDN_SCRIPT_LYCIAN: return load_noto_try(ctx, "Lycian");
+ case UCDN_SCRIPT_CARIAN: return load_noto_try(ctx, "Carian");
+ case UCDN_SCRIPT_LYDIAN: return load_noto_try(ctx, "Lydian");
+ case UCDN_SCRIPT_CHAM: return load_noto_try(ctx, "Cham");
+ case UCDN_SCRIPT_TAI_THAM: return load_noto_try(ctx, "TaiTham");
+ case UCDN_SCRIPT_TAI_VIET: return load_noto_try(ctx, "TaiViet");
+ case UCDN_SCRIPT_AVESTAN: return load_noto_try(ctx, "Avestan");
+ case UCDN_SCRIPT_EGYPTIAN_HIEROGLYPHS: return load_noto_try(ctx, "EgyptianHieroglyphs");
+ case UCDN_SCRIPT_SAMARITAN: return load_noto_try(ctx, "Samaritan");
+ case UCDN_SCRIPT_LISU: return load_noto_try(ctx, "Lisu");
+ case UCDN_SCRIPT_BAMUM: return load_noto_try(ctx, "Bamum");
+ case UCDN_SCRIPT_JAVANESE: return load_noto_try(ctx, "Javanese");
+ case UCDN_SCRIPT_MEETEI_MAYEK: return load_noto_try(ctx, "MeeteiMayek");
+ case UCDN_SCRIPT_IMPERIAL_ARAMAIC: return load_noto_try(ctx, "ImperialAramaic");
+ case UCDN_SCRIPT_OLD_SOUTH_ARABIAN: return load_noto_try(ctx, "OldSouthArabian");
+ case UCDN_SCRIPT_INSCRIPTIONAL_PARTHIAN: return load_noto_try(ctx, "InscriptionalParthian");
+ case UCDN_SCRIPT_INSCRIPTIONAL_PAHLAVI: return load_noto_try(ctx, "InscriptionalPahlavi");
+ case UCDN_SCRIPT_OLD_TURKIC: return load_noto_try(ctx, "OldTurkic");
+ case UCDN_SCRIPT_KAITHI: return load_noto_try(ctx, "Kaithi");
+ case UCDN_SCRIPT_BATAK: return load_noto_try(ctx, "Batak");
+ case UCDN_SCRIPT_BRAHMI: return load_noto_try(ctx, "Brahmi");
+ case UCDN_SCRIPT_MANDAIC: return load_noto_try(ctx, "Mandaic");
+ case UCDN_SCRIPT_CHAKMA: return load_noto_try(ctx, "Chakma");
+ case UCDN_SCRIPT_MIAO: return load_noto_try(ctx, "Miao");
+ case UCDN_SCRIPT_SHARADA: return load_noto_try(ctx, "Sharada");
+ case UCDN_SCRIPT_SORA_SOMPENG: return load_noto_try(ctx, "SoraSompeng");
+ case UCDN_SCRIPT_TAKRI: return load_noto_try(ctx, "Takri");
+ case UCDN_SCRIPT_BASSA_VAH: return load_noto_try(ctx, "BassaVah");
+ case UCDN_SCRIPT_CAUCASIAN_ALBANIAN: return load_noto_try(ctx, "CaucasianAlbanian");
+ case UCDN_SCRIPT_DUPLOYAN: return load_noto_try(ctx, "Duployan");
+ case UCDN_SCRIPT_ELBASAN: return load_noto_try(ctx, "Elbasan");
+ case UCDN_SCRIPT_GRANTHA: return load_noto_try(ctx, "Grantha");
+ case UCDN_SCRIPT_KHOJKI: return load_noto_try(ctx, "Khojki");
+ case UCDN_SCRIPT_KHUDAWADI: return load_noto_try(ctx, "Khudawadi");
+ case UCDN_SCRIPT_LINEAR_A: return load_noto_try(ctx, "LinearA");
+ case UCDN_SCRIPT_MAHAJANI: return load_noto_try(ctx, "Mahajani");
+ case UCDN_SCRIPT_MANICHAEAN: return load_noto_try(ctx, "Manichaean");
+ case UCDN_SCRIPT_MENDE_KIKAKUI: return load_noto_try(ctx, "MendeKikakui");
+ case UCDN_SCRIPT_MODI: return load_noto_try(ctx, "Modi");
+ case UCDN_SCRIPT_MRO: return load_noto_try(ctx, "Mro");
+ case UCDN_SCRIPT_NABATAEAN: return load_noto_try(ctx, "Nabataean");
+ case UCDN_SCRIPT_OLD_NORTH_ARABIAN: return load_noto_try(ctx, "OldNorthArabian");
+ case UCDN_SCRIPT_OLD_PERMIC: return load_noto_try(ctx, "OldPermic");
+ case UCDN_SCRIPT_PAHAWH_HMONG: return load_noto_try(ctx, "PahawhHmong");
+ case UCDN_SCRIPT_PALMYRENE: return load_noto_try(ctx, "Palmyrene");
+ case UCDN_SCRIPT_PAU_CIN_HAU: return load_noto_try(ctx, "PauCinHau");
+ case UCDN_SCRIPT_PSALTER_PAHLAVI: return load_noto_try(ctx, "PsalterPahlavi");
+ case UCDN_SCRIPT_SIDDHAM: return load_noto_try(ctx, "Siddham");
+ case UCDN_SCRIPT_TIRHUTA: return load_noto_try(ctx, "Tirhuta");
+ case UCDN_SCRIPT_WARANG_CITI: return load_noto_try(ctx, "WarangCiti");
+ case UCDN_SCRIPT_AHOM: return load_noto_try(ctx, "Ahom");
+ case UCDN_SCRIPT_ANATOLIAN_HIEROGLYPHS: return load_noto_try(ctx, "AnatolianHieroglyphs");
+ case UCDN_SCRIPT_HATRAN: return load_noto_try(ctx, "Hatran");
+ case UCDN_SCRIPT_MULTANI: return load_noto_try(ctx, "Multani");
+ case UCDN_SCRIPT_OLD_HUNGARIAN: return load_noto_try(ctx, "OldHungarian");
+ case UCDN_SCRIPT_SIGNWRITING: return load_noto_try(ctx, "Signwriting");
+ case UCDN_SCRIPT_ADLAM: return load_noto_try(ctx, "Adlam");
+ case UCDN_SCRIPT_BHAIKSUKI: return load_noto_try(ctx, "Bhaiksuki");
+ case UCDN_SCRIPT_MARCHEN: return load_noto_try(ctx, "Marchen");
+ case UCDN_SCRIPT_NEWA: return load_noto_try(ctx, "Newa");
+ case UCDN_SCRIPT_OSAGE: return load_noto_try(ctx, "Osage");
+ case UCDN_SCRIPT_TANGUT: return load_noto_try(ctx, "Tangut");
+ case UCDN_SCRIPT_MASARAM_GONDI: return load_noto_try(ctx, "MasaramGondi");
+ case UCDN_SCRIPT_NUSHU: return load_noto_try(ctx, "Nushu");
+ case UCDN_SCRIPT_SOYOMBO: return load_noto_try(ctx, "Soyombo");
+ case UCDN_SCRIPT_ZANABAZAR_SQUARE: return load_noto_try(ctx, "ZanabazarSquare");
+
}
return NULL;
}