src/hb-ot-tag.cc


Log

Author Commit Date CI Message
Ozkan Sezer c2f8f35a 2024-03-15T18:45:24 Use inttypes.h PRI?32 macros in format strings for [u]int32_t args. This is a modified and cleaned-up version of PR #4619 by @jpcomito: hb-common.h now expects 'inttypes.h' presence with MSVC exceptions, defines __STDC_FORMAT_MACROS in there (if not already defined) and undoes c930ae2 (PR #1974) and 902ab86. Co-authored-by: jcomito <jcomito@google.com>
Behdad Esfahbod 595def8f 2024-03-14T12:34:39 Revert "Fixing compiler warnings" This reverts commit 61a1ba2ff0fc1b1ed9db0b7c1dd0f59a4312e6e6.
jcomito 61a1ba2f 2024-03-12T21:34:14 Fixing compiler warnings All warning are for format specifiers (-WFormat) in sprintf().
Behdad Esfahbod 8ccc1ff2 2023-05-19T13:14:57 [layout] Mark language as nullable GI needs it apparently.
Behdad Esfahbod ed023f66 2023-01-12T17:04:24 Enable -Wformat-signedness And fix the codebase.
Khaled Hosny f9e1192d 2022-12-18T23:58:36 [ot-tag] Document two deprecated symbols See https://github.com/harfbuzz/harfbuzz/issues/3957
Behdad Esfahbod 59c45f6d 2022-11-22T12:54:50 Use hb_memcpy instead of memcpy consistently
Behdad Esfahbod f73c15ca 2022-08-03T12:54:03 [atomic-int] Add operators for relaxed ops
Behdad Esfahbod f7f6d278 2022-07-17T22:15:42 Add hb_language_matches() New API: + hb_language_matches()
Behdad Esfahbod a7960bdf 2022-06-17T15:10:20 [config] Add HB_NO_LANGUAGE_LONG and enable in TINY profile Disables 3letter language tags and more complex ones. Fixes https://github.com/harfbuzz/harfbuzz/issues/3664
Behdad Esfahbod 315ef83b 2022-05-30T05:09:26 Revert "Revert "[ot-lang] Use atomic int for cache"" This reverts commit c56ce8681c209abd147328142806769752091b1c. The revert was not intentional. Ouch!
Behdad Esfahbod c56ce868 2022-05-28T04:25:51 Revert "[ot-lang] Use atomic int for cache" This reverts commit d61b2074915cf5f8044dcb8e3dafc04b5b58c6b8.
Behdad Esfahbod d61b2074 2022-05-26T18:24:43 [ot-lang] Use atomic int for cache Fixes(?) https://github.com/harfbuzz/harfbuzz/issues/3612
Behdad Esfahbod 9c64bda2 2022-05-17T17:31:18 [ot-tag] Whitespace
Behdad Esfahbod 3df8017e 2022-05-17T17:29:39 [ot-tag] Optimize subtag_matches() more
Behdad Esfahbod 7f6e8c55 2022-05-17T16:58:35 [ot-tags] Optimize subtag_matches() further Part of https://github.com/harfbuzz/harfbuzz/issues/3591 Comparing before to after Benchmark Time CPU Time Old Time New CPU Old CPU New ---------------------------------------------------------------------------------------------------------------------------------------------------- BM_hb_ot_tags_from_script_and_language/COMMON abcd_XY -0.3371 -0.3371 71 47 71 47
Behdad Esfahbod 27c11405 2022-05-17T16:51:51 [ot-tag] Optimize subtag_matches Part of https://github.com/harfbuzz/harfbuzz/issues/3591
Behdad Esfahbod a07d8185 2022-05-17T16:46:10 [ot-tag] Add a likely() to the cache hit case
Behdad Esfahbod dfca47f4 2022-05-17T16:21:02 [ot-tag] Cache last bsearch result Part of https://github.com/harfbuzz/harfbuzz/issues/3591 Humm. Looks like not all of the fat is bsearch overhead now. I cached the last bsearch result, but most of the time is still there. I'm baffled. Before: ------------------------------------------------------------------------------------------------ Benchmark Time CPU Iterations ------------------------------------------------------------------------------------------------ BM_hb_ot_tags_from_script_and_language/COMMON abcd_XY 8.08 ns 8.05 ns 84500482 BM_hb_ot_tags_from_script_and_language/COMMON zh_CN 42.2 ns 42.1 ns 16722006 BM_hb_ot_tags_from_script_and_language/COMMON en_US 16.1 ns 16.0 ns 43461527 BM_hb_ot_tags_from_script_and_language/LATIN en_US 16.5 ns 16.5 ns 42448505 BM_hb_ot_tags_from_script_and_language/COMMON none 4.34 ns 4.33 ns 161290530 BM_hb_ot_tags_from_script_and_language/LATIN none 4.34 ns 4.33 ns 162339799 After: ------------------------------------------------------------------------------------------------ Benchmark Time CPU Iterations ------------------------------------------------------------------------------------------------ BM_hb_ot_tags_from_script_and_language/COMMON abcd_XY 8.13 ns 8.11 ns 80438134 BM_hb_ot_tags_from_script_and_language/COMMON zh_CN 40.0 ns 39.9 ns 17487939 BM_hb_ot_tags_from_script_and_language/COMMON en_US 12.7 ns 12.7 ns 55124394 BM_hb_ot_tags_from_script_and_language/LATIN en_US 13.1 ns 13.0 ns 53660125 BM_hb_ot_tags_from_script_and_language/COMMON none 4.61 ns 4.60 ns 151394104 BM_hb_ot_tags_from_script_and_language/LATIN none 4.70 ns 4.68 ns 150402847
Behdad Esfahbod 909f00ac 2022-05-17T15:51:41 [ot-tags] Further speed up language bsearch() Using an integer tag to bsearch, instead of string. Part of: https://github.com/harfbuzz/harfbuzz/issues/3591 Before: ------------------------------------------------------------------------------------------------ Benchmark Time CPU Iterations ------------------------------------------------------------------------------------------------ BM_hb_ot_tags_from_script_and_language/COMMON abcd_XY 8.11 ns 8.08 ns 87067795 BM_hb_ot_tags_from_script_and_language/COMMON zh_CN 53.6 ns 53.5 ns 13042418 BM_hb_ot_tags_from_script_and_language/COMMON en_US 24.2 ns 24.1 ns 29052731 BM_hb_ot_tags_from_script_and_language/LATIN en_US 24.4 ns 24.3 ns 28736769 BM_hb_ot_tags_from_script_and_language/COMMON none 4.43 ns 4.41 ns 160370413 BM_hb_ot_tags_from_script_and_language/LATIN none 4.35 ns 4.34 ns 160578191 After: ------------------------------------------------------------------------------------------------ Benchmark Time CPU Iterations ------------------------------------------------------------------------------------------------ BM_hb_ot_tags_from_script_and_language/COMMON abcd_XY 7.97 ns 7.95 ns 85208363 BM_hb_ot_tags_from_script_and_language/COMMON zh_CN 41.7 ns 41.6 ns 16945817 BM_hb_ot_tags_from_script_and_language/COMMON en_US 16.1 ns 16.0 ns 43613523 BM_hb_ot_tags_from_script_and_language/LATIN en_US 16.5 ns 16.4 ns 42568107 BM_hb_ot_tags_from_script_and_language/COMMON none 4.30 ns 4.29 ns 164055469 BM_hb_ot_tags_from_script_and_language/LATIN none 4.29 ns 4.27 ns 163793591
Behdad Esfahbod c460cf74 2022-05-17T15:30:11 [ot-tags] Cosmetic
Behdad Esfahbod 1c8226ed 2022-05-17T15:28:50 Fix compiler warning On Mac compiler: FAILED: src/libharfbuzz.0.dylib.p/hb-ot-tag.cc.o c++ -Isrc/libharfbuzz.0.dylib.p -Isrc -I../src -I. -I.. -I/usr/local/opt/freetype/include/freetype2 -I/usr/local/Cellar/graphite2/1.3.14/include -I/usr/local/Cellar/glib/2.72.1/include/glib-2.0 -I/usr/local/Cellar/glib/2.72.1/lib/glib-2.0/include -I/usr/local/opt/gettext/include -I/usr/local/Cellar/pcre/8.45/include -Xclang -fcolor-diagnostics --coverage -pipe -Wall -Winvalid-pch -Wnon-virtual-dtor -std=c++11 -fno-rtti -O2 -g -fno-exceptions -fno-rtti -fno-threadsafe-statics -fvisibility-inlines-hidden -DHAVE_CONFIG_H -Wno-non-virtual-dtor -MD -MQ src/libharfbuzz.0.dylib.p/hb-ot-tag.cc.o -MF src/libharfbuzz.0.dylib.p/hb-ot-tag.cc.o.d -o src/libharfbuzz.0.dylib.p/hb-ot-tag.cc.o -c ../src/hb-ot-tag.cc In file included from ../src/hb-ot-tag.cc:29: In file included from ../src/hb.hh:481: ../src/hb-array.hh:359:14: error: missing default argument on parameter 'ds' Ts... ds) const ^ ../src/hb-ot-tag.cc:292:58: note: in instantiation of function template specialization 'hb_sorted_array_t<const LangTag>::bfind<const char *, unsigned int>' requested here if (hb_sorted_array (ot_languages, ot_languages_len).bfind (lang_str, &tag_idx, ^ 1 error generated.
Behdad Esfahbod c1f4b57c 2022-05-17T15:19:40 [ot-tags] Optimize language comparison Now that we know both strings are of equal len of 2 or 3, optimize. Part of https://github.com/harfbuzz/harfbuzz/issues/3591 Before: ------------------------------------------------------------------------------------------------ Benchmark Time CPU Iterations ------------------------------------------------------------------------------------------------ BM_hb_ot_tags_from_script_and_language/COMMON abcd_XY 8.50 ns 8.47 ns 81221549 BM_hb_ot_tags_from_script_and_language/COMMON zh_CN 79.6 ns 79.3 ns 8785804 BM_hb_ot_tags_from_script_and_language/COMMON en_US 40.0 ns 39.9 ns 17462768 BM_hb_ot_tags_from_script_and_language/LATIN en_US 39.2 ns 39.1 ns 17886793 BM_hb_ot_tags_from_script_and_language/COMMON none 4.31 ns 4.30 ns 162805417 BM_hb_ot_tags_from_script_and_language/LATIN none 4.32 ns 4.31 ns 162656688 After: ------------------------------------------------------------------------------------------------ Benchmark Time CPU Iterations ------------------------------------------------------------------------------------------------ BM_hb_ot_tags_from_script_and_language/COMMON abcd_XY 8.27 ns 8.24 ns 81868701 BM_hb_ot_tags_from_script_and_language/COMMON zh_CN 56.1 ns 56.0 ns 12353284 BM_hb_ot_tags_from_script_and_language/COMMON en_US 24.3 ns 24.2 ns 28955030 BM_hb_ot_tags_from_script_and_language/LATIN en_US 24.5 ns 24.4 ns 28664868 BM_hb_ot_tags_from_script_and_language/COMMON none 4.35 ns 4.34 ns 161190014 BM_hb_ot_tags_from_script_and_language/LATIN none 4.36 ns 4.34 ns 161319000
Behdad Esfahbod dde48d78 2022-05-17T15:07:49 Fix compiler warning
Behdad Esfahbod 15be0ded 2022-05-17T14:57:08 [ot-tags] Optimize lang_matches() Part of https://github.com/harfbuzz/harfbuzz/issues/3591 Before: ------------------------------------------------------------------------------------------------ Benchmark Time CPU Iterations ------------------------------------------------------------------------------------------------ BM_hb_ot_tags_from_script_and_language/COMMON abcd_XY 8.67 ns 8.64 ns 80324382 BM_hb_ot_tags_from_script_and_language/COMMON zh_CN 91.2 ns 90.9 ns 7674131 BM_hb_ot_tags_from_script_and_language/COMMON en_US 41.1 ns 41.0 ns 17174093 BM_hb_ot_tags_from_script_and_language/LATIN en_US 41.3 ns 41.2 ns 17000876 BM_hb_ot_tags_from_script_and_language/COMMON none 4.56 ns 4.55 ns 153914130 BM_hb_ot_tags_from_script_and_language/LATIN none 4.53 ns 4.52 ns 153830303 After: ------------------------------------------------------------------------------------------------ Benchmark Time CPU Iterations ------------------------------------------------------------------------------------------------ BM_hb_ot_tags_from_script_and_language/COMMON abcd_XY 8.24 ns 8.21 ns 84078465 BM_hb_ot_tags_from_script_and_language/COMMON zh_CN 77.5 ns 77.2 ns 9059230 BM_hb_ot_tags_from_script_and_language/COMMON en_US 38.8 ns 38.7 ns 17790692 BM_hb_ot_tags_from_script_and_language/LATIN en_US 37.6 ns 37.5 ns 18648293 BM_hb_ot_tags_from_script_and_language/COMMON none 4.50 ns 4.49 ns 155573267 BM_hb_ot_tags_from_script_and_language/LATIN none 4.49 ns 4.47 ns 156456653
Behdad Esfahbod dd3c858f 2022-05-17T14:28:28 [ot-tags] Speed up hb_ot_tags_from_language() Part of https://github.com/harfbuzz/harfbuzz/issues/3591 "After that, bulk of the time I suppose is spent in binary-searching the language table. I suggest we split the language table in 2-letter and 3-letter tags, to speed-up the vast majority of cases that are 2-letter." benchmark-ot, before: ---------------------------------------------------------------------------------------------- Benchmark Time CPU Iterations ---------------------------------------------------------------------------------------------- BM_hb_ot_tags_from_script_and_language/COMMON zh_CN 112 ns 111 ns 6286271 BM_hb_ot_tags_from_script_and_language/COMMON en_US 60.6 ns 60.4 ns 11671176 BM_hb_ot_tags_from_script_and_language/LATIN en_US 61.3 ns 61.1 ns 11442645 BM_hb_ot_tags_from_script_and_language/COMMON none 4.75 ns 4.74 ns 146997235 BM_hb_ot_tags_from_script_and_language/LATIN none 4.65 ns 4.64 ns 150938747 After: ---------------------------------------------------------------------------------------------- Benchmark Time CPU Iterations ---------------------------------------------------------------------------------------------- BM_hb_ot_tags_from_script_and_language/COMMON zh_CN 89.5 ns 89.2 ns 7747649 BM_hb_ot_tags_from_script_and_language/COMMON en_US 38.5 ns 38.4 ns 18199432 BM_hb_ot_tags_from_script_and_language/LATIN en_US 39.0 ns 38.9 ns 18049238 BM_hb_ot_tags_from_script_and_language/COMMON none 4.53 ns 4.52 ns 154895110 BM_hb_ot_tags_from_script_and_language/LATIN none 4.54 ns 4.52 ns 154762105
Alexis King 1bc4bad7 2022-02-07T19:57:25 [ot-tag] Add HB_SCRIPT_MATH (Zmth) and map it to OT ‘math’ tag The ISO 15924 code for mathematical notation is ‘Zmth’, but the OpenType script is ‘math’.
Behdad Esfahbod 2337f0d0 2021-07-08T10:58:50 Internally use hb_malloc/.../hb_free instead of malloc/.../free Redefining those stock names as macros was conflicting with gcc 10 headers. Fixes https://github.com/harfbuzz/harfbuzz/issues/3044
Khaled Hosny 5151c2b6 2020-12-31T00:28:27 [introspection] Replace deprecated allow-none Use optional or nullable as appropriate.
Khaled Hosny 8e8c3e58 2020-12-30T23:37:49 [docs] Complete hb-ot-layout docs a bit
David Corbett b2e7bb2a 2020-10-27T19:50:33 Don’t map BCP 47 to coincidentally similar OT tag
David Corbett b207eab8 2020-04-30T11:53:21 Round-trip OpenType tags through BCP 47
Behdad Esfahbod 8fe15485 2019-06-26T13:49:42 [config] Add HB_NO_OT_TAG Part of https://github.com/harfbuzz/harfbuzz/issues/1652
Behdad Esfahbod 971330c0 2019-06-19T16:37:35 [config] Add HB_NO_LANGUAGE_PRIVATE_SUBTAG Part of https://github.com/harfbuzz/harfbuzz/issues/1652
Behdad Esfahbod f642a5fa 2019-06-19T16:36:09 Restructure code
David Corbett 4f37c0db 2019-06-11T17:55:31 Remove 'mym3'
Behdad Esfahbod fca27860 2019-05-11T00:37:01 [config] Make HB_DISABLE_DEPRECATED actually compile Part of https://github.com/harfbuzz/harfbuzz/issues/1652
Behdad Esfahbod 41248cce 2019-05-07T20:54:31 Remove MIN/MAX in favor of hb_min/hb_max
David Corbett 6745a600 2019-04-16T17:29:34 Comment out ot_languages where fallback suffices
David Corbett 1ce11b44 2019-04-16T10:04:45 Reduce LangTag from 3 language system tags to 1
Behdad Esfahbod 282c76d9 2019-03-28T21:00:58 Use internal bsearch() for language tags Fixes https://github.com/harfbuzz/harfbuzz/pull/1639
Behdad Esfahbod d2db71fd 2019-03-28T21:00:58 Use internal bsearch() for language tags Fixes https://github.com/harfbuzz/harfbuzz/pull/1639
Ebrahim Byagowi e4120085 2018-12-17T21:31:01 Remove redundant void from C++ sources (#1486)
Behdad Esfahbod 39bd07ae 2018-10-26T21:01:11 Fix bunch of unused parameter warnings Show up with gcc -O0. There's a few more but those are functions that need to be filled in. Maybe this is a lost battle...
Bruce Mitchener 8d1e479d 2018-10-18T22:18:42 Use bool literals instead of 0/1.
Behdad Esfahbod 3d9a0306 2018-10-18T05:58:17 2.0.0
HinTak 26092bb3 2018-10-17T00:54:39 "allow-none" annotation for "out" parameters Fixes the following warnings: hb-ot-tag.cc:330: Warning: HarfBuzz: invalid "allow-none" annotation: only valid for pointer types and out parameters hb-ot-tag.cc:334: Warning: HarfBuzz: invalid "allow-none" annotation: only valid for pointer types and out parameters
David Corbett c5510000 2018-10-11T22:08:14 Add missing colons to GObject annotations
Behdad Esfahbod 5646dcbd 2018-10-11T19:39:07 Minor
David Corbett 28d091d0 2018-10-11T17:15:22 Parse Indic3 tags
Behdad Esfahbod da591f2a 2018-10-11T14:30:15 Whitespace
Behdad Esfahbod 8061664a 2018-10-11T14:16:55 Add doc stubs for recently added API Thanks to David Corbett who revamped our script and language processing and implemented full BCP 47 support. https://github.com/harfbuzz/harfbuzz/pull/730 New API: +hb_ot_layout_table_select_script() +hb_ot_layout_script_select_language() +HB_OT_MAX_TAGS_PER_SCRIPT +HB_OT_MAX_TAGS_PER_LANGUAGE +hb_ot_tags_from_script_and_language() +hb_ot_tags_to_script_and_language() Deprecated API: -hb_ot_layout_table_choose_script() -hb_ot_layout_script_find_language() -hb_ot_tags_from_script() -hb_ot_tag_from_language()
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.
Behdad Esfahbod c77ae408 2018-08-25T22:36:36 Rename hb-*private.hh to hb-*.hh Sorry for the noise, downstream custom builders. Please adjust.
Ebrahim Byagowi f24b0b97 2018-04-12T13:40:45 Update the links and revive the dead ones
David Corbett 80c1b01f 2017-12-05T08:28:42 Allow digits in language system tags
Behdad Esfahbod 8eaff980 2017-10-31T15:30:06 Remove HB_TAG_CHAR4
Behdad Esfahbod 0712e915 2017-10-29T17:01:47 Remove hb_compare_func_t
Behdad Esfahbod dbdbfe3d 2017-10-15T12:11:08 Use nullptr instead of NULL
Behdad Esfahbod c9e2cf6f 2017-10-04T16:59:22 [ot] Remove 'mal' and 'gle' lang tags Fixes https://github.com/behdad/harfbuzz/issues/477
Behdad Esfahbod 50e95229 2017-10-04T11:28:04 Add Chinantec language tags Fixes https://github.com/behdad/harfbuzz/issues/516
Behdad Esfahbod 113393ef 2017-01-21T15:12:03 Remove a few unused includes
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 37f21bdb 2016-08-08T17:57:06 Map Macao to ZHH lang tag Fixes https://github.com/behdad/harfbuzz/issues/300
Behdad Esfahbod 10a0d4aa 2016-08-08T16:51:08 Map zh-Hant-HK to ZHH Fixes https://github.com/behdad/harfbuzz/issues/300
Arthur Reutenauer adafdcdd 2015-11-07T23:37:21 Mass-added “difficult” tags – to be curated.
Arthur Reutenauer 3d6a2c0d 2015-11-07T22:59:13 Initial import of missing OpenType 1.7 language tags.
Behdad Esfahbod d05b7833 2016-01-12T16:17:21 Fix compiler warning Fixes https://github.com/behdad/harfbuzz/issues/212
Behdad Esfahbod fcf9e61b 2015-12-07T10:30:43 Fix sorting order of ot_languages array Looks like the original sort was wrongly done. Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=93275
Behdad Esfahbod 70952ddb 2015-12-07T10:28:46 Add test to make sure ot-languages array is sorted Currently fails. Part of https://bugs.freedesktop.org/show_bug.cgi?id=93275
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 b8811429 2015-09-03T15:53:22 Fix Since tags Fixes https://github.com/behdad/harfbuzz/issues/103
Behdad Esfahbod 351f68f4 2015-06-12T17:46:06 [bindings] Fix hb_language_get_default() and hb_ot_tag_to_language() Part of https://github.com/behdad/harfbuzz/issues/91
Behdad Esfahbod 58015215 2015-05-06T00:40:31 Add note re OpenType 1.7 language tags
Roozbeh Pournader f6266ad2 2015-05-05T22:31:19 [minor] Remove comment about Navajo OpenType code. Apparently the code is already standardized: https://www.microsoft.com/typography/otspec/languagetags.htm
Roozbeh Pournader cfeb0562 2015-04-29T09:32:42 Add OpenType language tag 'NAV ' for Navajo. The code is not standardized yet, but is used in some Google fonts.
Behdad Esfahbod 7627100f 2014-07-11T14:54:42 Mark unsigned integer literals with the u suffix Simplifies hb_in_range() calls as the type can be inferred. The rest is obsessiveness, I admit.
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 2a8c49ad 2013-12-11T20:22:28 Remove unnecessary includes
Behdad Esfahbod 205bf834 2013-12-02T20:41:41 Revert "Karen" language mapping back to what it was before https://bugzilla.mozilla.org/show_bug.cgi?id=941470
Roozbeh Pournader 08c2d27d 2013-11-23T21:39:31 Added support for several new languages Based on research into latest SIL and Windows fonts, pulling in the latest OpenType language tag proposal from Microsoft, and updating to latest language tags and names from ISO 639.
Roozbeh Pournader 05511acd 2013-11-23T15:19:07 Added language tags for S'gaw Karen and Khamti Tags based on support in Windows 8.1's 'Myanmar Text' font.
Behdad Esfahbod ba2d5430 2012-12-08T19:28:41 Update OT language tags Patch from Roozbeh Pournader.
Behdad Esfahbod aba38173 2012-12-05T19:54:48 Minor
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 10a33296 2012-11-02T13:38:55 Minor
Behdad Esfahbod 738d096a 2011-09-02T13:31:19 Pass through unknown ISO 639-3 language tags to OpenType engine In hb_ot_tag_from_language(), if first component of an unknown language is three letters long, use it directly as OpenType language tag (after case conversion and padding).
Behdad Esfahbod 4c9fe88d 2011-08-26T09:18:53 [API] Make all _from_string() functions take a len parameter Can be -1 for NUL-terminated string. This is useful for passing parts of a larger string to a function without having to copy or modify the string first. Affected functions: hb_tag_t hb_tag_from_string() hb_direction_from_string() hb_language_from_string() hb_script_from_string()
Behdad Esfahbod c605bbbb 2011-08-04T20:00:53 Remove C++ guards from source files Where causing issues for people with MSVC.
Behdad Esfahbod e3693b72 2011-06-15T09:33:52 Change a couple strstr() to strchr()
Behdad Esfahbod 744970af 2011-05-16T18:15:37 [API] Add support for vertical text Design not final yet, and in fact I'm going to change it immediately, but this is an standalone change for itself.
Behdad Esfahbod 1a64f6e1 2011-05-13T22:55:32 [API] Add HB_LANGUAGE_INVALID
Behdad Esfahbod 40b5c2e8 2011-05-13T22:46:36 [test/test-ot-tag] Test hb-ot-tag.h, fix many bugs I'm in awe with how many bugs this test revealed. All fixed.
Behdad Esfahbod d02985ec 2011-05-02T12:35:14 ISO 15924 fixes Update to http://unicode.org/iso15924 Fixes some of the test failures in test-unicode with ICU. Still one more to fix before the test passes.