diff options
author | Behdad Esfahbod <behdad@behdad.org> | 2012-08-23 20:42:03 -0400 |
---|---|---|
committer | Behdad Esfahbod <behdad@behdad.org> | 2012-08-23 23:15:24 -0400 |
commit | 6d6c556e9c725a4a69a94dbe045463ea4b855e4a (patch) | |
tree | 36d1398557a7baad27a1ff9ebc184303b961afe5 /pango/pango-ot-tag.c | |
parent | ebec5460f452115e9551761b60ae389dacc46185 (diff) | |
download | pango-6d6c556e9c725a4a69a94dbe045463ea4b855e4a.tar.gz |
Deprecate pango-ot.h
Still needs document Deprecated tags to be done.
Soon to add pango-hb.h
Diffstat (limited to 'pango/pango-ot-tag.c')
-rw-r--r-- | pango/pango-ot-tag.c | 521 |
1 files changed, 7 insertions, 514 deletions
diff --git a/pango/pango-ot-tag.c b/pango/pango-ot-tag.c index 756d051f..73628ac6 100644 --- a/pango/pango-ot-tag.c +++ b/pango/pango-ot-tag.c @@ -21,7 +21,7 @@ #include "config.h" -#include "pango-ot.h" +#include "pango-ot-private.h" typedef union { char string[4]; @@ -125,12 +125,9 @@ static const Tag ot_scripts[] = { PangoOTTag pango_ot_tag_from_script (PangoScript script) { - g_return_val_if_fail (script >= 0, PANGO_OT_TAG_DEFAULT_SCRIPT); - - if ((guint)script >= G_N_ELEMENTS (ot_scripts)) - return PANGO_OT_TAG_DEFAULT_SCRIPT; - - return GUINT32_FROM_BE (ot_scripts[script].integer); + hb_tag_t tag1, tag2; + hb_ot_tags_from_script (hb_glib_script_to_script (script), &tag1, &tag2); + return (PangoOTTag) tag1; } /** @@ -157,460 +154,10 @@ pango_ot_tag_from_script (PangoScript script) PangoScript pango_ot_tag_to_script (PangoOTTag script_tag) { - PangoScript i; - guint32 be_tag = GUINT32_TO_BE (script_tag); - - for (i = 0; i < (PangoScript) G_N_ELEMENTS (ot_scripts); i++) - { - guint32 tag = ot_scripts[i].integer; - - if (tag == be_tag) - return i; - } - - return PANGO_SCRIPT_UNKNOWN; + return (PangoScript) hb_glib_script_from_script (hb_ot_tag_to_script ((hb_tag_t) script_tag)); } -typedef struct { - char language[6]; - Tag tag; -} LangTag; - -/* - * complete list at: - * http://www.microsoft.com/OpenType/OTSpec/languagetags.htm - * - * Generated by intersecting the OpenType language tag list from - * Draft OpenType 1.5 spec, with with the ISO 639-3 codes from - * 2008/08/04, matching on name, and finally adjusted manually. - * - * Many items still missing. Those are commented out at the end. - * Keep sorted for bsearch. - */ -static const LangTag ot_languages[] = { - {"aa", {"AFR "}}, /* Afar */ - {"ab", {"ABK "}}, /* Abkhazian */ - {"abq", {"ABA "}}, /* Abaza */ - {"ady", {"ADY "}}, /* Adyghe */ - {"af", {"AFK "}}, /* Afrikaans */ - {"aiw", {"ARI "}}, /* Aari */ - {"am", {"AMH "}}, /* Amharic */ - {"ar", {"ARA "}}, /* Arabic */ - {"arn", {"MAP "}}, /* Mapudungun */ - {"as", {"ASM "}}, /* Assamese */ - {"av", {"AVR "}}, /* Avaric */ - {"awa", {"AWA "}}, /* Awadhi */ - {"ay", {"AYM "}}, /* Aymara */ - {"az", {"AZE "}}, /* Azerbaijani */ - {"ba", {"BSH "}}, /* Bashkir */ - {"bal", {"BLI "}}, /* Baluchi */ - {"bcq", {"BCH "}}, /* Bench */ - {"bem", {"BEM "}}, /* Bemba (Zambia) */ - {"bfq", {"BAD "}}, /* Badaga */ - {"bft", {"BLT "}}, /* Balti */ - {"bg", {"BGR "}}, /* Bulgarian */ - {"bhb", {"BHI "}}, /* Bhili */ - {"bho", {"BHO "}}, /* Bhojpuri */ - {"bik", {"BIK "}}, /* Bikol */ - {"bin", {"EDO "}}, /* Bini */ - {"bm", {"BMB "}}, /* Bambara */ - {"bn", {"BEN "}}, /* Bengali */ - {"bo", {"TIB "}}, /* Tibetan */ - {"br", {"BRE "}}, /* Breton */ - {"brh", {"BRH "}}, /* Brahui */ - {"bs", {"BOS "}}, /* Bosnian */ - {"btb", {"BTI "}}, /* Beti (Cameroon) */ - {"ca", {"CAT "}}, /* Catalan */ - {"ce", {"CHE "}}, /* Chechen */ - {"ceb", {"CEB "}}, /* Cebuano */ - {"chp", {"CHP "}}, /* Chipewyan */ - {"chr", {"CHR "}}, /* Cherokee */ - {"cop", {"COP "}}, /* Coptic */ - {"cr", {"CRE "}}, /* Cree */ - {"crh", {"CRT "}}, /* Crimean Tatar */ - {"crm", {"MCR "}}, /* Moose Cree */ - {"crx", {"CRR "}}, /* Carrier */ - {"cs", {"CSY "}}, /* Czech */ - {"cu", {"CSL "}}, /* Church Slavic */ - {"cv", {"CHU "}}, /* Chuvash */ - {"cwd", {"DCR "}}, /* Woods Cree */ - {"cy", {"WEL "}}, /* Welsh */ - {"da", {"DAN "}}, /* Danish */ - {"dap", {"NIS "}}, /* Nisi (India) */ - {"dar", {"DAR "}}, /* Dargwa */ - {"de", {"DEU "}}, /* German */ - {"din", {"DNK "}}, /* Dinka */ - {"dng", {"DUN "}}, /* Dungan */ - {"doi", {"DGR "}}, /* Dogri */ - {"dsb", {"LSB "}}, /* Lower Sorbian */ - {"dv", {"DIV "}}, /* Dhivehi */ - {"dz", {"DZN "}}, /* Dzongkha */ - {"ee", {"EWE "}}, /* Ewe */ - {"efi", {"EFI "}}, /* Efik */ - {"el", {"ELL "}}, /* Modern Greek (1453-) */ - {"en", {"ENG "}}, /* English */ - {"eo", {"NTO "}}, /* Esperanto */ - {"eot", {"BTI "}}, /* Beti (Côte d'Ivoire) */ - {"es", {"ESP "}}, /* Spanish */ - {"et", {"ETI "}}, /* Estonian */ - {"eu", {"EUQ "}}, /* Basque */ - {"eve", {"EVN "}}, /* Even */ - {"evn", {"EVK "}}, /* Evenki */ - {"fa", {"FAR "}}, /* Persian */ - {"ff", {"FUL "}}, /* Fulah */ - {"fi", {"FIN "}}, /* Finnish */ - {"fil", {"PIL "}}, /* Filipino */ - {"fj", {"FJI "}}, /* Fijian */ - {"fo", {"FOS "}}, /* Faroese */ - {"fon", {"FON "}}, /* Fon */ - {"fr", {"FRA "}}, /* French */ - {"fur", {"FRL "}}, /* Friulian */ - {"fy", {"FRI "}}, /* Western Frisian */ - {"ga", {"IRI "}}, /* Irish */ - {"gaa", {"GAD "}}, /* Ga */ - {"gag", {"GAG "}}, /* Gagauz */ - {"gbm", {"GAW "}}, /* Garhwali */ - {"gd", {"GAE "}}, /* Scottish Gaelic */ - {"gl", {"GAL "}}, /* Galician */ - {"gld", {"NAN "}}, /* Nanai */ - {"gn", {"GUA "}}, /* Guarani */ - {"gon", {"GON "}}, /* Gondi */ - {"grt", {"GRO "}}, /* Garo */ - {"gu", {"GUJ "}}, /* Gujarati */ - {"guk", {"GMZ "}}, /* Gumuz */ - {"gv", {"MNX "}}, /* Manx Gaelic */ - {"ha", {"HAU "}}, /* Hausa */ - {"har", {"HRI "}}, /* Harari */ - {"he", {"IWR "}}, /* Hebrew */ - {"hi", {"HIN "}}, /* Hindi */ - {"hil", {"HIL "}}, /* Hiligaynon */ - {"hoc", {"HO "}}, /* Ho */ - {"hr", {"HRV "}}, /* Croatian */ - {"hsb", {"USB "}}, /* Upper Sorbian */ - {"ht", {"HAI "}}, /* Haitian */ - {"hu", {"HUN "}}, /* Hungarian */ - {"hy", {"HYE "}}, /* Armenian */ - {"id", {"IND "}}, /* Indonesian */ - {"ig", {"IBO "}}, /* Igbo */ - {"igb", {"EBI "}}, /* Ebira */ - {"inh", {"ING "}}, /* Ingush */ - {"is", {"ISL "}}, /* Icelandic */ - {"it", {"ITA "}}, /* Italian */ - {"iu", {"INU "}}, /* Inuktitut */ - {"ja", {"JAN "}}, /* Japanese */ - {"jv", {"JAV "}}, /* Javanese */ - {"ka", {"KAT "}}, /* Georgian */ - {"kam", {"KMB "}}, /* Kamba (Kenya) */ - {"kbd", {"KAB "}}, /* Kabardian */ - {"kdr", {"KRM "}}, /* Karaim */ - {"kdt", {"KUY "}}, /* Kuy */ - {"kfr", {"KAC "}}, /* Kachchi */ - {"kfy", {"KMN "}}, /* Kumaoni */ - {"kha", {"KSI "}}, /* Khasi */ - {"khw", {"KHW "}}, /* Khowar */ - {"ki", {"KIK "}}, /* Kikuyu */ - {"kk", {"KAZ "}}, /* Kazakh */ - {"kl", {"GRN "}}, /* Kalaallisut */ - {"kln", {"KAL "}}, /* Kalenjin */ - {"km", {"KHM "}}, /* Central Khmer */ - {"kmw", {"KMO "}}, /* Komo (Democratic Republic of Congo) */ - {"kn", {"KAN "}}, /* Kannada */ - {"ko", {"KOR "}}, /* Korean */ - {"koi", {"KOP "}}, /* Komi-Permyak */ - {"kok", {"KOK "}}, /* Konkani */ - {"kpe", {"KPL "}}, /* Kpelle */ - {"kpv", {"KOZ "}}, /* Komi-Zyrian */ - {"kpy", {"KYK "}}, /* Koryak */ - {"kqy", {"KRT "}}, /* Koorete */ - {"kr", {"KNR "}}, /* Kanuri */ - {"kri", {"KRI "}}, /* Krio */ - {"krl", {"KRL "}}, /* Karelian */ - {"kru", {"KUU "}}, /* Kurukh */ - {"ks", {"KSH "}}, /* Kashmiri */ - {"ku", {"KUR "}}, /* Kurdish */ - {"kum", {"KUM "}}, /* Kumyk */ - {"kvd", {"KUI "}}, /* Kui (Indonesia) */ - {"kxu", {"KUI "}}, /* Kui (India) */ - {"ky", {"KIR "}}, /* Kirghiz */ - {"la", {"LAT "}}, /* Latin */ - {"lad", {"JUD "}}, /* Ladino */ - {"lb", {"LTZ "}}, /* Luxembourgish */ - {"lbe", {"LAK "}}, /* Lak */ - {"lbj", {"LDK "}}, /* Ladakhi */ - {"lif", {"LMB "}}, /* Limbu */ - {"lld", {"LAD "}}, /* Ladin */ - {"ln", {"LIN "}}, /* Lingala */ - {"lo", {"LAO "}}, /* Lao */ - {"lt", {"LTH "}}, /* Lithuanian */ - {"luo", {"LUO "}}, /* Luo (Kenya and Tanzania) */ - {"luw", {"LUO "}}, /* Luo (Cameroon) */ - {"lv", {"LVI "}}, /* Latvian */ - {"lzz", {"LAZ "}}, /* Laz */ - {"mai", {"MTH "}}, /* Maithili */ - {"mdc", {"MLE "}}, /* Male (Papua New Guinea) */ - {"mdf", {"MOK "}}, /* Moksha */ - {"mdy", {"MLE "}}, /* Male (Ethiopia) */ - {"men", {"MDE "}}, /* Mende (Sierra Leone) */ - {"mg", {"MLG "}}, /* Malagasy */ - {"mi", {"MRI "}}, /* Maori */ - {"mk", {"MKD "}}, /* Macedonian */ - {"ml", {"MLR "}}, /* Malayalam */ - {"mn", {"MNG "}}, /* Mongolian */ - {"mnc", {"MCH "}}, /* Manchu */ - {"mni", {"MNI "}}, /* Manipuri */ - {"mnk", {"MND "}}, /* Mandinka */ - {"mns", {"MAN "}}, /* Mansi */ - {"mnw", {"MON "}}, /* Mon */ - {"mo", {"MOL "}}, /* Moldavian */ - {"moh", {"MOH "}}, /* Mohawk */ - {"mpe", {"MAJ "}}, /* Majang */ - {"mr", {"MAR "}}, /* Marathi */ - {"ms", {"MLY "}}, /* Malay */ - {"mt", {"MTS "}}, /* Maltese */ - {"mwr", {"MAW "}}, /* Marwari */ - {"my", {"BRM "}}, /* Burmese */ - {"mym", {"MEN "}}, /* Me'en */ - {"myv", {"ERZ "}}, /* Erzya */ - {"nb", {"NOR "}}, /* Norwegian Bokmål */ - {"nco", {"SIB "}}, /* Sibe */ - {"ne", {"NEP "}}, /* Nepali */ - {"new", {"NEW "}}, /* Newari */ - {"ng", {"NDG "}}, /* Ndonga */ - {"ngl", {"LMW "}}, /* Lomwe */ - {"niu", {"NIU "}}, /* Niuean */ - {"niv", {"GIL "}}, /* Gilyak */ - {"nl", {"NLD "}}, /* Dutch */ - {"nn", {"NYN "}}, /* Norwegian Nynorsk */ - {"no", {"NOR "}}, /* Norwegian (deprecated) */ - {"nog", {"NOG "}}, /* Nogai */ - {"nqo", {"NKO "}}, /* N'Ko */ - {"nsk", {"NAS "}}, /* Naskapi */ - {"ny", {"CHI "}}, /* Nyanja */ - {"oc", {"OCI "}}, /* Occitan (post 1500) */ - {"oj", {"OJB "}}, /* Ojibwa */ - {"om", {"ORO "}}, /* Oromo */ - {"or", {"ORI "}}, /* Oriya */ - {"os", {"OSS "}}, /* Ossetian */ - {"pa", {"PAN "}}, /* Panjabi */ - {"pi", {"PAL "}}, /* Pali */ - {"pl", {"PLK "}}, /* Polish */ - {"plp", {"PAP "}}, /* Palpa */ - {"prs", {"DRI "}}, /* Dari */ - {"ps", {"PAS "}}, /* Pushto */ - {"pt", {"PTG "}}, /* Portuguese */ - {"raj", {"RAJ "}}, /* Rajasthani */ - {"ria", {"RIA "}}, /* Riang (India) */ - {"ril", {"RIA "}}, /* Riang (Myanmar) */ - {"ro", {"ROM "}}, /* Romanian */ - {"rom", {"ROY "}}, /* Romany */ - {"ru", {"RUS "}}, /* Russian */ - {"rue", {"RSY "}}, /* Rusyn */ - {"sa", {"SAN "}}, /* Sanskrit */ - {"sah", {"YAK "}}, /* Yakut */ - {"sat", {"SAT "}}, /* Santali */ - {"sck", {"SAD "}}, /* Sadri */ - {"sd", {"SND "}}, /* Sindhi */ - {"se", {"NSM "}}, /* Northern Sami */ - {"seh", {"SNA "}}, /* Sena */ - {"sel", {"SEL "}}, /* Selkup */ - {"sg", {"SGO "}}, /* Sango */ - {"shn", {"SHN "}}, /* Shan */ - {"si", {"SNH "}}, /* Sinhala */ - {"sid", {"SID "}}, /* Sidamo */ - {"sjd", {"KSM "}}, /* Kildin Sami */ - {"sk", {"SKY "}}, /* Slovak */ - {"skr", {"SRK "}}, /* Seraiki */ - {"sl", {"SLV "}}, /* Slovenian */ - {"sm", {"SMO "}}, /* Samoan */ - {"sma", {"SSM "}}, /* Southern Sami */ - {"smj", {"LSM "}}, /* Lule Sami */ - {"smn", {"ISM "}}, /* Inari Sami */ - {"sms", {"SKS "}}, /* Skolt Sami */ - {"snk", {"SNK "}}, /* Soninke */ - {"so", {"SML "}}, /* Somali */ - {"sq", {"SQI "}}, /* Albanian */ - {"sr", {"SRB "}}, /* Serbian */ - {"srr", {"SRR "}}, /* Serer */ - {"suq", {"SUR "}}, /* Suri */ - {"sv", {"SVE "}}, /* Swedish */ - {"sva", {"SVA "}}, /* Svan */ - {"sw", {"SWK "}}, /* Swahili */ - {"swb", {"CMR "}}, /* Comorian */ - {"syr", {"SYR "}}, /* Syriac */ - {"ta", {"TAM "}}, /* Tamil */ - {"tcy", {"TUL "}}, /* Tulu */ - {"te", {"TEL "}}, /* Telugu */ - {"tg", {"TAJ "}}, /* Tajik */ - {"th", {"THA "}}, /* Thai */ - {"ti", {"TGY "}}, /* Tigrinya */ - {"tig", {"TGR "}}, /* Tigre */ - {"tk", {"TKM "}}, /* Turkmen */ - {"tn", {"TNA "}}, /* Tswana */ - {"tnz", {"TNG "}}, /* Tonga (Thailand) */ - {"to", {"TNG "}}, /* Tonga (Tonga Islands) */ - {"tog", {"TNG "}}, /* Tonga (Nyasa) */ - {"toi", {"TNG "}}, /* Tonga (Zambia) */ - {"tr", {"TRK "}}, /* Turkish */ - {"ts", {"TSG "}}, /* Tsonga */ - {"tt", {"TAT "}}, /* Tatar */ - {"tw", {"TWI "}}, /* Twi */ - {"ty", {"THT "}}, /* Tahitian */ - {"udm", {"UDM "}}, /* Udmurt */ - {"ug", {"UYG "}}, /* Uighur */ - {"uk", {"UKR "}}, /* Ukrainian */ - {"unr", {"MUN "}}, /* Mundari */ - {"ur", {"URD "}}, /* Urdu */ - {"uz", {"UZB "}}, /* Uzbek */ - {"ve", {"VEN "}}, /* Venda */ - {"vi", {"VIT "}}, /* Vietnamese */ - {"wbm", {"WA "}}, /* Wa */ - {"wbr", {"WAG "}}, /* Wagdi */ - {"wo", {"WLF "}}, /* Wolof */ - {"xal", {"KLM "}}, /* Kalmyk */ - {"xh", {"XHS "}}, /* Xhosa */ - {"xom", {"KMO "}}, /* Komo (Sudan) */ - {"xsl", {"SSL "}}, /* South Slavey */ - {"yi", {"JII "}}, /* Yiddish */ - {"yo", {"YBA "}}, /* Yoruba */ - {"yso", {"NIS "}}, /* Nisi (China) */ - {"zh-cn", {"ZHS "}}, /* Chinese (China) */ - {"zh-hk", {"ZHH "}}, /* Chinese (Hong Kong) */ - {"zh-mo", {"ZHT "}}, /* Chinese (Macao) */ - {"zh-sg", {"ZHS "}}, /* Chinese (Singapore) */ - {"zh-tw", {"ZHT "}}, /* Chinese (Taiwan) */ - {"zne", {"ZND "}}, /* Zande */ - {"zu", {"ZUL "}} /* Zulu */ - - /* I couldn't find the language id for these */ - -/*{"??", {"AGW "}},*/ /* Agaw */ -/*{"??", {"ALS "}},*/ /* Alsatian */ -/*{"??", {"ALT "}},*/ /* Altai */ -/*{"??", {"ARK "}},*/ /* Arakanese */ -/*{"??", {"ATH "}},*/ /* Athapaskan */ -/*{"??", {"BAG "}},*/ /* Baghelkhandi */ -/*{"??", {"BAL "}},*/ /* Balkar */ -/*{"??", {"BAU "}},*/ /* Baule */ -/*{"??", {"BBR "}},*/ /* Berber */ -/*{"??", {"BCR "}},*/ /* Bible Cree */ -/*{"??", {"BEL "}},*/ /* Belarussian */ -/*{"??", {"BIL "}},*/ /* Bilen */ -/*{"??", {"BKF "}},*/ /* Blackfoot */ -/*{"??", {"BLN "}},*/ /* Balante */ -/*{"??", {"BML "}},*/ /* Bamileke */ -/*{"??", {"BRI "}},*/ /* Braj Bhasha */ -/*{"??", {"CHG "}},*/ /* Chaha Gurage */ -/*{"??", {"CHH "}},*/ /* Chattisgarhi */ -/*{"??", {"CHK "}},*/ /* Chukchi */ -/*{"??", {"DJR "}},*/ /* Djerma */ -/*{"??", {"DNG "}},*/ /* Dangme */ -/*{"??", {"ECR "}},*/ /* Eastern Cree */ -/*{"??", {"FAN "}},*/ /* French Antillean */ -/*{"??", {"FLE "}},*/ /* Flemish */ -/*{"??", {"FNE "}},*/ /* Forest Nenets */ -/*{"??", {"FTA "}},*/ /* Futa */ -/*{"??", {"GAR "}},*/ /* Garshuni */ -/*{"??", {"GEZ "}},*/ /* Ge'ez */ -/*{"??", {"HAL "}},*/ /* Halam */ -/*{"??", {"HAR "}},*/ /* Harauti */ -/*{"??", {"HAW "}},*/ /* Hawaiin */ -/*{"??", {"HBN "}},*/ /* Hammer-Banna */ -/*{"??", {"HMA "}},*/ /* High Mari */ -/*{"??", {"HND "}},*/ /* Hindko */ -/*{"??", {"IJO "}},*/ /* Ijo */ -/*{"??", {"ILO "}},*/ /* Ilokano */ -/*{"??", {"IRT "}},*/ /* Irish Traditional */ -/*{"??", {"JUL "}},*/ /* Jula */ -/*{"??", {"KAR "}},*/ /* Karachay */ -/*{"??", {"KEB "}},*/ /* Kebena */ -/*{"??", {"KGE "}},*/ /* Khutsuri Georgian */ -/*{"??", {"KHA "}},*/ /* Khakass */ -/*{"??", {"KHK "}},*/ /* Khanty-Kazim */ -/*{"??", {"KHS "}},*/ /* Khanty-Shurishkar */ -/*{"??", {"KHV "}},*/ /* Khanty-Vakhi */ -/*{"??", {"KIS "}},*/ /* Kisii */ -/*{"??", {"KKN "}},*/ /* Kokni */ -/*{"??", {"KMS "}},*/ /* Komso */ -/*{"??", {"KOD "}},*/ /* Kodagu */ -/*{"??", {"KOH "}},*/ /* Korean Old Hangul */ -/*{"??", {"KON "}},*/ /* Kikongo */ -/*{"??", {"KRK "}},*/ /* Karakalpak */ -/*{"??", {"KRN "}},*/ /* Karen */ -/*{"??", {"KUL "}},*/ /* Kulvi */ -/*{"??", {"LAH "}},*/ /* Lahuli */ -/*{"??", {"LAM "}},*/ /* Lambani */ -/*{"??", {"LCR "}},*/ /* L-Cree */ -/*{"??", {"LEZ "}},*/ /* Lezgi */ -/*{"??", {"LMA "}},*/ /* Low Mari */ -/*{"??", {"LUB "}},*/ /* Luba */ -/*{"??", {"LUG "}},*/ /* Luganda */ -/*{"??", {"LUH "}},*/ /* Luhya */ -/*{"??", {"MAK "}},*/ /* Makua */ -/*{"??", {"MAL "}},*/ /* Malayalam Traditional */ -/*{"??", {"MBN "}},*/ /* Mbundu */ -/*{"??", {"MIZ "}},*/ /* Mizo */ -/*{"??", {"MLN "}},*/ /* Malinke */ -/*{"??", {"MNK "}},*/ /* Maninka */ -/*{"??", {"MOR "}},*/ /* Moroccan */ -/*{"??", {"NAG "}},*/ /* Naga-Assamese */ -/*{"??", {"NCR "}},*/ /* N-Cree */ -/*{"??", {"NDB "}},*/ /* Ndebele */ -/*{"??", {"NGR "}},*/ /* Nagari */ -/*{"??", {"NHC "}},*/ /* Norway House Cree */ -/*{"??", {"NKL "}},*/ /* Nkole */ -/*{"??", {"NTA "}},*/ /* Northern Tai */ -/*{"??", {"OCR "}},*/ /* Oji-Cree */ -/*{"??", {"PAA "}},*/ /* Palestinian Aramaic */ -/*{"??", {"PGR "}},*/ /* Polytonic Greek */ -/*{"??", {"PLG "}},*/ /* Palaung */ -/*{"??", {"QIN "}},*/ /* Chin */ -/*{"??", {"RBU "}},*/ /* Russian Buriat */ -/*{"??", {"RCR "}},*/ /* R-Cree */ -/*{"??", {"RMS "}},*/ /* Rhaeto-Romanic */ -/*{"??", {"RUA "}},*/ /* Ruanda */ -/*{"??", {"SAY "}},*/ /* Sayisi */ -/*{"??", {"SEK "}},*/ /* Sekota */ -/*{"??", {"SIG "}},*/ /* Silte Gurage */ -/*{"??", {"SLA "}},*/ /* Slavey */ -/*{"??", {"SOG "}},*/ /* Sodo Gurage */ -/*{"??", {"SOT "}},*/ /* Sotho */ -/*{"??", {"SWA "}},*/ /* Swadaya Aramaic */ -/*{"??", {"SWZ "}},*/ /* Swazi */ -/*{"??", {"SXT "}},*/ /* Sutu */ -/*{"??", {"TAB "}},*/ /* Tabasaran */ -/*{"??", {"TCR "}},*/ /* TH-Cree */ -/*{"??", {"TGN "}},*/ /* Tongan */ -/*{"??", {"TMN "}},*/ /* Temne */ -/*{"??", {"TNE "}},*/ /* Tundra Nenets */ -/*{"??", {"TOD "}},*/ /* Todo */ -/*{"??", {"TUA "}},*/ /* Turoyo Aramaic */ -/*{"??", {"TUV "}},*/ /* Tuvin */ -/*{"??", {"WCR "}},*/ /* West-Cree */ -/*{"??", {"XBD "}},*/ /* Tai Lue */ -/*{"??", {"YCR "}},*/ /* Y-Cree */ -/*{"??", {"YIC "}},*/ /* Yi Classic */ -/*{"??", {"YIM "}},*/ /* Yi Modern */ -/*{"??", {"ZHP "}},*/ /* Chinese Phonetic */ -}; - -static int -lang_compare_first_component (gconstpointer pa, - gconstpointer pb) -{ - const char *a = pa, *b = pb; - unsigned int da, db; - const char *p; - - p = strstr (a, "-"); - da = p ? (unsigned int) (p - a) : strlen (a); - - p = strstr (b, "-"); - db = p ? (unsigned int) (p - b) : strlen (b); - - return strncmp (a, b, MAX (da, db)); -} - /** * pango_ot_tag_from_language: * @language: A #PangoLanguage, or %NULL @@ -626,50 +173,7 @@ lang_compare_first_component (gconstpointer pa, PangoOTTag pango_ot_tag_from_language (PangoLanguage *language) { - const char *lang_str; - LangTag *lang_tag; - - if (language == NULL) - return PANGO_OT_TAG_DEFAULT_LANGUAGE; - - lang_str = pango_language_to_string (language); - - /* find a language matching in the first component */ - lang_tag = bsearch (lang_str, ot_languages, - G_N_ELEMENTS (ot_languages), sizeof (LangTag), - lang_compare_first_component); - - /* we now need to find the best language matching */ - if (lang_tag) - { - gboolean found = FALSE; - - /* go to the final one matching in the first component */ - while (lang_tag + 1 < ot_languages + G_N_ELEMENTS (ot_languages) && - lang_compare_first_component (lang_str, lang_tag + 1) == 0) - lang_tag++; - - /* go back, find which one matches completely */ - while (lang_tag >= ot_languages && - lang_compare_first_component (lang_str, lang_tag) == 0) - { - if (pango_language_matches (language, lang_tag->language)) - { - found = TRUE; - break; - } - - lang_tag--; - } - - if (!found) - lang_tag = NULL; - } - - if (lang_tag) - return GUINT32_FROM_BE (lang_tag->tag.integer); - - return PANGO_OT_TAG_DEFAULT_LANGUAGE; + return (PangoOTTag) hb_ot_tag_from_language (hb_language_from_string (pango_language_to_string (language), -1)); } /** @@ -686,16 +190,5 @@ pango_ot_tag_from_language (PangoLanguage *language) PangoLanguage * pango_ot_tag_to_language (PangoOTTag language_tag) { - int i; - guint32 be_tag = GUINT32_TO_BE (language_tag); - - for (i = 0; i < (int) G_N_ELEMENTS (ot_languages); i++) - { - guint32 tag = ot_languages[i].tag.integer; - - if (tag == be_tag) - return pango_language_from_string (ot_languages[i].language); - } - - return pango_language_from_string ("xx"); + return pango_language_from_string (hb_language_to_string (hb_ot_tag_to_language ((hb_tag_t) language_tag))); } |