test/api/test-ot-tag.c


Log

Author Commit Date CI Message
Behdad Esfahbod 56738429 2018-10-30T01:33:22 [test] Fix warnings
Behdad Esfahbod 535ca678 2018-10-18T05:58:04 [test] Don't use newer glib API
David Corbett 28d091d0 2018-10-11T17:15:22 Parse Indic3 tags
Behdad Esfahbod 57b05210 2018-10-11T15:03:21 [test] Fix use of deprecated symbols
David Corbett 7f1fbfe2 2018-07-23T21:19:23 Add hb_ot_tags_to_script_and_language
David Corbett 7c7cb2a9 2018-01-20T15:53:09 Match extlang subtags If the second subtag of a BCP 47 tag is three letters long, it denotes an extended language. The tag converter ignores the language subtag and uses the extended language instead. There are some grandfathered exceptions, which are handled earlier.
David Corbett 2f1f961c 2017-12-08T22:45:52 Autogenerate the BCP 47 to OpenType mappings The new script, gen-tag-table.py, generates `ot_languages` automatically from the [OpenType language system tag registry][ot] and the [IANA Language Subtag Registry][bcp47] with some manual modifications. If an OpenType tag maps to a BCP 47 macrolanguage, all the macrolanguage's individual languages are mapped to the same OpenType tag, except for individual languages with their own OpenType mappings. Deprecated BCP 47 tags are canonicalized. [ot]: https://docs.microsoft.com/en-us/typography/opentype/spec/languagetags [bcp47]: https://www.iana.org/assignments/language-subtag-registry/language-subtag-registry Some OpenType tags correspond to multiple ISO 639 codes. The mapping from ISO 639 codes lists OpenType tags in priority order, such that more specific or more likely tags appear first. Some OpenType tags have no corresponding ISO 639 code in the registry so their mappings use BCP 47 subtags besides the language. For example, any BCP 47 tag with a fonipa variant subtag is mapped to 'IPPH', and 'IPPH' is mapped back to und-fonipa. Other OpenType tags have no corresponding ISO 639 code because it is not clear what they are for. HarfBuzz just ignores these tags. One such ignored tag is 'ZHP ' (Chinese Phonetic). It probably means zh-Latn. However, it is used in Microsoft JhengHei and Microsoft YaHei with the script tag 'hani', implying that it is not a romanization scheme after all. It would be simple enough to add this mapping to gen-tag-table.py once a definitive mapping is determined. The manual modifications are mainly either obvious mappings that the OpenType registry omits or mappings for compatibility with previous versions of HarfBuzz. Some of the old mappings were discarded, though, for homophonous language names. For example, OpenType maps 'KUI ' to kxu; previous versions of HarfBuzz also mapped it to kvd, because kvd and kxu both happen to be called "Kui". gen-tag-table.py also generates a function to convert multi-subtag tags like el-polyton and zh-HK to OpenType tags, replacing `ot_languages_zh` and the hard-coded list of special cases in `hb_ot_tags_from_language`. It also generates a function to convert OpenType tags to BCP 47, replacing the hard-coded list of special cases in `hb_ot_tag_to_language`.
David Corbett 91067716 2017-12-08T11:21:14 Refactor the selection of script and language tags The old hb-ot-tag.cc functions, `hb_ot_tags_from_script` and `hb_ot_tag_from_language`, are now wrappers around a new function: `hb_ot_tags`. It converts a script and a language to arrays of script tags and language tags. This will make it easier to add new script tags to scripts, like 'dev3'. It also allows for language fallback chains; nothing produces more than one language yet though. Where the old functions return the default tags 'DFLT' and 'dflt', `hb_ot_tags` returns an empty array. The caller is responsible for using the default tag in that case. The new function also adds a new private use subtag syntax for script overrides: "x-hbscabcd" requests a script tag of 'abcd'. The old hb-ot-layout.cc functions,`hb_ot_layout_table_choose_script` and `hb_ot_layout_script_find_language` are now wrappers around the new functions `hb_ot_layout_table_select_script` and `hb_ot_layout_script_select_language`. They are essentially the same as the old ones plus a tag count parameter. Closes #495.
Ebrahim Byagowi f24b0b97 2018-04-12T13:40:45 Update the links and revive the dead ones
Behdad Esfahbod 6c1848b1 2018-02-10T15:52:35 Misc warning fixes
Behdad Esfahbod f7010041 2018-02-07T13:58:23 [test] Minor
Sascha Brawer 1337428e 2017-01-18T13:51:02 Update language tags to OpenType 1.8.1 (#403) Resolves https://github.com/behdad/harfbuzz/issues/324
Sascha Brawer e7ecbba2 2016-08-18T12:48:38 Support Americanist Phonetic Notation OpenType language system tag: `APPH` https://www.microsoft.com/typography/otspec/languagetags.htm IETF BCP47 variant tag: `fonnapa` http://www.iana.org/assignments/language-subtag-registry/language-subtag-registry
Behdad Esfahbod 18c19dd3 2016-08-09T13:03:14 Fix build
Sascha Brawer f2ad935e 2015-06-28T03:29:47 Handle language tags that indicate phonetic IPA transcription The BCP-47 registry defines a variant subtag "fonipa" that can be used in combination with arbitrary other language tags. For example, "rm-CH-fonipa-sursilv" indicates the Sursilvan dialect of Romansh as used in Switzerland, transcribed used the International Phonetic Alphabet. http://www.iana.org/assignments/language-subtag-registry/language-subtag-registry
Behdad Esfahbod 6334495a 2014-07-10T19:22:07 Use zh-Hans / zh-Hant when converting OT language tag to hb_language_t
Behdad Esfahbod f381e320 2014-07-10T19:20:35 Fix lang matching logic Previous code was broken logically, but harmless.
Behdad Esfahbod ee5350d6 2014-07-10T19:06:45 Accept BCP 47 zh-Hans / zh-Hant language tags
Behdad Esfahbod de796a6f 2012-11-12T17:27:51 Add "new" Myanmar OT Script tag Windows 8 added support for Myanmar shaping using the "mym2" script tag, even though Windows never supported the old "mymr" tag.
Behdad Esfahbod 4d6dafd4 2012-01-19T14:52:02 Rename test/ to test/api/