const unsigned char * fz_lookup_cjk_font_by_language(fz_context *ctx, const char *lang, int *size, int *subfont) { int ordering = fz_lookup_cjk_ordering_by_language(lang); if (ordering >= 0) return fz_lookup_cjk_font(ctx, ordering, size, subfont); return *size = 0, *subfont = 0, NULL; }
unsigned char * fz_lookup_noto_font(fz_context *ctx, int script, int serif, unsigned int *len) { /* Unused Noto fonts: NastaliqUrdu, SansSyriacEstrangela */ switch (script) { default: case UCDN_SCRIPT_COMMON: case UCDN_SCRIPT_INHERITED: case UCDN_SCRIPT_UNKNOWN: break; case UCDN_SCRIPT_HANGUL: return fz_lookup_cjk_font(ctx, FZ_ADOBE_KOREA_1, serif, 0, len, NULL); case UCDN_SCRIPT_HIRAGANA: case UCDN_SCRIPT_KATAKANA: return fz_lookup_cjk_font(ctx, FZ_ADOBE_JAPAN_1, serif, 0, len, NULL); case UCDN_SCRIPT_BOPOMOFO: return fz_lookup_cjk_font(ctx, FZ_ADOBE_GB_1, serif, 0, len, NULL); case UCDN_SCRIPT_HAN: return fz_lookup_cjk_font(ctx, FZ_ADOBE_GB_1, serif, 0, len, NULL); #ifndef TOFU #ifndef TOFU_HISTORIC case UCDN_SCRIPT_IMPERIAL_ARAMAIC: Noto(SansImperialAramaic); case UCDN_SCRIPT_AVESTAN: Noto(SansAvestan); case UCDN_SCRIPT_CARIAN: Noto(SansCarian); case UCDN_SCRIPT_CYPRIOT: Noto(SansCypriot); case UCDN_SCRIPT_EGYPTIAN_HIEROGLYPHS: Noto(SansEgyptianHieroglyphs); case UCDN_SCRIPT_GLAGOLITIC: Noto(SansGlagolitic); case UCDN_SCRIPT_GOTHIC: Noto(SansGothic); case UCDN_SCRIPT_OLD_ITALIC: Noto(SansOldItalic); case UCDN_SCRIPT_KHAROSHTHI: Noto(SansKharoshthi); case UCDN_SCRIPT_KAITHI: Noto(SansKaithi); case UCDN_SCRIPT_LINEAR_B: Noto(SansLinearB); case UCDN_SCRIPT_LYCIAN: Noto(SansLycian); case UCDN_SCRIPT_LYDIAN: Noto(SansLydian); case UCDN_SCRIPT_OGHAM: Noto(SansOgham); case UCDN_SCRIPT_OLD_TURKIC: Noto(SansOldTurkic); case UCDN_SCRIPT_PHAGS_PA: Noto(SansPhagsPa); case UCDN_SCRIPT_INSCRIPTIONAL_PAHLAVI: Noto(SansInscriptionalPahlavi); case UCDN_SCRIPT_INSCRIPTIONAL_PARTHIAN: Noto(SansInscriptionalParthian); case UCDN_SCRIPT_RUNIC: Noto(SansRunic); case UCDN_SCRIPT_OLD_SOUTH_ARABIAN: Noto(SansOldSouthArabian); case UCDN_SCRIPT_UGARITIC: Noto(SansUgaritic); case UCDN_SCRIPT_OLD_PERSIAN: Noto(SansOldPersian); case UCDN_SCRIPT_CUNEIFORM: Noto(SansCuneiform); case UCDN_SCRIPT_COPTIC: Noto(SansCoptic); #endif case UCDN_SCRIPT_LATIN: Noto2(Sans, Serif); case UCDN_SCRIPT_GREEK: Noto2(Sans, Serif); case UCDN_SCRIPT_CYRILLIC: Noto2(Sans, Serif); case UCDN_SCRIPT_ARMENIAN: Noto2(SansArmenian, SerifArmenian); case UCDN_SCRIPT_HEBREW: Noto(SansHebrew); case UCDN_SCRIPT_ARABIC: Noto3(KufiArabic, NaskhArabic, NastaliqUrdu); case UCDN_SCRIPT_SYRIAC: Noto3(SansSyriacEastern, SansSyriacWestern, SansSyriacEstrangela); case UCDN_SCRIPT_THAANA: Noto(SansThaana); case UCDN_SCRIPT_DEVANAGARI: Noto(SansDevanagari); case UCDN_SCRIPT_BENGALI: Noto2(SansBengali, SerifBengali); case UCDN_SCRIPT_GURMUKHI: Noto(SansGurmukhi); case UCDN_SCRIPT_GUJARATI: Noto2(SansGujarati, SerifGujarati); case UCDN_SCRIPT_ORIYA: Noto(SansOriya); case UCDN_SCRIPT_TAMIL: Noto2(SansTamil, SerifTamil); case UCDN_SCRIPT_TELUGU: Noto2(SansTelugu, SerifTelugu); case UCDN_SCRIPT_KANNADA: Noto2(SansKannada, SerifKannada); case UCDN_SCRIPT_MALAYALAM: Noto2(SansMalayalam, SerifMalayalam); case UCDN_SCRIPT_SINHALA: Noto(SansSinhala); case UCDN_SCRIPT_THAI: Noto2(SansThai, SerifThai); case UCDN_SCRIPT_LAO: Noto2(SansLao, SerifLao); case UCDN_SCRIPT_TIBETAN: Noto(SansTibetan); case UCDN_SCRIPT_MYANMAR: Noto(SansMyanmar); case UCDN_SCRIPT_GEORGIAN: Noto2(SansGeorgian, SerifGeorgian); case UCDN_SCRIPT_ETHIOPIC: Noto(SansEthiopic); case UCDN_SCRIPT_CHEROKEE: Noto(SansCherokee); case UCDN_SCRIPT_CANADIAN_ABORIGINAL: Noto(SansCanadianAboriginal); case UCDN_SCRIPT_KHMER: Noto2(SansKhmer, SerifKhmer); case UCDN_SCRIPT_MONGOLIAN: Noto(SansMongolian); case UCDN_SCRIPT_YI: Noto(SansYi); case UCDN_SCRIPT_DESERET: Noto(SansDeseret); case UCDN_SCRIPT_TAGALOG: Noto(SansTagalog); case UCDN_SCRIPT_HANUNOO: Noto(SansHanunoo); case UCDN_SCRIPT_BUHID: Noto(SansBuhid); case UCDN_SCRIPT_TAGBANWA: Noto(SansTagbanwa); case UCDN_SCRIPT_LIMBU: Noto(SansLimbu); case UCDN_SCRIPT_TAI_LE: Noto(SansTaiLe); case UCDN_SCRIPT_SHAVIAN: Noto(SansShavian); case UCDN_SCRIPT_OSMANYA: Noto(SansOsmanya); case UCDN_SCRIPT_BUGINESE: Noto(SansBuginese); case UCDN_SCRIPT_NEW_TAI_LUE: Noto(SansNewTaiLue); case UCDN_SCRIPT_TIFINAGH: Noto(SansTifinagh); case UCDN_SCRIPT_SYLOTI_NAGRI: Noto(SansSylotiNagri); case UCDN_SCRIPT_BALINESE: Noto(SansBalinese); case UCDN_SCRIPT_PHOENICIAN: Noto(SansPhoenician); case UCDN_SCRIPT_NKO: Noto(SansNKo); case UCDN_SCRIPT_SUNDANESE: Noto(SansSundanese); case UCDN_SCRIPT_LEPCHA: Noto(SansLepcha); case UCDN_SCRIPT_OL_CHIKI: Noto(SansOlChiki); case UCDN_SCRIPT_VAI: Noto(SansVai); case UCDN_SCRIPT_SAURASHTRA: Noto(SansSaurashtra); case UCDN_SCRIPT_KAYAH_LI: Noto(SansKayahLi); case UCDN_SCRIPT_REJANG: Noto(SansRejang); case UCDN_SCRIPT_CHAM: Noto(SansCham); case UCDN_SCRIPT_TAI_THAM: Noto(SansTaiTham); case UCDN_SCRIPT_TAI_VIET: Noto(SansTaiViet); case UCDN_SCRIPT_SAMARITAN: Noto(SansSamaritan); case UCDN_SCRIPT_LISU: Noto(SansLisu); case UCDN_SCRIPT_BAMUM: Noto(SansBamum); case UCDN_SCRIPT_JAVANESE: Noto(SansJavanese); case UCDN_SCRIPT_MEETEI_MAYEK: Noto(SansMeeteiMayek); case UCDN_SCRIPT_BATAK: Noto(SansBatak); case UCDN_SCRIPT_BRAHMI: Noto(SansBrahmi); case UCDN_SCRIPT_MANDAIC: Noto(SansMandaic); /* No fonts available for these scripts: */ #ifndef TOFU_HISTORIC case UCDN_SCRIPT_AHOM: break; case UCDN_SCRIPT_BASSA_VAH: break; case UCDN_SCRIPT_ELBASAN: break; case UCDN_SCRIPT_GRANTHA: break; case UCDN_SCRIPT_HATRAN: break; case UCDN_SCRIPT_ANATOLIAN_HIEROGLYPHS: break; case UCDN_SCRIPT_OLD_HUNGARIAN: break; case UCDN_SCRIPT_KHOJKI: break; case UCDN_SCRIPT_LINEAR_A: break; case UCDN_SCRIPT_MAHAJANI: break; case UCDN_SCRIPT_MANICHAEAN: break; case UCDN_SCRIPT_MEROITIC_CURSIVE: break; case UCDN_SCRIPT_MEROITIC_HIEROGLYPHS: break; case UCDN_SCRIPT_MODI: break; case UCDN_SCRIPT_MULTANI: break; case UCDN_SCRIPT_OLD_NORTH_ARABIAN: break; case UCDN_SCRIPT_NABATAEAN: break; case UCDN_SCRIPT_PALMYRENE: break; case UCDN_SCRIPT_OLD_PERMIC: break; case UCDN_SCRIPT_PSALTER_PAHLAVI: break; case UCDN_SCRIPT_SIDDHAM: break; #endif case UCDN_SCRIPT_BRAILLE: break; /* no dedicated font */ case UCDN_SCRIPT_CHAKMA: break; case UCDN_SCRIPT_MIAO: break; case UCDN_SCRIPT_SHARADA: break; case UCDN_SCRIPT_SORA_SOMPENG: break; case UCDN_SCRIPT_TAKRI: break; case UCDN_SCRIPT_CAUCASIAN_ALBANIAN: break; case UCDN_SCRIPT_DUPLOYAN: break; case UCDN_SCRIPT_KHUDAWADI: break; case UCDN_SCRIPT_MENDE_KIKAKUI: break; case UCDN_SCRIPT_MRO: break; case UCDN_SCRIPT_PAHAWH_HMONG: break; case UCDN_SCRIPT_PAU_CIN_HAU: break; case UCDN_SCRIPT_TIRHUTA: break; case UCDN_SCRIPT_WARANG_CITI: break; case UCDN_SCRIPT_SIGNWRITING: break; #endif } *len = 0; return NULL; }
/* Search the builtin noto fonts for a match. Whether a font is present or not will depend on the configuration in which MuPDF is built. script: The script desired (e.g. UCDN_SCRIPT_KATAKANA). lang: The language desired (e.g. FZ_LANG_ja). len: Pointer to a place to receive the length of the discovered font buffer. Returns a pointer to the font file data, or NULL if not present. */ const unsigned char * fz_lookup_noto_font(fz_context *ctx, int script, int language, int *size, int *subfont) { /* TODO: Noto(SansSyriacEstrangela); */ /* TODO: Noto(SansSyriacWestern); */ *subfont = 0; switch (script) { default: case UCDN_SCRIPT_COMMON: case UCDN_SCRIPT_INHERITED: case UCDN_SCRIPT_UNKNOWN: break; case UCDN_SCRIPT_HANGUL: return fz_lookup_cjk_font(ctx, FZ_ADOBE_KOREA, size, subfont); case UCDN_SCRIPT_HIRAGANA: case UCDN_SCRIPT_KATAKANA: return fz_lookup_cjk_font(ctx, FZ_ADOBE_JAPAN, size, subfont); case UCDN_SCRIPT_BOPOMOFO: return fz_lookup_cjk_font(ctx, FZ_ADOBE_CNS, size, subfont); case UCDN_SCRIPT_HAN: switch (language) { case FZ_LANG_ja: return fz_lookup_cjk_font(ctx, FZ_ADOBE_JAPAN, size, subfont); case FZ_LANG_ko: return fz_lookup_cjk_font(ctx, FZ_ADOBE_KOREA, size, subfont); case FZ_LANG_zh_Hans: return fz_lookup_cjk_font(ctx, FZ_ADOBE_GB, size, subfont); default: case FZ_LANG_zh_Hant: return fz_lookup_cjk_font(ctx, FZ_ADOBE_CNS, size, subfont); } case UCDN_SCRIPT_BRAILLE: break; /* no dedicated font; fallback to NotoSansSymbols will cover this */ #ifndef TOFU_NOTO case UCDN_SCRIPT_LATIN: case UCDN_SCRIPT_GREEK: case UCDN_SCRIPT_CYRILLIC: RETURN(noto,NotoSerif_Regular_otf); break; case UCDN_SCRIPT_ARABIC: if (language == FZ_LANG_ur || language == FZ_LANG_urd) RETURN(noto,NotoNastaliqUrdu_Regular_ttf); RETURN(noto,NotoNaskhArabic_Regular_ttf); case UCDN_SCRIPT_SYRIAC: /* TODO: RETURN(noto,NotoSansSyriacEastern_Regular_ttf); */ /* TODO: RETURN(noto,NotoSansSyriacWestern_Regular_ttf); */ /* TODO: RETURN(noto,NotoSansSyriacEstrangela_Regular_ttf); */ RETURN(noto,NotoSansSyriacWestern_Regular_ttf); case UCDN_SCRIPT_MEROITIC_CURSIVE: case UCDN_SCRIPT_MEROITIC_HIEROGLYPHS: RETURN(noto,NotoSansMeroitic_Regular_otf); case UCDN_SCRIPT_ADLAM: RETURN(noto,NotoSansAdlam_Regular_otf); case UCDN_SCRIPT_AHOM: RETURN(noto,NotoSansAhom_Regular_otf); case UCDN_SCRIPT_ANATOLIAN_HIEROGLYPHS: RETURN(noto,NotoSansAnatolianHieroglyphs_Regular_otf); case UCDN_SCRIPT_ARMENIAN: RETURN(noto,NotoSerifArmenian_Regular_otf); case UCDN_SCRIPT_AVESTAN: RETURN(noto,NotoSansAvestan_Regular_otf); case UCDN_SCRIPT_BALINESE: RETURN(noto,NotoSerifBalinese_Regular_otf); case UCDN_SCRIPT_BAMUM: RETURN(noto,NotoSansBamum_Regular_otf); case UCDN_SCRIPT_BASSA_VAH: RETURN(noto,NotoSansBassaVah_Regular_otf); case UCDN_SCRIPT_BATAK: RETURN(noto,NotoSansBatak_Regular_otf); case UCDN_SCRIPT_BENGALI: RETURN(noto,NotoSansBengali_Regular_otf); case UCDN_SCRIPT_BHAIKSUKI: RETURN(noto,NotoSansBhaiksuki_Regular_otf); case UCDN_SCRIPT_BRAHMI: RETURN(noto,NotoSansBrahmi_Regular_otf); case UCDN_SCRIPT_BUGINESE: RETURN(noto,NotoSansBuginese_Regular_otf); case UCDN_SCRIPT_BUHID: RETURN(noto,NotoSansBuhid_Regular_otf); case UCDN_SCRIPT_CANADIAN_ABORIGINAL: RETURN(noto,NotoSansCanadianAboriginal_Regular_otf); case UCDN_SCRIPT_CARIAN: RETURN(noto,NotoSansCarian_Regular_otf); case UCDN_SCRIPT_CAUCASIAN_ALBANIAN: break; case UCDN_SCRIPT_CHAKMA: RETURN(noto,NotoSansChakma_Regular_otf); case UCDN_SCRIPT_CHAM: RETURN(noto,NotoSansCham_Regular_otf); case UCDN_SCRIPT_CHEROKEE: RETURN(noto,NotoSansCherokee_Regular_otf); case UCDN_SCRIPT_COPTIC: RETURN(noto,NotoSansCoptic_Regular_otf); case UCDN_SCRIPT_CUNEIFORM: RETURN(noto,NotoSansCuneiform_Regular_otf); case UCDN_SCRIPT_CYPRIOT: RETURN(noto,NotoSansCypriot_Regular_otf); case UCDN_SCRIPT_DESERET: RETURN(noto,NotoSansDeseret_Regular_otf); case UCDN_SCRIPT_DEVANAGARI: RETURN(noto,NotoSansDevanagari_Regular_otf); case UCDN_SCRIPT_DUPLOYAN: break; case UCDN_SCRIPT_EGYPTIAN_HIEROGLYPHS: RETURN(noto,NotoSansEgyptianHieroglyphs_Regular_otf); case UCDN_SCRIPT_ELBASAN: RETURN(noto,NotoSansElbasan_Regular_otf); case UCDN_SCRIPT_ETHIOPIC: RETURN(noto,NotoSerifEthiopic_Regular_otf); case UCDN_SCRIPT_GEORGIAN: RETURN(noto,NotoSerifGeorgian_Regular_otf); case UCDN_SCRIPT_GLAGOLITIC: RETURN(noto,NotoSansGlagolitic_Regular_otf); case UCDN_SCRIPT_GOTHIC: RETURN(noto,NotoSansGothic_Regular_otf); case UCDN_SCRIPT_GRANTHA: break; case UCDN_SCRIPT_GUJARATI: RETURN(noto,NotoSerifGujarati_Regular_otf); case UCDN_SCRIPT_GURMUKHI: RETURN(noto,NotoSerifGurmukhi_Regular_otf); case UCDN_SCRIPT_HANUNOO: RETURN(noto,NotoSansHanunoo_Regular_otf); case UCDN_SCRIPT_HATRAN: RETURN(noto,NotoSansHatran_Regular_otf); case UCDN_SCRIPT_HEBREW: RETURN(noto,NotoSerifHebrew_Regular_otf); case UCDN_SCRIPT_IMPERIAL_ARAMAIC: RETURN(noto,NotoSansImperialAramaic_Regular_otf); case UCDN_SCRIPT_INSCRIPTIONAL_PAHLAVI: RETURN(noto,NotoSansInscriptionalPahlavi_Regular_otf); case UCDN_SCRIPT_INSCRIPTIONAL_PARTHIAN: RETURN(noto,NotoSansInscriptionalParthian_Regular_otf); case UCDN_SCRIPT_JAVANESE: RETURN(noto,NotoSansJavanese_Regular_ttf); case UCDN_SCRIPT_KAITHI: RETURN(noto,NotoSansKaithi_Regular_otf); case UCDN_SCRIPT_KANNADA: RETURN(noto,NotoSerifKannada_Regular_otf); case UCDN_SCRIPT_KAYAH_LI: RETURN(noto,NotoSansKayahLi_Regular_otf); case UCDN_SCRIPT_KHAROSHTHI: RETURN(noto,NotoSansKharoshthi_Regular_otf); case UCDN_SCRIPT_KHMER: RETURN(noto,NotoSerifKhmer_Regular_otf); case UCDN_SCRIPT_KHOJKI: break; case UCDN_SCRIPT_KHUDAWADI: break; case UCDN_SCRIPT_LAO: RETURN(noto,NotoSerifLao_Regular_otf); case UCDN_SCRIPT_LEPCHA: RETURN(noto,NotoSansLepcha_Regular_otf); case UCDN_SCRIPT_LIMBU: RETURN(noto,NotoSansLimbu_Regular_otf); case UCDN_SCRIPT_LINEAR_A: RETURN(noto,NotoSansLinearA_Regular_otf); case UCDN_SCRIPT_LINEAR_B: RETURN(noto,NotoSansLinearB_Regular_otf); case UCDN_SCRIPT_LISU: RETURN(noto,NotoSansLisu_Regular_otf); case UCDN_SCRIPT_LYCIAN: RETURN(noto,NotoSansLycian_Regular_otf); case UCDN_SCRIPT_LYDIAN: RETURN(noto,NotoSansLydian_Regular_otf); case UCDN_SCRIPT_MAHAJANI: break; case UCDN_SCRIPT_MALAYALAM: RETURN(noto,NotoSansMalayalam_Regular_otf); case UCDN_SCRIPT_MANDAIC: RETURN(noto,NotoSansMandaic_Regular_otf); case UCDN_SCRIPT_MANICHAEAN: RETURN(noto,NotoSansManichaean_Regular_otf); case UCDN_SCRIPT_MARCHEN: RETURN(noto,NotoSansMarchen_Regular_otf); case UCDN_SCRIPT_MASARAM_GONDI: break; case UCDN_SCRIPT_MEETEI_MAYEK: RETURN(noto,NotoSansMeeteiMayek_Regular_otf); case UCDN_SCRIPT_MENDE_KIKAKUI: RETURN(noto,NotoSansMendeKikakui_Regular_otf); case UCDN_SCRIPT_MIAO: RETURN(noto,NotoSansMiao_Regular_otf); case UCDN_SCRIPT_MODI: break; case UCDN_SCRIPT_MONGOLIAN: RETURN(noto,NotoSansMongolian_Regular_ttf); case UCDN_SCRIPT_MRO: RETURN(noto,NotoSansMro_Regular_otf); case UCDN_SCRIPT_MULTANI: RETURN(noto,NotoSansMultani_Regular_otf); case UCDN_SCRIPT_MYANMAR: RETURN(noto,NotoSerifMyanmar_Regular_otf); case UCDN_SCRIPT_NABATAEAN: RETURN(noto,NotoSansNabataean_Regular_otf); case UCDN_SCRIPT_NEWA: RETURN(noto,NotoSansNewa_Regular_otf); case UCDN_SCRIPT_NEW_TAI_LUE: RETURN(noto,NotoSansNewTaiLue_Regular_otf); case UCDN_SCRIPT_NKO: RETURN(noto,NotoSansNKo_Regular_otf); case UCDN_SCRIPT_NUSHU: break; case UCDN_SCRIPT_OGHAM: RETURN(noto,NotoSansOgham_Regular_otf); case UCDN_SCRIPT_OLD_HUNGARIAN: break; case UCDN_SCRIPT_OLD_ITALIC: RETURN(noto,NotoSansOldItalic_Regular_otf); case UCDN_SCRIPT_OLD_NORTH_ARABIAN: RETURN(noto,NotoSansOldNorthArabian_Regular_otf); case UCDN_SCRIPT_OLD_PERMIC: RETURN(noto,NotoSansOldPermic_Regular_otf); case UCDN_SCRIPT_OLD_PERSIAN: RETURN(noto,NotoSansOldPersian_Regular_otf); case UCDN_SCRIPT_OLD_SOUTH_ARABIAN: RETURN(noto,NotoSansOldSouthArabian_Regular_otf); case UCDN_SCRIPT_OLD_TURKIC: RETURN(noto,NotoSansOldTurkic_Regular_otf); case UCDN_SCRIPT_OL_CHIKI: RETURN(noto,NotoSansOlChiki_Regular_otf); case UCDN_SCRIPT_ORIYA: RETURN(noto,NotoSansOriya_Regular_ttf); case UCDN_SCRIPT_OSAGE: RETURN(noto,NotoSansOsage_Regular_otf); case UCDN_SCRIPT_OSMANYA: RETURN(noto,NotoSansOsmanya_Regular_otf); case UCDN_SCRIPT_PAHAWH_HMONG: RETURN(noto,NotoSansPahawhHmong_Regular_otf); case UCDN_SCRIPT_PALMYRENE: RETURN(noto,NotoSansPalmyrene_Regular_otf); case UCDN_SCRIPT_PAU_CIN_HAU: RETURN(noto,NotoSansPauCinHau_Regular_otf); case UCDN_SCRIPT_PHAGS_PA: RETURN(noto,NotoSansPhagsPa_Regular_otf); case UCDN_SCRIPT_PHOENICIAN: RETURN(noto,NotoSansPhoenician_Regular_otf); case UCDN_SCRIPT_PSALTER_PAHLAVI: break; case UCDN_SCRIPT_REJANG: RETURN(noto,NotoSansRejang_Regular_otf); case UCDN_SCRIPT_RUNIC: RETURN(noto,NotoSansRunic_Regular_otf); case UCDN_SCRIPT_SAMARITAN: RETURN(noto,NotoSansSamaritan_Regular_otf); case UCDN_SCRIPT_SAURASHTRA: RETURN(noto,NotoSansSaurashtra_Regular_otf); case UCDN_SCRIPT_SHARADA: RETURN(noto,NotoSansSharada_Regular_otf); case UCDN_SCRIPT_SHAVIAN: RETURN(noto,NotoSansShavian_Regular_otf); case UCDN_SCRIPT_SIDDHAM: break; case UCDN_SCRIPT_SIGNWRITING: break; case UCDN_SCRIPT_SINHALA: RETURN(noto,NotoSerifSinhala_Regular_otf); case UCDN_SCRIPT_SORA_SOMPENG: RETURN(noto,NotoSansSoraSompeng_Regular_otf); case UCDN_SCRIPT_SOYOMBO: break; case UCDN_SCRIPT_SUNDANESE: RETURN(noto,NotoSansSundanese_Regular_otf); case UCDN_SCRIPT_SYLOTI_NAGRI: RETURN(noto,NotoSansSylotiNagri_Regular_otf); case UCDN_SCRIPT_TAGALOG: RETURN(noto,NotoSansTagalog_Regular_otf); case UCDN_SCRIPT_TAGBANWA: RETURN(noto,NotoSansTagbanwa_Regular_otf); case UCDN_SCRIPT_TAI_LE: RETURN(noto,NotoSansTaiLe_Regular_otf); case UCDN_SCRIPT_TAI_THAM: RETURN(noto,NotoSansTaiTham_Regular_ttf); case UCDN_SCRIPT_TAI_VIET: RETURN(noto,NotoSansTaiViet_Regular_otf); case UCDN_SCRIPT_TAKRI: break; case UCDN_SCRIPT_TAMIL: RETURN(noto,NotoSerifTamil_Regular_otf); case UCDN_SCRIPT_TANGUT: break; case UCDN_SCRIPT_TELUGU: RETURN(noto,NotoSerifTelugu_Regular_ttf); case UCDN_SCRIPT_THAANA: RETURN(noto,NotoSansThaana_Regular_ttf); case UCDN_SCRIPT_THAI: RETURN(noto,NotoSerifThai_Regular_otf); case UCDN_SCRIPT_TIBETAN: RETURN(noto,NotoSansTibetan_Regular_ttf); case UCDN_SCRIPT_TIFINAGH: RETURN(noto,NotoSansTifinagh_Regular_otf); case UCDN_SCRIPT_TIRHUTA: break; case UCDN_SCRIPT_UGARITIC: RETURN(noto,NotoSansUgaritic_Regular_otf); case UCDN_SCRIPT_VAI: RETURN(noto,NotoSansVai_Regular_otf); case UCDN_SCRIPT_WARANG_CITI: break; case UCDN_SCRIPT_YI: RETURN(noto,NotoSansYi_Regular_otf); case UCDN_SCRIPT_ZANABAZAR_SQUARE: break; #endif /* TOFU_NOTO */ } return *size = 0, NULL; }