summaryrefslogtreecommitdiff
path: root/pango/pango-ot-tag.c
diff options
context:
space:
mode:
authorBehdad Esfahbod <behdad@behdad.org>2012-08-23 20:42:03 -0400
committerBehdad Esfahbod <behdad@behdad.org>2012-08-23 23:15:24 -0400
commit6d6c556e9c725a4a69a94dbe045463ea4b855e4a (patch)
tree36d1398557a7baad27a1ff9ebc184303b961afe5 /pango/pango-ot-tag.c
parentebec5460f452115e9551761b60ae389dacc46185 (diff)
downloadpango-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.c521
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)));
}