diff options
| author | Philipp Gesang <phg42.2a@gmail.com> | 2013-05-12 15:03:09 +0200 | 
|---|---|---|
| committer | Philipp Gesang <phg42.2a@gmail.com> | 2013-05-12 15:03:09 +0200 | 
| commit | fee9e2987699f1dd9bcd84b9a10e2b518a1641c7 (patch) | |
| tree | aa845efaa621ebd0be663b1cf958ca755a6e8704 | |
| parent | d8a8649ca9e2f25b028141e7d49e38a2840eb086 (diff) | |
| download | luaotfload-fee9e2987699f1dd9bcd84b9a10e2b518a1641c7.tar.gz | |
import script and language names from Context
| -rw-r--r-- | luaotfload-features.lua | 667 | 
1 files changed, 662 insertions, 5 deletions
| diff --git a/luaotfload-features.lua b/luaotfload-features.lua index 220b362..e732ed9 100644 --- a/luaotfload-features.lua +++ b/luaotfload-features.lua @@ -93,6 +93,640 @@ defaults.tibt = defaults.khmr  defaults.lao  = defaults.thai +---[[ begin excerpt from font-ott.lua ]] + +local scripts = { +    ['arab'] = 'arabic', +    ['armn'] = 'armenian', +    ['bali'] = 'balinese', +    ['beng'] = 'bengali', +    ['bopo'] = 'bopomofo', +    ['brai'] = 'braille', +    ['bugi'] = 'buginese', +    ['buhd'] = 'buhid', +    ['byzm'] = 'byzantine music', +    ['cans'] = 'canadian syllabics', +    ['cher'] = 'cherokee', +    ['copt'] = 'coptic', +    ['cprt'] = 'cypriot syllabary', +    ['cyrl'] = 'cyrillic', +    ['deva'] = 'devanagari', +    ['dsrt'] = 'deseret', +    ['ethi'] = 'ethiopic', +    ['geor'] = 'georgian', +    ['glag'] = 'glagolitic', +    ['goth'] = 'gothic', +    ['grek'] = 'greek', +    ['gujr'] = 'gujarati', +    ['guru'] = 'gurmukhi', +    ['hang'] = 'hangul', +    ['hani'] = 'cjk ideographic', +    ['hano'] = 'hanunoo', +    ['hebr'] = 'hebrew', +    ['ital'] = 'old italic', +    ['jamo'] = 'hangul jamo', +    ['java'] = 'javanese', +    ['kana'] = 'hiragana and katakana', +    ['khar'] = 'kharosthi', +    ['khmr'] = 'khmer', +    ['knda'] = 'kannada', +    ['lao' ] = 'lao', +    ['latn'] = 'latin', +    ['limb'] = 'limbu', +    ['linb'] = 'linear b', +    ['math'] = 'mathematical alphanumeric symbols', +    ['mlym'] = 'malayalam', +    ['mong'] = 'mongolian', +    ['musc'] = 'musical symbols', +    ['mymr'] = 'myanmar', +    ['nko' ] = "n'ko", +    ['ogam'] = 'ogham', +    ['orya'] = 'oriya', +    ['osma'] = 'osmanya', +    ['phag'] = 'phags-pa', +    ['phnx'] = 'phoenician', +    ['runr'] = 'runic', +    ['shaw'] = 'shavian', +    ['sinh'] = 'sinhala', +    ['sylo'] = 'syloti nagri', +    ['syrc'] = 'syriac', +    ['tagb'] = 'tagbanwa', +    ['tale'] = 'tai le', +    ['talu'] = 'tai lu', +    ['taml'] = 'tamil', +    ['telu'] = 'telugu', +    ['tfng'] = 'tifinagh', +    ['tglg'] = 'tagalog', +    ['thaa'] = 'thaana', +    ['thai'] = 'thai', +    ['tibt'] = 'tibetan', +    ['ugar'] = 'ugaritic cuneiform', +    ['xpeo'] = 'old persian cuneiform', +    ['xsux'] = 'sumero-akkadian cuneiform', +    ['yi'  ] = 'yi', +} + +local languages = { +    ['aba'] = 'abaza', +    ['abk'] = 'abkhazian', +    ['ady'] = 'adyghe', +    ['afk'] = 'afrikaans', +    ['afr'] = 'afar', +    ['agw'] = 'agaw', +    ['als'] = 'alsatian', +    ['alt'] = 'altai', +    ['amh'] = 'amharic', +    ['ara'] = 'arabic', +    ['ari'] = 'aari', +    ['ark'] = 'arakanese', +    ['asm'] = 'assamese', +    ['ath'] = 'athapaskan', +    ['avr'] = 'avar', +    ['awa'] = 'awadhi', +    ['aym'] = 'aymara', +    ['aze'] = 'azeri', +    ['bad'] = 'badaga', +    ['bag'] = 'baghelkhandi', +    ['bal'] = 'balkar', +    ['bau'] = 'baule', +    ['bbr'] = 'berber', +    ['bch'] = 'bench', +    ['bcr'] = 'bible cree', +    ['bel'] = 'belarussian', +    ['bem'] = 'bemba', +    ['ben'] = 'bengali', +    ['bgr'] = 'bulgarian', +    ['bhi'] = 'bhili', +    ['bho'] = 'bhojpuri', +    ['bik'] = 'bikol', +    ['bil'] = 'bilen', +    ['bkf'] = 'blackfoot', +    ['bli'] = 'balochi', +    ['bln'] = 'balante', +    ['blt'] = 'balti', +    ['bmb'] = 'bambara', +    ['bml'] = 'bamileke', +    ['bos'] = 'bosnian', +    ['bre'] = 'breton', +    ['brh'] = 'brahui', +    ['bri'] = 'braj bhasha', +    ['brm'] = 'burmese', +    ['bsh'] = 'bashkir', +    ['bti'] = 'beti', +    ['cat'] = 'catalan', +    ['ceb'] = 'cebuano', +    ['che'] = 'chechen', +    ['chg'] = 'chaha gurage', +    ['chh'] = 'chattisgarhi', +    ['chi'] = 'chichewa', +    ['chk'] = 'chukchi', +    ['chp'] = 'chipewyan', +    ['chr'] = 'cherokee', +    ['chu'] = 'chuvash', +    ['cmr'] = 'comorian', +    ['cop'] = 'coptic', +    ['cos'] = 'corsican', +    ['cre'] = 'cree', +    ['crr'] = 'carrier', +    ['crt'] = 'crimean tatar', +    ['csl'] = 'church slavonic', +    ['csy'] = 'czech', +    ['dan'] = 'danish', +    ['dar'] = 'dargwa', +    ['dcr'] = 'woods cree', +    ['deu'] = 'german', +    ['dgr'] = 'dogri', +    ['div'] = 'divehi', +    ['djr'] = 'djerma', +    ['dng'] = 'dangme', +    ['dnk'] = 'dinka', +    ['dri'] = 'dari', +    ['dun'] = 'dungan', +    ['dzn'] = 'dzongkha', +    ['ebi'] = 'ebira', +    ['ecr'] = 'eastern cree', +    ['edo'] = 'edo', +    ['efi'] = 'efik', +    ['ell'] = 'greek', +    ['eng'] = 'english', +    ['erz'] = 'erzya', +    ['esp'] = 'spanish', +    ['eti'] = 'estonian', +    ['euq'] = 'basque', +    ['evk'] = 'evenki', +    ['evn'] = 'even', +    ['ewe'] = 'ewe', +    ['fan'] = 'french antillean', +    ['far'] = 'farsi', +    ['fin'] = 'finnish', +    ['fji'] = 'fijian', +    ['fle'] = 'flemish', +    ['fne'] = 'forest nenets', +    ['fon'] = 'fon', +    ['fos'] = 'faroese', +    ['fra'] = 'french', +    ['fri'] = 'frisian', +    ['frl'] = 'friulian', +    ['fta'] = 'futa', +    ['ful'] = 'fulani', +    ['gad'] = 'ga', +    ['gae'] = 'gaelic', +    ['gag'] = 'gagauz', +    ['gal'] = 'galician', +    ['gar'] = 'garshuni', +    ['gaw'] = 'garhwali', +    ['gez'] = "ge'ez", +    ['gil'] = 'gilyak', +    ['gmz'] = 'gumuz', +    ['gon'] = 'gondi', +    ['grn'] = 'greenlandic', +    ['gro'] = 'garo', +    ['gua'] = 'guarani', +    ['guj'] = 'gujarati', +    ['hai'] = 'haitian', +    ['hal'] = 'halam', +    ['har'] = 'harauti', +    ['hau'] = 'hausa', +    ['haw'] = 'hawaiin', +    ['hbn'] = 'hammer-banna', +    ['hil'] = 'hiligaynon', +    ['hin'] = 'hindi', +    ['hma'] = 'high mari', +    ['hnd'] = 'hindko', +    ['ho']  = 'ho', +    ['hri'] = 'harari', +    ['hrv'] = 'croatian', +    ['hun'] = 'hungarian', +    ['hye'] = 'armenian', +    ['ibo'] = 'igbo', +    ['ijo'] = 'ijo', +    ['ilo'] = 'ilokano', +    ['ind'] = 'indonesian', +    ['ing'] = 'ingush', +    ['inu'] = 'inuktitut', +    ['iri'] = 'irish', +    ['irt'] = 'irish traditional', +    ['isl'] = 'icelandic', +    ['ism'] = 'inari sami', +    ['ita'] = 'italian', +    ['iwr'] = 'hebrew', +    ['jan'] = 'japanese', +    ['jav'] = 'javanese', +    ['jii'] = 'yiddish', +    ['jud'] = 'judezmo', +    ['jul'] = 'jula', +    ['kab'] = 'kabardian', +    ['kac'] = 'kachchi', +    ['kal'] = 'kalenjin', +    ['kan'] = 'kannada', +    ['kar'] = 'karachay', +    ['kat'] = 'georgian', +    ['kaz'] = 'kazakh', +    ['keb'] = 'kebena', +    ['kge'] = 'khutsuri georgian', +    ['kha'] = 'khakass', +    ['khk'] = 'khanty-kazim', +    ['khm'] = 'khmer', +    ['khs'] = 'khanty-shurishkar', +    ['khv'] = 'khanty-vakhi', +    ['khw'] = 'khowar', +    ['kik'] = 'kikuyu', +    ['kir'] = 'kirghiz', +    ['kis'] = 'kisii', +    ['kkn'] = 'kokni', +    ['klm'] = 'kalmyk', +    ['kmb'] = 'kamba', +    ['kmn'] = 'kumaoni', +    ['kmo'] = 'komo', +    ['kms'] = 'komso', +    ['knr'] = 'kanuri', +    ['kod'] = 'kodagu', +    ['koh'] = 'korean old hangul', +    ['kok'] = 'konkani', +    ['kon'] = 'kikongo', +    ['kop'] = 'komi-permyak', +    ['kor'] = 'korean', +    ['koz'] = 'komi-zyrian', +    ['kpl'] = 'kpelle', +    ['kri'] = 'krio', +    ['krk'] = 'karakalpak', +    ['krl'] = 'karelian', +    ['krm'] = 'karaim', +    ['krn'] = 'karen', +    ['krt'] = 'koorete', +    ['ksh'] = 'kashmiri', +    ['ksi'] = 'khasi', +    ['ksm'] = 'kildin sami', +    ['kui'] = 'kui', +    ['kul'] = 'kulvi', +    ['kum'] = 'kumyk', +    ['kur'] = 'kurdish', +    ['kuu'] = 'kurukh', +    ['kuy'] = 'kuy', +    ['kyk'] = 'koryak', +    ['lad'] = 'ladin', +    ['lah'] = 'lahuli', +    ['lak'] = 'lak', +    ['lam'] = 'lambani', +    ['lao'] = 'lao', +    ['lat'] = 'latin', +    ['laz'] = 'laz', +    ['lcr'] = 'l-cree', +    ['ldk'] = 'ladakhi', +    ['lez'] = 'lezgi', +    ['lin'] = 'lingala', +    ['lma'] = 'low mari', +    ['lmb'] = 'limbu', +    ['lmw'] = 'lomwe', +    ['lsb'] = 'lower sorbian', +    ['lsm'] = 'lule sami', +    ['lth'] = 'lithuanian', +    ['ltz'] = 'luxembourgish', +    ['lub'] = 'luba', +    ['lug'] = 'luganda', +    ['luh'] = 'luhya', +    ['luo'] = 'luo', +    ['lvi'] = 'latvian', +    ['maj'] = 'majang', +    ['mak'] = 'makua', +    ['mal'] = 'malayalam traditional', +    ['man'] = 'mansi', +    ['map'] = 'mapudungun', +    ['mar'] = 'marathi', +    ['maw'] = 'marwari', +    ['mbn'] = 'mbundu', +    ['mch'] = 'manchu', +    ['mcr'] = 'moose cree', +    ['mde'] = 'mende', +    ['men'] = "me'en", +    ['miz'] = 'mizo', +    ['mkd'] = 'macedonian', +    ['mle'] = 'male', +    ['mlg'] = 'malagasy', +    ['mln'] = 'malinke', +    ['mlr'] = 'malayalam reformed', +    ['mly'] = 'malay', +    ['mnd'] = 'mandinka', +    ['mng'] = 'mongolian', +    ['mni'] = 'manipuri', +    ['mnk'] = 'maninka', +    ['mnx'] = 'manx gaelic', +    ['moh'] = 'mohawk', +    ['mok'] = 'moksha', +    ['mol'] = 'moldavian', +    ['mon'] = 'mon', +    ['mor'] = 'moroccan', +    ['mri'] = 'maori', +    ['mth'] = 'maithili', +    ['mts'] = 'maltese', +    ['mun'] = 'mundari', +    ['nag'] = 'naga-assamese', +    ['nan'] = 'nanai', +    ['nas'] = 'naskapi', +    ['ncr'] = 'n-cree', +    ['ndb'] = 'ndebele', +    ['ndg'] = 'ndonga', +    ['nep'] = 'nepali', +    ['new'] = 'newari', +    ['ngr'] = 'nagari', +    ['nhc'] = 'norway house cree', +    ['nis'] = 'nisi', +    ['niu'] = 'niuean', +    ['nkl'] = 'nkole', +    ['nko'] = "n'ko", +    ['nld'] = 'dutch', +    ['nog'] = 'nogai', +    ['nor'] = 'norwegian', +    ['nsm'] = 'northern sami', +    ['nta'] = 'northern tai', +    ['nto'] = 'esperanto', +    ['nyn'] = 'nynorsk', +    ['oci'] = 'occitan', +    ['ocr'] = 'oji-cree', +    ['ojb'] = 'ojibway', +    ['ori'] = 'oriya', +    ['oro'] = 'oromo', +    ['oss'] = 'ossetian', +    ['paa'] = 'palestinian aramaic', +    ['pal'] = 'pali', +    ['pan'] = 'punjabi', +    ['pap'] = 'palpa', +    ['pas'] = 'pashto', +    ['pgr'] = 'polytonic greek', +    ['pil'] = 'pilipino', +    ['plg'] = 'palaung', +    ['plk'] = 'polish', +    ['pro'] = 'provencal', +    ['ptg'] = 'portuguese', +    ['qin'] = 'chin', +    ['raj'] = 'rajasthani', +    ['rbu'] = 'russian buriat', +    ['rcr'] = 'r-cree', +    ['ria'] = 'riang', +    ['rms'] = 'rhaeto-romanic', +    ['rom'] = 'romanian', +    ['roy'] = 'romany', +    ['rsy'] = 'rusyn', +    ['rua'] = 'ruanda', +    ['rus'] = 'russian', +    ['sad'] = 'sadri', +    ['san'] = 'sanskrit', +    ['sat'] = 'santali', +    ['say'] = 'sayisi', +    ['sek'] = 'sekota', +    ['sel'] = 'selkup', +    ['sgo'] = 'sango', +    ['shn'] = 'shan', +    ['sib'] = 'sibe', +    ['sid'] = 'sidamo', +    ['sig'] = 'silte gurage', +    ['sks'] = 'skolt sami', +    ['sky'] = 'slovak', +    ['sla'] = 'slavey', +    ['slv'] = 'slovenian', +    ['sml'] = 'somali', +    ['smo'] = 'samoan', +    ['sna'] = 'sena', +    ['snd'] = 'sindhi', +    ['snh'] = 'sinhalese', +    ['snk'] = 'soninke', +    ['sog'] = 'sodo gurage', +    ['sot'] = 'sotho', +    ['sqi'] = 'albanian', +    ['srb'] = 'serbian', +    ['srk'] = 'saraiki', +    ['srr'] = 'serer', +    ['ssl'] = 'south slavey', +    ['ssm'] = 'southern sami', +    ['sur'] = 'suri', +    ['sva'] = 'svan', +    ['sve'] = 'swedish', +    ['swa'] = 'swadaya aramaic', +    ['swk'] = 'swahili', +    ['swz'] = 'swazi', +    ['sxt'] = 'sutu', +    ['syr'] = 'syriac', +    ['tab'] = 'tabasaran', +    ['taj'] = 'tajiki', +    ['tam'] = 'tamil', +    ['tat'] = 'tatar', +    ['tcr'] = 'th-cree', +    ['tel'] = 'telugu', +    ['tgn'] = 'tongan', +    ['tgr'] = 'tigre', +    ['tgy'] = 'tigrinya', +    ['tha'] = 'thai', +    ['tht'] = 'tahitian', +    ['tib'] = 'tibetan', +    ['tkm'] = 'turkmen', +    ['tmn'] = 'temne', +    ['tna'] = 'tswana', +    ['tne'] = 'tundra nenets', +    ['tng'] = 'tonga', +    ['tod'] = 'todo', +    ['trk'] = 'turkish', +    ['tsg'] = 'tsonga', +    ['tua'] = 'turoyo aramaic', +    ['tul'] = 'tulu', +    ['tuv'] = 'tuvin', +    ['twi'] = 'twi', +    ['udm'] = 'udmurt', +    ['ukr'] = 'ukrainian', +    ['urd'] = 'urdu', +    ['usb'] = 'upper sorbian', +    ['uyg'] = 'uyghur', +    ['uzb'] = 'uzbek', +    ['ven'] = 'venda', +    ['vit'] = 'vietnamese', +    ['wa' ] = 'wa', +    ['wag'] = 'wagdi', +    ['wcr'] = 'west-cree', +    ['wel'] = 'welsh', +    ['wlf'] = 'wolof', +    ['xbd'] = 'tai lue', +    ['xhs'] = 'xhosa', +    ['yak'] = 'yakut', +    ['yba'] = 'yoruba', +    ['ycr'] = 'y-cree', +    ['yic'] = 'yi classic', +    ['yim'] = 'yi modern', +    ['zhh'] = 'chinese hong kong', +    ['zhp'] = 'chinese phonetic', +    ['zhs'] = 'chinese simplified', +    ['zht'] = 'chinese traditional', +    ['znd'] = 'zande', +    ['zul'] = 'zulu' +} + +local features = { +    ['aalt'] = 'access all alternates', +    ['abvf'] = 'above-base forms', +    ['abvm'] = 'above-base mark positioning', +    ['abvs'] = 'above-base substitutions', +    ['afrc'] = 'alternative fractions', +    ['akhn'] = 'akhands', +    ['blwf'] = 'below-base forms', +    ['blwm'] = 'below-base mark positioning', +    ['blws'] = 'below-base substitutions', +    ['c2pc'] = 'petite capitals from capitals', +    ['c2sc'] = 'small capitals from capitals', +    ['calt'] = 'contextual alternates', +    ['case'] = 'case-sensitive forms', +    ['ccmp'] = 'glyph composition/decomposition', +    ['cjct'] = 'conjunct forms', +    ['clig'] = 'contextual ligatures', +    ['cpsp'] = 'capital spacing', +    ['cswh'] = 'contextual swash', +    ['curs'] = 'cursive positioning', +    ['dflt'] = 'default processing', +    ['dist'] = 'distances', +    ['dlig'] = 'discretionary ligatures', +    ['dnom'] = 'denominators', +    ['dtls'] = 'dotless forms', -- math +    ['expt'] = 'expert forms', +    ['falt'] = 'final glyph alternates', +    ['fin2'] = 'terminal forms #2', +    ['fin3'] = 'terminal forms #3', +    ['fina'] = 'terminal forms', +    ['flac'] = 'flattened accents over capitals', -- math +    ['frac'] = 'fractions', +    ['fwid'] = 'full width', +    ['half'] = 'half forms', +    ['haln'] = 'halant forms', +    ['halt'] = 'alternate half width', +    ['hist'] = 'historical forms', +    ['hkna'] = 'horizontal kana alternates', +    ['hlig'] = 'historical ligatures', +    ['hngl'] = 'hangul', +    ['hojo'] = 'hojo kanji forms', +    ['hwid'] = 'half width', +    ['init'] = 'initial forms', +    ['isol'] = 'isolated forms', +    ['ital'] = 'italics', +    ['jalt'] = 'justification alternatives', +    ['jp04'] = 'jis2004 forms', +    ['jp78'] = 'jis78 forms', +    ['jp83'] = 'jis83 forms', +    ['jp90'] = 'jis90 forms', +    ['kern'] = 'kerning', +    ['lfbd'] = 'left bounds', +    ['liga'] = 'standard ligatures', +    ['ljmo'] = 'leading jamo forms', +    ['lnum'] = 'lining figures', +    ['locl'] = 'localized forms', +    ['mark'] = 'mark positioning', +    ['med2'] = 'medial forms #2', +    ['medi'] = 'medial forms', +    ['mgrk'] = 'mathematical greek', +    ['mkmk'] = 'mark to mark positioning', +    ['mset'] = 'mark positioning via substitution', +    ['nalt'] = 'alternate annotation forms', +    ['nlck'] = 'nlc kanji forms', +    ['nukt'] = 'nukta forms', +    ['numr'] = 'numerators', +    ['onum'] = 'old style figures', +    ['opbd'] = 'optical bounds', +    ['ordn'] = 'ordinals', +    ['ornm'] = 'ornaments', +    ['palt'] = 'proportional alternate width', +    ['pcap'] = 'petite capitals', +    ['pnum'] = 'proportional figures', +    ['pref'] = 'pre-base forms', +    ['pres'] = 'pre-base substitutions', +    ['pstf'] = 'post-base forms', +    ['psts'] = 'post-base substitutions', +    ['pwid'] = 'proportional widths', +    ['qwid'] = 'quarter widths', +    ['rand'] = 'randomize', +    ['rkrf'] = 'rakar forms', +    ['rlig'] = 'required ligatures', +    ['rphf'] = 'reph form', +    ['rtbd'] = 'right bounds', +    ['rtla'] = 'right-to-left alternates', +    ['rtlm'] = 'right to left math', -- math +    ['ruby'] = 'ruby notation forms', +    ['salt'] = 'stylistic alternates', +    ['sinf'] = 'scientific inferiors', +    ['size'] = 'optical size', +    ['smcp'] = 'small capitals', +    ['smpl'] = 'simplified forms', + -- ['ss01'] = 'stylistic set 1', + -- ['ss02'] = 'stylistic set 2', + -- ['ss03'] = 'stylistic set 3', + -- ['ss04'] = 'stylistic set 4', + -- ['ss05'] = 'stylistic set 5', + -- ['ss06'] = 'stylistic set 6', + -- ['ss07'] = 'stylistic set 7', + -- ['ss08'] = 'stylistic set 8', + -- ['ss09'] = 'stylistic set 9', + -- ['ss10'] = 'stylistic set 10', + -- ['ss11'] = 'stylistic set 11', + -- ['ss12'] = 'stylistic set 12', + -- ['ss13'] = 'stylistic set 13', + -- ['ss14'] = 'stylistic set 14', + -- ['ss15'] = 'stylistic set 15', + -- ['ss16'] = 'stylistic set 16', + -- ['ss17'] = 'stylistic set 17', + -- ['ss18'] = 'stylistic set 18', + -- ['ss19'] = 'stylistic set 19', + -- ['ss20'] = 'stylistic set 20', +    ['ssty'] = 'script style', -- math +    ['subs'] = 'subscript', +    ['sups'] = 'superscript', +    ['swsh'] = 'swash', +    ['titl'] = 'titling', +    ['tjmo'] = 'trailing jamo forms', +    ['tnam'] = 'traditional name forms', +    ['tnum'] = 'tabular figures', +    ['trad'] = 'traditional forms', +    ['twid'] = 'third widths', +    ['unic'] = 'unicase', +    ['valt'] = 'alternate vertical metrics', +    ['vatu'] = 'vattu variants', +    ['vert'] = 'vertical writing', +    ['vhal'] = 'alternate vertical half metrics', +    ['vjmo'] = 'vowel jamo forms', +    ['vkna'] = 'vertical kana alternates', +    ['vkrn'] = 'vertical kerning', +    ['vpal'] = 'proportional alternate vertical metrics', +    ['vrt2'] = 'vertical rotation', +    ['zero'] = 'slashed zero', + +    ['trep'] = 'traditional tex replacements', +    ['tlig'] = 'traditional tex ligatures', + +    ['ss..'] = 'stylistic set ..', +    ['cv..'] = 'character variant ..', +    ['js..'] = 'justification ..', + +    ["dv.."] = "devanagari ..", +} + +local baselines = { +    ['hang'] = 'hanging baseline', +    ['icfb'] = 'ideographic character face bottom edge baseline', +    ['icft'] = 'ideographic character face tope edige baseline', +    ['ideo'] = 'ideographic em-box bottom edge baseline', +    ['idtp'] = 'ideographic em-box top edge baseline', +    ['math'] = 'mathmatical centered baseline', +    ['romn'] = 'roman baseline' +} + +local swapped = function (h) +    local r = { } +    for k, v in next, h do +        r[stringgsub(v,"[^a-z0-9]","")] = k -- is already lower +    end +    return r +end + +local verbosescripts   = swapped(scripts  ) +local verboselanguages = swapped(languages) +local verbosefeatures  = swapped(features ) +local verbosebaselines = swapped(baselines) + +---[[ end excerpt from font-ott.lua ]] +  --[[doc--      As discussed, we will issue a warning because of incomplete support @@ -118,12 +752,35 @@ local support_incomplete = table.tohash({  --- (string, string) dict -> (string, string) dict  local set_default_features = function (speclist)      speclist = speclist or { } -    local script = speclist.script or "dflt" -    if support_incomplete[script] then -        report("log", 0, "load", -            "support for the requested script: ā%sā may be incomplete", -            script) + +    --- handle language tag +    local language = speclist.language +    if language then --- already lowercase at this point +        language = stringgsub(language, "[^a-z0-9]", "") +        language = rawget(verboselanguages, language) -- srsly, rawget? +                or (languages[language] and language) +                or "dflt" +    else +        language = "dflt" +    end +    speclist.language = language + +    --- handle script tag +    local script = speclist.script +    if script then +        script = stringgsub(script, "[^a-z0-9]","") +        script = rawget(verbosescripts, script) +              or (scripts[script] and script) +              or "dflt" +        if support_incomplete[script] then +            report("log", 0, "load", +                "support for the requested script: " +                .. "ā%sā may be incomplete", script) +        end +    else +        script = "dflt"      end +    speclist.script = script      report("log", 0, "load",          "auto-selecting default features for script: %s", | 
