summaryrefslogtreecommitdiff
path: root/source/fitz/noto.c
diff options
context:
space:
mode:
authorTor Andersson <tor.andersson@artifex.com>2016-06-23 13:41:53 +0200
committerRobin Watts <robin.watts@artifex.com>2016-06-23 16:10:29 +0100
commit6e48c939dc9913a6af747d5b6961624551c8d90d (patch)
tree4b3f69c237dc7af00606c87ac94cd2c4893da628 /source/fitz/noto.c
parentcf7b2cbbfe6192fbf697237735ab45bc951304e4 (diff)
downloadmupdf-6e48c939dc9913a6af747d5b6961624551c8d90d.tar.xz
epub: Use markup language when shaping and selecting fallback fonts.
Diffstat (limited to 'source/fitz/noto.c')
-rw-r--r--source/fitz/noto.c247
1 files changed, 128 insertions, 119 deletions
diff --git a/source/fitz/noto.c b/source/fitz/noto.c
index 70f3bb8f..894d7bd6 100644
--- a/source/fitz/noto.c
+++ b/source/fitz/noto.c
@@ -6,7 +6,7 @@
DroidSansFallback from Android for CJK.
Charis SIL from SIL.
- Define TOFU to skip all the Noto fonts except CJK.
+ Define TOFU to only include the Base14 and CJK fonts.
Define TOFU_CJK to skip CJK font.
Define TOFU_CJK_EXT to skip CJK Extension A support.
@@ -15,6 +15,8 @@
Define TOFU_HISTORIC to skip ancient/historic scripts.
Define TOFU_SYMBOL to skip symbol font.
Define TOFU_SIL to skip the SIL fonts.
+
+ Define TOFU_BASE14 to skip the Base 14 fonts (warning: makes PDF unusable).
*/
#ifdef NOTO_SMALL
@@ -37,39 +39,39 @@
#endif
#define RETURN(NAME) \
- do {\
+ do { \
extern const int fz_font_ ## NAME ## _size; \
extern const char fz_font_ ## NAME []; \
- return *size = fz_font_ ## NAME ## _size, fz_font_ ## NAME;\
+ return *size = fz_font_ ## NAME ## _size, fz_font_ ## NAME; \
} while (0)
const char *
fz_lookup_base14_font(fz_context *ctx, const char *name, int *size)
{
#ifndef TOFU_BASE14
- if (!strcmp(name, "Courier")) { RETURN(NimbusMonoPS_Regular_cff); }
- if (!strcmp(name, "Courier-Oblique")) { RETURN(NimbusMonoPS_Italic_cff); }
- if (!strcmp(name, "Courier-Bold")) { RETURN(NimbusMonoPS_Bold_cff); }
- if (!strcmp(name, "Courier-BoldOblique")) { RETURN(NimbusMonoPS_BoldItalic_cff); }
- if (!strcmp(name, "Helvetica")) { RETURN(NimbusSans_Regular_cff); }
- if (!strcmp(name, "Helvetica-Oblique")) { RETURN(NimbusSans_Oblique_cff); }
- if (!strcmp(name, "Helvetica-Bold")) { RETURN(NimbusSans_Bold_cff); }
- if (!strcmp(name, "Helvetica-BoldOblique")) { RETURN(NimbusSans_BoldOblique_cff); }
- if (!strcmp(name, "Times-Roman")) { RETURN(NimbusRoman_Regular_cff); }
- if (!strcmp(name, "Times-Italic")) { RETURN(NimbusRoman_Italic_cff); }
- if (!strcmp(name, "Times-Bold")) { RETURN(NimbusRoman_Bold_cff); }
- if (!strcmp(name, "Times-BoldItalic")) { RETURN(NimbusRoman_BoldItalic_cff); }
- if (!strcmp(name, "Symbol")) { RETURN(StandardSymbolsPS_cff); }
- if (!strcmp(name, "ZapfDingbats")) { RETURN(Dingbats_cff); }
+ if (!strcmp(name, "Courier")) RETURN(NimbusMonoPS_Regular_cff);
+ if (!strcmp(name, "Courier-Oblique")) RETURN(NimbusMonoPS_Italic_cff);
+ if (!strcmp(name, "Courier-Bold")) RETURN(NimbusMonoPS_Bold_cff);
+ if (!strcmp(name, "Courier-BoldOblique")) RETURN(NimbusMonoPS_BoldItalic_cff);
+ if (!strcmp(name, "Helvetica")) RETURN(NimbusSans_Regular_cff);
+ if (!strcmp(name, "Helvetica-Oblique")) RETURN(NimbusSans_Oblique_cff);
+ if (!strcmp(name, "Helvetica-Bold")) RETURN(NimbusSans_Bold_cff);
+ if (!strcmp(name, "Helvetica-BoldOblique")) RETURN(NimbusSans_BoldOblique_cff);
+ if (!strcmp(name, "Times-Roman")) RETURN(NimbusRoman_Regular_cff);
+ if (!strcmp(name, "Times-Italic")) RETURN(NimbusRoman_Italic_cff);
+ if (!strcmp(name, "Times-Bold")) RETURN(NimbusRoman_Bold_cff);
+ if (!strcmp(name, "Times-BoldItalic")) RETURN(NimbusRoman_BoldItalic_cff);
+ if (!strcmp(name, "Symbol")) RETURN(StandardSymbolsPS_cff);
+ if (!strcmp(name, "ZapfDingbats")) RETURN(Dingbats_cff);
#endif
return *size = 0, NULL;
}
#define FAMILY(R, I, B, BI) \
if (!is_bold) { \
- if (!is_italic) { RETURN(R); } else { RETURN(I); } \
+ if (!is_italic) RETURN(R); else RETURN(I); \
} else { \
- if (!is_italic) { RETURN(B); } else { RETURN(BI); } \
+ if (!is_italic) RETURN(B); else RETURN(BI); \
}
const char *
@@ -140,20 +142,16 @@ fz_lookup_cjk_font(fz_context *ctx, int registry, int serif, int wmode, int *siz
#endif
}
-#define Noto(SANS) { RETURN(Noto ## SANS ## _Regular_ttf); } break
+#define Noto(SANS) RETURN(Noto ## SANS ## _Regular_ttf)
#define Noto2(SANS,SERIF) \
- if (serif) { RETURN(Noto ## SERIF ## _Regular_ttf); } \
- else { RETURN(Noto ## SANS ## _Regular_ttf); } \
- break
-
-#define Noto3(SANS,SERIF,UNUSED) \
- Noto2(SANS,SERIF)
+ if (serif) { RETURN(Noto ## SERIF ## _Regular_ttf); } else { RETURN(Noto ## SANS ## _Regular_ttf); }
const char *
-fz_lookup_noto_font(fz_context *ctx, int script, int serif, int *size)
+fz_lookup_noto_font(fz_context *ctx, int script, int language, int serif, int *size)
{
- /* Unused Noto fonts: NastaliqUrdu, SansSyriacEstrangela */
+ /* TODO: Noto(SansSyriacEstrangela); */
+ /* TODO: Noto(SansSyriacWestern); */
switch (script)
{
@@ -171,141 +169,152 @@ fz_lookup_noto_font(fz_context *ctx, int script, int serif, int *size)
case UCDN_SCRIPT_BOPOMOFO:
return fz_lookup_cjk_font(ctx, FZ_ADOBE_GB_1, serif, 0, size, NULL);
case UCDN_SCRIPT_HAN:
- return fz_lookup_cjk_font(ctx, FZ_ADOBE_GB_1, serif, 0, size, NULL);
+ switch (language)
+ {
+ case FZ_LANG_ja: return fz_lookup_cjk_font(ctx, FZ_ADOBE_JAPAN_1, serif, 0, size, NULL);
+ case FZ_LANG_ko: return fz_lookup_cjk_font(ctx, FZ_ADOBE_KOREA_1, serif, 0, size, NULL);
+ case FZ_LANG_zh_Hant: return fz_lookup_cjk_font(ctx, FZ_ADOBE_CNS_1, serif, 0, size, NULL);
+ default:
+ case FZ_LANG_zh_Hans: return fz_lookup_cjk_font(ctx, FZ_ADOBE_GB_1, serif, 0, size, 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_ARABIC:
+ if (language == FZ_LANG_ur || language == FZ_LANG_urd)
+ Noto(NastaliqUrdu);
+ Noto2(KufiArabic, NaskhArabic);
+
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_BALINESE: Noto(SansBalinese);
+ case UCDN_SCRIPT_BAMUM: Noto(SansBamum);
+ case UCDN_SCRIPT_BATAK: Noto(SansBatak);
case UCDN_SCRIPT_BENGALI: Noto2(SansBengali, SerifBengali);
- case UCDN_SCRIPT_GURMUKHI: Noto(SansGurmukhi);
+ case UCDN_SCRIPT_CANADIAN_ABORIGINAL: Noto(SansCanadianAboriginal);
+ case UCDN_SCRIPT_CHAM: Noto(SansCham);
+ case UCDN_SCRIPT_CHEROKEE: Noto(SansCherokee);
+ case UCDN_SCRIPT_DEVANAGARI: Noto(SansDevanagari);
+ case UCDN_SCRIPT_ETHIOPIC: Noto(SansEthiopic);
+ case UCDN_SCRIPT_GEORGIAN: Noto2(SansGeorgian, SerifGeorgian);
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_GURMUKHI: Noto(SansGurmukhi);
+ case UCDN_SCRIPT_HEBREW: Noto(SansHebrew);
+ case UCDN_SCRIPT_JAVANESE: Noto(SansJavanese);
case UCDN_SCRIPT_KANNADA: Noto2(SansKannada, SerifKannada);
+ case UCDN_SCRIPT_KAYAH_LI: Noto(SansKayahLi);
+ case UCDN_SCRIPT_KHMER: Noto2(SansKhmer, SerifKhmer);
+ case UCDN_SCRIPT_LAO: Noto2(SansLao, SerifLao);
+ case UCDN_SCRIPT_LEPCHA: Noto(SansLepcha);
+ case UCDN_SCRIPT_LIMBU: Noto(SansLimbu);
+ case UCDN_SCRIPT_LISU: Noto(SansLisu);
case UCDN_SCRIPT_MALAYALAM: Noto2(SansMalayalam, SerifMalayalam);
+ case UCDN_SCRIPT_MANDAIC: Noto(SansMandaic);
+ case UCDN_SCRIPT_MEETEI_MAYEK: Noto(SansMeeteiMayek);
+ case UCDN_SCRIPT_MONGOLIAN: Noto(SansMongolian);
+ case UCDN_SCRIPT_MYANMAR: Noto(SansMyanmar);
+ case UCDN_SCRIPT_NEW_TAI_LUE: Noto(SansNewTaiLue);
+ case UCDN_SCRIPT_NKO: Noto(SansNKo);
+ case UCDN_SCRIPT_OL_CHIKI: Noto(SansOlChiki);
+ case UCDN_SCRIPT_ORIYA: Noto(SansOriya);
+ case UCDN_SCRIPT_SAURASHTRA: Noto(SansSaurashtra);
case UCDN_SCRIPT_SINHALA: Noto(SansSinhala);
+ case UCDN_SCRIPT_SUNDANESE: Noto(SansSundanese);
+ case UCDN_SCRIPT_SYLOTI_NAGRI: Noto(SansSylotiNagri);
+ case UCDN_SCRIPT_SYRIAC: Noto(SansSyriacEastern);
+ case UCDN_SCRIPT_TAI_LE: Noto(SansTaiLe);
+ case UCDN_SCRIPT_TAI_THAM: Noto(SansTaiTham);
+ case UCDN_SCRIPT_TAI_VIET: Noto(SansTaiViet);
+ case UCDN_SCRIPT_TAMIL: Noto2(SansTamil, SerifTamil);
+ case UCDN_SCRIPT_TELUGU: Noto2(SansTelugu, SerifTelugu);
+ case UCDN_SCRIPT_THAANA: Noto(SansThaana);
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_TIFINAGH: Noto(SansTifinagh);
+ case UCDN_SCRIPT_VAI: Noto(SansVai);
case UCDN_SCRIPT_YI: Noto(SansYi);
+
+#ifndef TOFU_HISTORIC
+ case UCDN_SCRIPT_AVESTAN: Noto(SansAvestan);
+ case UCDN_SCRIPT_BRAHMI: Noto(SansBrahmi);
+ case UCDN_SCRIPT_BUGINESE: Noto(SansBuginese);
+ case UCDN_SCRIPT_BUHID: Noto(SansBuhid);
+ case UCDN_SCRIPT_CARIAN: Noto(SansCarian);
+ case UCDN_SCRIPT_COPTIC: Noto(SansCoptic);
+ case UCDN_SCRIPT_CUNEIFORM: Noto(SansCuneiform);
+ case UCDN_SCRIPT_CYPRIOT: Noto(SansCypriot);
case UCDN_SCRIPT_DESERET: Noto(SansDeseret);
- case UCDN_SCRIPT_TAGALOG: Noto(SansTagalog);
+ case UCDN_SCRIPT_EGYPTIAN_HIEROGLYPHS: Noto(SansEgyptianHieroglyphs);
+ case UCDN_SCRIPT_GLAGOLITIC: Noto(SansGlagolitic);
+ case UCDN_SCRIPT_GOTHIC: Noto(SansGothic);
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_IMPERIAL_ARAMAIC: Noto(SansImperialAramaic);
+ case UCDN_SCRIPT_INSCRIPTIONAL_PAHLAVI: Noto(SansInscriptionalPahlavi);
+ case UCDN_SCRIPT_INSCRIPTIONAL_PARTHIAN: Noto(SansInscriptionalParthian);
+ case UCDN_SCRIPT_KAITHI: Noto(SansKaithi);
+ case UCDN_SCRIPT_KHAROSHTHI: Noto(SansKharoshthi);
+ 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_ITALIC: Noto(SansOldItalic);
+ case UCDN_SCRIPT_OLD_PERSIAN: Noto(SansOldPersian);
+ case UCDN_SCRIPT_OLD_SOUTH_ARABIAN: Noto(SansOldSouthArabian);
+ case UCDN_SCRIPT_OLD_TURKIC: Noto(SansOldTurkic);
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_PHAGS_PA: Noto(SansPhagsPa);
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_RUNIC: Noto(SansRunic);
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);
+ case UCDN_SCRIPT_SHAVIAN: Noto(SansShavian);
+ case UCDN_SCRIPT_TAGALOG: Noto(SansTagalog);
+ case UCDN_SCRIPT_TAGBANWA: Noto(SansTagbanwa);
+ case UCDN_SCRIPT_UGARITIC: Noto(SansUgaritic);
+#endif
/* No fonts available for these scripts: */
+ case UCDN_SCRIPT_BRAILLE: /* no dedicated font; fallback to NotoSansSymbols will cover this */
+ case UCDN_SCRIPT_CHAKMA: break;
+ case UCDN_SCRIPT_MIAO: break;
#ifndef TOFU_HISTORIC
case UCDN_SCRIPT_AHOM: break;
+ case UCDN_SCRIPT_ANATOLIAN_HIEROGLYPHS: break;
case UCDN_SCRIPT_BASSA_VAH: break;
+ case UCDN_SCRIPT_CAUCASIAN_ALBANIAN: break;
+ case UCDN_SCRIPT_DUPLOYAN: 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_KHUDAWADI: break;
case UCDN_SCRIPT_LINEAR_A: break;
case UCDN_SCRIPT_MAHAJANI: break;
case UCDN_SCRIPT_MANICHAEAN: break;
+ case UCDN_SCRIPT_MENDE_KIKAKUI: break;
case UCDN_SCRIPT_MEROITIC_CURSIVE: break;
case UCDN_SCRIPT_MEROITIC_HIEROGLYPHS: break;
case UCDN_SCRIPT_MODI: break;
+ case UCDN_SCRIPT_MRO: 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_HUNGARIAN: break;
+ case UCDN_SCRIPT_OLD_NORTH_ARABIAN: break;
case UCDN_SCRIPT_OLD_PERMIC: break;
+ case UCDN_SCRIPT_PAHAWH_HMONG: break;
+ case UCDN_SCRIPT_PALMYRENE: break;
+ case UCDN_SCRIPT_PAU_CIN_HAU: 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_SIDDHAM: break;
+ case UCDN_SCRIPT_SIGNWRITING: 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
#endif
}