diff --git a/src/font/Makefile.am b/src/font/Makefile.am index ccc97a42..fcf4db1f 100644 --- a/src/font/Makefile.am +++ b/src/font/Makefile.am @@ -33,7 +33,8 @@ HDR_FILES = charset.h rawbitmap.h varbitmap.h freetype2.h qpf.h se_minigui.h \ unicode-bidi-bidi-type-table.inc \ unicode-bidi-brackets-table.inc \ unicode-bidi-brackets-type-table.inc \ - unicode-bidi-mirroring-table.inc + unicode-bidi-mirroring-table.inc \ + script-language-table.inc EXTRA_DIST = convgbmap.c jisunimap.c $(SRC_FILES) $(HDR_FILES) \ makefile.ng makefile.msvc diff --git a/src/font/script-language-table.inc b/src/font/script-language-table.inc new file mode 100644 index 00000000..e066ad36 --- /dev/null +++ b/src/font/script-language-table.inc @@ -0,0 +1,255 @@ +/* + * script-language-table.inc: + * copied from LGPL'd Pango + */ +typedef struct _UCharScriptTypeForLang { + const char lang[7]; + UCharScriptType scripts[3]; +} UCharScriptTypeForLang; + +static const UCharScriptTypeForLang _script_for_lang[] = { + { "aa", { UCHAR_SCRIPT_LATIN/*62*/ } }, + { "ab", { UCHAR_SCRIPT_CYRILLIC/*90*/ } }, + { "af", { UCHAR_SCRIPT_LATIN/*69*/ } }, + { "ak", { UCHAR_SCRIPT_LATIN/*70*/ } }, + { "am", { UCHAR_SCRIPT_ETHIOPIC/*264*/ } }, + { "an", { UCHAR_SCRIPT_LATIN/*66*/ } }, + { "ar", { UCHAR_SCRIPT_ARABIC/*36*/ } }, + { "as", { UCHAR_SCRIPT_BENGALI/*64*/ } }, + { "ast", { UCHAR_SCRIPT_LATIN/*70*/ } }, + { "av", { UCHAR_SCRIPT_CYRILLIC/*67*/ } }, + { "ay", { UCHAR_SCRIPT_LATIN/*60*/ } }, + { "az-az", { UCHAR_SCRIPT_LATIN/*66*/ } }, + { "az-ir", { UCHAR_SCRIPT_ARABIC/*38*/ } }, + { "ba", { UCHAR_SCRIPT_CYRILLIC/*82*/ } }, + { "be", { UCHAR_SCRIPT_CYRILLIC/*68*/ } }, + { "ber-dz", { UCHAR_SCRIPT_LATIN/*70*/ } }, + { "ber-ma", { UCHAR_SCRIPT_TIFINAGH/*32*/ } }, + { "bg", { UCHAR_SCRIPT_CYRILLIC/*60*/ } }, + { "bh", { UCHAR_SCRIPT_DEVANAGARI/*68*/ } }, + { "bho", { UCHAR_SCRIPT_DEVANAGARI/*68*/ } }, + { "bi", { UCHAR_SCRIPT_LATIN/*58*/ } }, + { "bin", { UCHAR_SCRIPT_LATIN/*76*/ } }, + { "bm", { UCHAR_SCRIPT_LATIN/*60*/ } }, + { "bn", { UCHAR_SCRIPT_BENGALI/*63*/ } }, + { "bo", { UCHAR_SCRIPT_TIBETAN/*95*/ } }, + { "br", { UCHAR_SCRIPT_LATIN/*64*/ } }, + { "brx", { UCHAR_SCRIPT_DEVANAGARI/*78*/ } }, + { "bs", { UCHAR_SCRIPT_LATIN/*62*/ } }, + { "bua", { UCHAR_SCRIPT_CYRILLIC/*70*/ } }, + { "byn", { UCHAR_SCRIPT_ETHIOPIC/*255*/ } }, + { "ca", { UCHAR_SCRIPT_LATIN/*74*/ } }, + { "ce", { UCHAR_SCRIPT_CYRILLIC/*67*/ } }, + { "ch", { UCHAR_SCRIPT_LATIN/*58*/ } }, + { "chm", { UCHAR_SCRIPT_CYRILLIC/*76*/ } }, + { "chr", { UCHAR_SCRIPT_CHEROKEE/*85*/ } }, + { "co", { UCHAR_SCRIPT_LATIN/*84*/ } }, + { "crh", { UCHAR_SCRIPT_LATIN/*68*/ } }, + { "cs", { UCHAR_SCRIPT_LATIN/*82*/ } }, + { "csb", { UCHAR_SCRIPT_LATIN/*74*/ } }, + { "cu", { UCHAR_SCRIPT_CYRILLIC/*103*/ } }, + { "cv", { UCHAR_SCRIPT_CYRILLIC/*72*/, UCHAR_SCRIPT_LATIN/*2*/ } }, + { "cy", { UCHAR_SCRIPT_LATIN/*78*/ } }, + { "da", { UCHAR_SCRIPT_LATIN/*70*/ } }, + { "de", { UCHAR_SCRIPT_LATIN/*59*/ } }, + { "doi", { UCHAR_SCRIPT_DEVANAGARI/*81*/ } }, + { "dv", { UCHAR_SCRIPT_THAANA/*49*/ } }, + { "dz", { UCHAR_SCRIPT_TIBETAN/*95*/ } }, + { "ee", { UCHAR_SCRIPT_LATIN/*96*/ } }, + { "el", { UCHAR_SCRIPT_GREEK/*69*/ } }, + { "en", { UCHAR_SCRIPT_LATIN/*72*/ } }, + { "eo", { UCHAR_SCRIPT_LATIN/*64*/ } }, + { "es", { UCHAR_SCRIPT_LATIN/*66*/ } }, + { "et", { UCHAR_SCRIPT_LATIN/*64*/ } }, + { "eu", { UCHAR_SCRIPT_LATIN/*56*/ } }, + { "fa", { UCHAR_SCRIPT_ARABIC/*38*/ } }, + { "fat", { UCHAR_SCRIPT_LATIN/*70*/ } }, + { "ff", { UCHAR_SCRIPT_LATIN/*62*/ } }, + { "fi", { UCHAR_SCRIPT_LATIN/*62*/ } }, + { "fil", { UCHAR_SCRIPT_LATIN/*84*/ } }, + { "fj", { UCHAR_SCRIPT_LATIN/*52*/ } }, + { "fo", { UCHAR_SCRIPT_LATIN/*68*/ } }, + { "fr", { UCHAR_SCRIPT_LATIN/*84*/ } }, + { "fur", { UCHAR_SCRIPT_LATIN/*66*/ } }, + { "fy", { UCHAR_SCRIPT_LATIN/*75*/ } }, + { "ga", { UCHAR_SCRIPT_LATIN/*80*/ } }, + { "gd", { UCHAR_SCRIPT_LATIN/*70*/ } }, + { "gez", { UCHAR_SCRIPT_ETHIOPIC/*218*/ } }, + { "gl", { UCHAR_SCRIPT_LATIN/*66*/ } }, + { "gn", { UCHAR_SCRIPT_LATIN/*70*/ } }, + { "gu", { UCHAR_SCRIPT_GUJARATI/*68*/ } }, + { "gv", { UCHAR_SCRIPT_LATIN/*54*/ } }, + { "ha", { UCHAR_SCRIPT_LATIN/*60*/ } }, + { "haw", { UCHAR_SCRIPT_LATIN/*62*/ } }, + { "he", { UCHAR_SCRIPT_HEBREW/*27*/ } }, + { "hi", { UCHAR_SCRIPT_DEVANAGARI/*68*/ } }, + { "hne", { UCHAR_SCRIPT_DEVANAGARI/*68*/ } }, + { "ho", { UCHAR_SCRIPT_LATIN/*52*/ } }, + { "hr", { UCHAR_SCRIPT_LATIN/*62*/ } }, + { "hsb", { UCHAR_SCRIPT_LATIN/*72*/ } }, + { "ht", { UCHAR_SCRIPT_LATIN/*56*/ } }, + { "hu", { UCHAR_SCRIPT_LATIN/*70*/ } }, + { "hy", { UCHAR_SCRIPT_ARMENIAN/*77*/ } }, + { "hz", { UCHAR_SCRIPT_LATIN/*56*/ } }, + { "ia", { UCHAR_SCRIPT_LATIN/*52*/ } }, + { "id", { UCHAR_SCRIPT_LATIN/*54*/ } }, + { "ie", { UCHAR_SCRIPT_LATIN/*52*/ } }, + { "ig", { UCHAR_SCRIPT_LATIN/*58*/ } }, + { "ii", { UCHAR_SCRIPT_YI/*1165*/ } }, + { "ik", { UCHAR_SCRIPT_CYRILLIC/*68*/ } }, + { "io", { UCHAR_SCRIPT_LATIN/*52*/ } }, + { "is", { UCHAR_SCRIPT_LATIN/*70*/ } }, + { "it", { UCHAR_SCRIPT_LATIN/*72*/ } }, + { "iu", { UCHAR_SCRIPT_CANADIAN_ABORIGINAL/*161*/ } }, + { "ja", { UCHAR_SCRIPT_HAN/*2134*/, UCHAR_SCRIPT_KATAKANA/*88*/, UCHAR_SCRIPT_HIRAGANA/*85*/ } }, + { "jv", { UCHAR_SCRIPT_LATIN/*56*/ } }, + { "ka", { UCHAR_SCRIPT_GEORGIAN/*33*/ } }, + { "kaa", { UCHAR_SCRIPT_CYRILLIC/*78*/ } }, + { "kab", { UCHAR_SCRIPT_LATIN/*70*/ } }, + { "ki", { UCHAR_SCRIPT_LATIN/*56*/ } }, + { "kj", { UCHAR_SCRIPT_LATIN/*52*/ } }, + { "kk", { UCHAR_SCRIPT_CYRILLIC/*77*/ } }, + { "kl", { UCHAR_SCRIPT_LATIN/*81*/ } }, + { "km", { UCHAR_SCRIPT_KHMER/*63*/ } }, + { "kn", { UCHAR_SCRIPT_KANNADA/*70*/ } }, + { "ko", { UCHAR_SCRIPT_HANGUL/*2442*/ } }, + { "kok", { UCHAR_SCRIPT_DEVANAGARI/*68*/ } }, + { "kr", { UCHAR_SCRIPT_LATIN/*56*/ } }, + { "ks", { UCHAR_SCRIPT_ARABIC/*33*/ } }, + { "ku-am", { UCHAR_SCRIPT_CYRILLIC/*64*/ } }, + { "ku-iq", { UCHAR_SCRIPT_ARABIC/*32*/ } }, + { "ku-ir", { UCHAR_SCRIPT_ARABIC/*32*/ } }, + { "ku-tr", { UCHAR_SCRIPT_LATIN/*62*/ } }, + { "kum", { UCHAR_SCRIPT_CYRILLIC/*66*/ } }, + { "kv", { UCHAR_SCRIPT_CYRILLIC/*70*/ } }, + { "kw", { UCHAR_SCRIPT_LATIN/*64*/ } }, + { "kwm", { UCHAR_SCRIPT_LATIN/*52*/ } }, + { "ky", { UCHAR_SCRIPT_CYRILLIC/*70*/ } }, + { "la", { UCHAR_SCRIPT_LATIN/*68*/ } }, + { "lah", { UCHAR_SCRIPT_ARABIC/*27*/ } }, + { "lb", { UCHAR_SCRIPT_LATIN/*75*/ } }, + { "lez", { UCHAR_SCRIPT_CYRILLIC/*67*/ } }, + { "lg", { UCHAR_SCRIPT_LATIN/*54*/ } }, + { "li", { UCHAR_SCRIPT_LATIN/*62*/ } }, + { "ln", { UCHAR_SCRIPT_LATIN/*78*/ } }, + { "lo", { UCHAR_SCRIPT_LAO/*55*/ } }, + { "lt", { UCHAR_SCRIPT_LATIN/*70*/ } }, + { "lv", { UCHAR_SCRIPT_LATIN/*78*/ } }, + { "mai", { UCHAR_SCRIPT_DEVANAGARI/*68*/ } }, + { "mg", { UCHAR_SCRIPT_LATIN/*56*/ } }, + { "mh", { UCHAR_SCRIPT_LATIN/*62*/ } }, + { "mi", { UCHAR_SCRIPT_LATIN/*64*/ } }, + { "mk", { UCHAR_SCRIPT_CYRILLIC/*42*/ } }, + { "ml", { UCHAR_SCRIPT_MALAYALAM/*68*/ } }, + { "mn-cn", { UCHAR_SCRIPT_MONGOLIAN/*130*/ } }, + { "mn-mn", { UCHAR_SCRIPT_CYRILLIC/*70*/ } }, + { "mni", { UCHAR_SCRIPT_BENGALI/*75*/ } }, + { "mo", { UCHAR_SCRIPT_CYRILLIC/*66*/, UCHAR_SCRIPT_LATIN/*62*/ } }, + { "mr", { UCHAR_SCRIPT_DEVANAGARI/*68*/ } }, + { "ms", { UCHAR_SCRIPT_LATIN/*52*/ } }, + { "mt", { UCHAR_SCRIPT_LATIN/*72*/ } }, + { "my", { UCHAR_SCRIPT_MYANMAR/*48*/ } }, + { "na", { UCHAR_SCRIPT_LATIN/*60*/ } }, + { "nb", { UCHAR_SCRIPT_LATIN/*70*/ } }, + { "nds", { UCHAR_SCRIPT_LATIN/*59*/ } }, + { "ne", { UCHAR_SCRIPT_DEVANAGARI/*70*/ } }, + { "ng", { UCHAR_SCRIPT_LATIN/*52*/ } }, + { "nl", { UCHAR_SCRIPT_LATIN/*82*/ } }, + { "nn", { UCHAR_SCRIPT_LATIN/*76*/ } }, + { "no", { UCHAR_SCRIPT_LATIN/*70*/ } }, + { "nqo", { UCHAR_SCRIPT_NKO/*59*/ } }, + { "nr", { UCHAR_SCRIPT_LATIN/*52*/ } }, + { "nso", { UCHAR_SCRIPT_LATIN/*58*/ } }, + { "nv", { UCHAR_SCRIPT_LATIN/*70*/ } }, + { "ny", { UCHAR_SCRIPT_LATIN/*54*/ } }, + { "oc", { UCHAR_SCRIPT_LATIN/*70*/ } }, + { "om", { UCHAR_SCRIPT_LATIN/*52*/ } }, + { "or", { UCHAR_SCRIPT_ORIYA/*68*/ } }, + { "os", { UCHAR_SCRIPT_CYRILLIC/*66*/ } }, + { "ota", { UCHAR_SCRIPT_ARABIC/*37*/ } }, + { "pa", { UCHAR_SCRIPT_GURMUKHI/*63*/ } }, + { "pa-pk", { UCHAR_SCRIPT_ARABIC/*27*/ } }, + { "pap-an", { UCHAR_SCRIPT_LATIN/*72*/ } }, + { "pap-aw", { UCHAR_SCRIPT_LATIN/*54*/ } }, + { "pl", { UCHAR_SCRIPT_LATIN/*70*/ } }, + { "ps-af", { UCHAR_SCRIPT_ARABIC/*49*/ } }, + { "ps-pk", { UCHAR_SCRIPT_ARABIC/*49*/ } }, + { "pt", { UCHAR_SCRIPT_LATIN/*82*/ } }, + { "qu", { UCHAR_SCRIPT_LATIN/*54*/ } }, + { "quz", { UCHAR_SCRIPT_LATIN/*54*/ } }, + { "rm", { UCHAR_SCRIPT_LATIN/*66*/ } }, + { "rn", { UCHAR_SCRIPT_LATIN/*52*/ } }, + { "ro", { UCHAR_SCRIPT_LATIN/*62*/ } }, + { "ru", { UCHAR_SCRIPT_CYRILLIC/*66*/ } }, + { "rw", { UCHAR_SCRIPT_LATIN/*52*/ } }, + { "sa", { UCHAR_SCRIPT_DEVANAGARI/*68*/ } }, + { "sah", { UCHAR_SCRIPT_CYRILLIC/*76*/ } }, + { "sat", { UCHAR_SCRIPT_DEVANAGARI/*68*/ } }, + { "sc", { UCHAR_SCRIPT_LATIN/*62*/ } }, + { "sco", { UCHAR_SCRIPT_LATIN/*56*/ } }, + { "sd", { UCHAR_SCRIPT_ARABIC/*54*/ } }, + { "se", { UCHAR_SCRIPT_LATIN/*66*/ } }, + { "sel", { UCHAR_SCRIPT_CYRILLIC/*66*/ } }, + { "sg", { UCHAR_SCRIPT_LATIN/*72*/ } }, + { "sh", { UCHAR_SCRIPT_CYRILLIC/*94*/, UCHAR_SCRIPT_LATIN/*62*/ } }, + { "shs", { UCHAR_SCRIPT_LATIN/*46*/ } }, + { "si", { UCHAR_SCRIPT_SINHALA/*73*/ } }, + { "sid", { UCHAR_SCRIPT_ETHIOPIC/*281*/ } }, + { "sk", { UCHAR_SCRIPT_LATIN/*86*/ } }, + { "sl", { UCHAR_SCRIPT_LATIN/*62*/ } }, + { "sm", { UCHAR_SCRIPT_LATIN/*52*/ } }, + { "sma", { UCHAR_SCRIPT_LATIN/*60*/ } }, + { "smj", { UCHAR_SCRIPT_LATIN/*60*/ } }, + { "smn", { UCHAR_SCRIPT_LATIN/*68*/ } }, + { "sms", { UCHAR_SCRIPT_LATIN/*80*/ } }, + { "sn", { UCHAR_SCRIPT_LATIN/*52*/ } }, + { "so", { UCHAR_SCRIPT_LATIN/*52*/ } }, + { "sq", { UCHAR_SCRIPT_LATIN/*56*/ } }, + { "sr", { UCHAR_SCRIPT_CYRILLIC/*60*/ } }, + { "ss", { UCHAR_SCRIPT_LATIN/*52*/ } }, + { "st", { UCHAR_SCRIPT_LATIN/*52*/ } }, + { "su", { UCHAR_SCRIPT_LATIN/*54*/ } }, + { "sv", { UCHAR_SCRIPT_LATIN/*68*/ } }, + { "sw", { UCHAR_SCRIPT_LATIN/*52*/ } }, + { "syr", { UCHAR_SCRIPT_SYRIAC/*45*/ } }, + { "ta", { UCHAR_SCRIPT_TAMIL/*48*/ } }, + { "te", { UCHAR_SCRIPT_TELUGU/*70*/ } }, + { "tg", { UCHAR_SCRIPT_CYRILLIC/*78*/ } }, + { "th", { UCHAR_SCRIPT_THAI/*73*/ } }, + { "ti-er", { UCHAR_SCRIPT_ETHIOPIC/*255*/ } }, + { "ti-et", { UCHAR_SCRIPT_ETHIOPIC/*281*/ } }, + { "tig", { UCHAR_SCRIPT_ETHIOPIC/*221*/ } }, + { "tk", { UCHAR_SCRIPT_LATIN/*68*/ } }, + { "tl", { UCHAR_SCRIPT_LATIN/*84*/ } }, + { "tn", { UCHAR_SCRIPT_LATIN/*58*/ } }, + { "to", { UCHAR_SCRIPT_LATIN/*52*/ } }, + { "tr", { UCHAR_SCRIPT_LATIN/*70*/ } }, + { "ts", { UCHAR_SCRIPT_LATIN/*52*/ } }, + { "tt", { UCHAR_SCRIPT_CYRILLIC/*76*/ } }, + { "tw", { UCHAR_SCRIPT_LATIN/*70*/ } }, + { "ty", { UCHAR_SCRIPT_LATIN/*64*/ } }, + { "tyv", { UCHAR_SCRIPT_CYRILLIC/*70*/ } }, + { "ug", { UCHAR_SCRIPT_ARABIC/*33*/ } }, + { "uk", { UCHAR_SCRIPT_CYRILLIC/*72*/ } }, + { "ur", { UCHAR_SCRIPT_ARABIC/*27*/ } }, + { "uz", { UCHAR_SCRIPT_LATIN/*52*/ } }, + { "ve", { UCHAR_SCRIPT_LATIN/*62*/ } }, + { "vi", { UCHAR_SCRIPT_LATIN/*186*/ } }, + { "vo", { UCHAR_SCRIPT_LATIN/*54*/ } }, + { "vot", { UCHAR_SCRIPT_LATIN/*62*/ } }, + { "wa", { UCHAR_SCRIPT_LATIN/*70*/ } }, + { "wal", { UCHAR_SCRIPT_ETHIOPIC/*281*/ } }, + { "wen", { UCHAR_SCRIPT_LATIN/*76*/ } }, + { "wo", { UCHAR_SCRIPT_LATIN/*66*/ } }, + { "xh", { UCHAR_SCRIPT_LATIN/*52*/ } }, + { "yap", { UCHAR_SCRIPT_LATIN/*58*/ } }, + { "yi", { UCHAR_SCRIPT_HEBREW/*27*/ } }, + { "yo", { UCHAR_SCRIPT_LATIN/*114*/ } }, + { "za", { UCHAR_SCRIPT_LATIN/*52*/ } }, + { "zh-cn", { UCHAR_SCRIPT_HAN/*6763*/ } }, + { "zh-hk", { UCHAR_SCRIPT_HAN/*1083*/ } }, + { "zh-mo", { UCHAR_SCRIPT_HAN/*1083*/ } }, + { "zh-sg", { UCHAR_SCRIPT_HAN/*6763*/ } }, + { "zh-tw", { UCHAR_SCRIPT_HAN/*13063*/ } }, + { "zu", { UCHAR_SCRIPT_LATIN/*52*/ } } +}; diff --git a/src/font/unicode-script.c b/src/font/unicode-script.c index fc4d2522..5d235971 100644 --- a/src/font/unicode-script.c +++ b/src/font/unicode-script.c @@ -291,8 +291,6 @@ int GUIAPI UCharScriptTypeFromISO15924 (Uint32 iso15924) #include "script-language-table.inc" -static int (*compar)(const void *, const void *); - static int comp_lang(const void *k1, const void *k2) { UCharScriptTypeForLang *sl1 = (UCharScriptTypeForLang*) k1;