Lines Matching +full:gobject +full:- +full:introspection
4 - Consider Unicode Variation Selectors when subsetting “cmap” table.
5 - Guard hb_cairo_glyphs_from_buffer() against malformed UTF-8 strings.
6 - Fix incorrect “COLR” v1 glyph scaling in hb-cairo.
7 - Use locale-independent parsing of double numbers is “hb-subset” command line
9 - Fix incorrect zeroing of advance width of base glyphs in various “Courier New”
11 - Fix handling of long language codes with “HB_LEAN” configuration.
12 - Update OpenType language system registry.
13 - Allow all Myanmar tone marks (including visarga) in any order
14 - Don’t insert U+25CC DOTTED CIRCLE before superscript/subscript digits
15 - Handle Garay script as right to left script.
16 - New API for serializing font tables and potentially repacking them in optimal
17 way. This was a previously experimental-only API.
18 - New API for converting font variation setting from and to strings.
19 - Various build fixes
20 - Various subsetter and instancer fixes.
22 - New API:
33 - Fix the sign of fallback vertical glyph advance (used when font has no
35 - Increase maximum “CFF” operands limit 20 times to support more complex fonts.
36 - Add “--face-loader” option to command line utilities.
37 - Support “COLR” v0 table in hb_font_get_glyph_extents().
38 - Add support for font functions that use Core Text APIs, similar to FreeType
41 - Update IANA and OT language registries, as well ase USE data files.
42 - Fix build with ICU 76.
43 - Various compiler warnings and build fixes.
44 - Various subsetter fixes.
46 - New API:
56 - Relax sanitization checks for “morx” subtables to fix broken AAT shaping of
63 - Unicode 16.0.0 support.
64 - Various documentation fixes.
65 - Various build fixes.
66 - Add API to allow HarfBuzz client to set what glyph to use when a Unicode
69 - Add a callback to for “hb_face_t” for getting the list of table tags. This is
72 - CGJ and Mongolian Variation Selectors are now ignored during glyph
75 - Support cairo script as an output format for “hb-view” command line tool.
76 - Drop an optimization that would cause HarfBuzz not apply pair positioning
79 - Subsetting will now fail if source font has no glyphs, so feeding the subsetter
81 - If after partially instancing a font no variation data is left (the instance
83 - Workaround a Firefox bug in displaying SVGs generated be “hb-view” command
85 - Fix bug in macroman mapping for “cmap” table.
86 - Fix difference shaping output when HarfBuzz is built with with
88 - Various subsetting and instancing fixes.
89 - Various fuzzing fixes.
90 - Add “with_libstdcxx” meson build option.
93 - New API:
110 - HarfBuzz now the supports the proposed new OpenType “VARC” table. This
114 https://github.com/harfbuzz/boring-expansion-spec/blob/main/VARC.md
115 - Autotools build system have been dropped. Meson is the only supported build
117 - Speed up “AAT” shaping for short words by up to 4%.
118 - Ignore unknown “CFF” operators.
119 - “hb_subset_input_keep_everything()” now keeps also non-unicode “name” table
121 - Update the IANA and OpenType language tag registries.
122 - Support composite glyphs with very large number of points in hb-draw API.
123 - Various build fixes.
129 - API for partial instancing is now stable and have been promoted out of
131 - Support instancing “BASE” table.
132 - Speedup AAT shaping by 13–30%.
133 - Various build fixes.
134 - Various subsetter and instancer fixes.
136 - New API:
144 - Add /bigobj to MSVC compiler flags in meson build, to fix building hb-subset.cc
145 - Specify minimum versions of various dependencies in meson and autotools build.
146 - When subsetting, place variation store at the end of “GDEF” table to fix
148 - Various build fixes.
150 - New API:
157 - hb_blob_create_from_file_or_fail() on Windows will now try to interpret the
158 file name as UTF-8 first, and as system code page if it is not valid UTF-8.
159 - Fix hb_style_get_value() in fonts with “STAT” table.
160 - Properly handle negative offsets in CFF table.
161 - Update IANA Language Subtag Registry to 2024-03-07.
162 - Subsetter now supports subsetting “BASE” table.
163 - Subsetter will update “hhea” font metrics in sync with “OS/2” ones.
164 - “--variations” option of “hb-subset” now supports leaving out values that
168 - Fix hb_ot_math_get_glyph_kerning() to match updated “MATH” table spec.
169 - Support legacy MacRoman encoding in “cmap” table.
170 - Various build fixes.
171 - Various subsetting and instancing fixes.
173 - New API:
179 - Improve memory barrier to fix potential segfaults.
180 - Various build fixes.
181 - Various subsetting and instancing fixes.
182 - Rename “hb-subset” option “--instance” to “--variations” to match the other
185 - New API:
188 - Deprecated API:
195 - Fix regression from 8.1.0 in shaping fonts with duplicate feature tags.
196 - Fix regression from 8.2.0 in parsing CSS-style feature strings.
197 - Variable fonts instanciation now handles more tables.
198 - Various CMake build improvements.
199 - various fixes to build without errors with gcc 4.9.2.
205 - Unicode 15.1 support.
211 - Various build and fuzzing fixes
212 - Improvements to COLRv1 painting.
214 - New API:
223 - Fix shaping of contextual rules at the end of string, introduced in 8.1.0
224 - Fix stack-overflow in repacker with malicious fonts.
225 - 30% speed up loading Noto Duployan font.
231 - Fix long-standing build issue with the AIX compiler and older Apple clang.
233 - Revert optimization that could cause timeout during subsetting with malicious fonts.
235 - More optimization work:
236 - 45% speed up in shaping Noto Duployan font.
237 - 10% speed up in subsetting Noto Duployan font.
238 - Another 8% speed up in shaping Gulzar.
239 - 5% speed up in loading Roboto.
241 - New API:
248 - Build fix on 32-bit ARM.
250 - More speed optimizations:
251 - 60% speed up in retain-gid (used for IFT) subsetting of SourceHanSans-VF.
252 - 16% speed up in retain-gid (used for IFT) subsetting of NotoSansCJKkr.
253 - 38% speed up in subsetting (beyond-64k) mega-merged Noto.
259 - New, experimental, WebAssembly (WASM) shaper, that provides greater
264 https://github.com/harfbuzz/harfbuzz/blob/main/docs/wasm-shaper.md
268 https://github.com/harfbuzz/harfbuzz-wasm-examples
270 - Improvements to Experimental features introduced in earlier releases:
271 - Support for subsetting beyond-64k and VarComposites fonts.
272 - Support for instancing variable fonts with cubic “glyf” table.
274 - Many big speed optimizations:
275 - Up to 89% speedup loading variable fonts for shaping.
276 - Up to 88% speedup in small subsets of large (eg. CJK) fonts (both TTF and
278 - Over 50% speedup in loading Roboto font for shaping.
279 - Up to 40% speed up in loading (sanitizing) complex fonts.
280 - 30% speed up in shaping Gulzar font.
281 - Over 25% speedup in glyph loading Roboto font.
282 - 10% speed up loading glyph shapes in VarComposite Hangul font.
283 - hb-hashmap optimizations & hashing improvements.
285 - New macro HB_ALWAYS_INLINE. HarfBuzz now inlines functions more aggressively,
289 - New API:
301 - Speedup applying glyph variation in VarComposites fonts (over 40% speedup).
303 - Speedup instancing some fonts (over 20% speedup in instancing RobotoFlex).
305 - Speedup shaping some fonts (over 30% speedup in shaping Roboto).
307 - Support subsetting VarComposites and beyond-64k fonts. (Behdad Esfahbod)
308 - New configuration macro HB_MINIMIZE_MEMORY_USAGE to favor optimizing memory
310 - Supporting setting the mapping between old and new glyph indices during
312 - Various fixes and improvements.
315 - New API:
322 - Add Tifinagh to the list of scripts that can natively be either right-to-left
323 or left-to-right, to improve handling of its glyph positioning.
325 - Return also single substitution from hb_ot_layout_lookup_get_glyph_alternates()
327 - Fix 4.2.0 regression in applying across syllables in syllabic scripts.
329 - Add flag to avoid glyph substitution closure during subsetting, and the
330 corresponding “--no-layout-closure” option to “hb-subset” command line tool.
332 - Support instancing COLRv1 table. (Qunxin Liu)
333 - Don’t drop used user-defined name table entries during subsetting.
335 - Optimize handling of “gvar” table. (Behdad Esfahbod)
336 - Various subsetter bug fixes and improvements. (Garret Rieger, Qunxin Liu)
337 - Various documentation improvements. (Behdad Esfahbod, Josef Friedrich)
339 - New API:
343 - Deprecated API:
350 - New experimental hb_shape_justify() API that uses font variations to expand
352 - Various build and bug fixes. (Behdad Esfahbod, Garret Rieger, Qunxin Liu)
354 - New API:
361 - Various build and bug fixes.
367 - New hb-paint API that is designed mainly to paint “COLRv1” glyphs, but can be
371 - New hb-cairo API for integrating with cairo graphics library. This is provided
372 as a separate harfbuzz-cairo library. (Behdad Esfahbod, Matthias Clasen)
373 - Support for instancing “CFF2” table. (Behdad Esfahbod)
374 - Support font emboldening. (Behdad Esfahbod)
375 - Support feature ranges with AAT shaping. (Behdad Esfahbod)
376 - Experimental support to cubic curves in “glyf” table, see
377 https://github.com/harfbuzz/boring-expansion-spec/blob/main/glyf1-cubicOutlines.md
379 - Various subsetter improvements. (Garret Rieger, Qunxin Liu, Behdad Esfahbod)
380 - Various documentation improvements.
382 - Significantly reduced memory use during shaping. (Behdad Esfahbod)
383 - Greatly reduced memory use during subsetting “CFF” table. (Behdad Esfahbod)
384 - New command line utility, hb-info, for querying various font information.
386 - New hb-shape/hb-view options: --glyphs, --color-palette, --font-bold,
387 --font-grade, and --named-instance. (Behdad Esfahbod)
388 - Miscellaneous fixes and improvements.
389 (Amir Masoud Abdol, Andres Salomon, Behdad Esfahbod, Chun-wei Fan,
393 - New API:
488 - Deprecated API:
497 - A new API have been added to pre-process the face and speed up future
502 https://github.com/harfbuzz/harfbuzz/blob/main/docs/subset-preprocessing.md
506 - Shaping have been speedup by skipping entire lookups when the buffer contents
510 - A new experimental feature, “Variable Composites” (enabled by passing
511 -Dexperimental_api=true to meson), is also featured in this release.
517 https://github.com/harfbuzz/boring-expansion-spec/blob/glyf1/glyf1.md
519 A test variable-font with ~7160 Hangul syllables derived from the
520 NotoSerifKR-VF font has been built, with existing OpenType technology, as
529 $ hb-view butchered-hangul-serif-smarties-variable.ttf -u AE01 --variations=wght=700
533 - The HarfBuzz subsetter can now drop axes by pinning them to specific values
537 - Only works with TrueType (“glyf”) based fonts. “CFF2” fonts are not yet
539 - Only supports the case where all axes in a font are pinned.
543 - Miscellaneous fixes and improvements.
550 - New API
559 - Subsetter repacker fixes. (Garret Rieger)
560 - Adjust Grapheme clusters for Katakana voiced sound marks. (Behdad Esfahbod)
561 - New “hb-subset” option “--preprocess-face”. (Garret Rieger)
568 - Don’t add glyphs from dropped MATH or COLR tables to the subset glyphs.
570 - Map “rlig” to appropriate AAT feature selectors. (Jonathan Kew)
571 - Update USE data files to latest version. (David Corbett)
572 - Check “CBDT” extents first before outline tables, to help with fonts that
574 - More work towards variable font instancing in the subsetter. (Qunxin Liu)
575 - Subsetter repacker improvements. (Garret Rieger)
576 - New API:
584 - Fix regressions in hb-ft font functions for FT_Face’s with transformation
586 - The experimental hb-repacker API now supports splitting several GPOS subtable
588 - The HarfBuzz extensions to OpenType font format are now opt-in behind
589 build-time flags. (Behdad Esfahbod)
590 - The experimental hb-subset variable fonts instantiation API can now
592 - Unicode 15 support. (David Corbett)
593 - Various documentation improvements. (Behdad Esfahbod, Matthias Clasen)
594 - The hb-view command line tool now detects WezTerm inline images support.
596 - Fix FreeType and ICU dependency lookup with meson. (Xavier Claessens)
598 - New API:
606 - More extensive buffer tracing messages. (Behdad Esfahbod)
607 - Fix hb-ft regression in bitmap fonts rendering. (Behdad Esfahbod)
608 - Support extension promotion of lookups in hb-subset-repacker. (Garret Rieger)
609 - A new HB_GLYPH_FLAG_SAFE_TO_INSERT_TATWEEL for scripts that use elongation
612 - Add “--safe-to-insert-tatweel” to “hb-shape” tool. (Behdad Esfahbod)
614 - New API
622 - Fix version 2 “avar” table with hb-ft. (Behdad Esfahbod)
628 - Support fonts with more than 65535 glyphs in “GDEF”, “GSUB”, and “GPOS”
629 tables. This is part of https://github.com/be-fonts/boring-expansion-spec to
630 extend OpenType in a backward-compatible way.
632 - Complete support for more than 65535 glyphs in “glyf” table that started in
633 4.0.0 release. Part of boring-expansion-spec. (Behdad Esfahbod)
634 - Support version 2 of “avar” table. Part of boring-expansion-spec.
636 - Fix mark attachment on multiple substitutions in some cases.
638 - Fix application of “calt”, “rclt”, and “ccmp” features to better match
640 - Improvement to interaction between multiple cursive attachments.
642 - Improve multiple mark interactions in Hebrew. (Behdad Esfahbod)
643 - Implement language-specific forms in AAT shaping. (Behdad Esfahbod)
644 - Fix variation of “VORG” table. (Behdad Esfahbod)
645 - Support for specific script tags to be retained in the subsetter, and add
646 “--layout-scripts” option to “hb-subset” tool. (Garret Rieger)
647 - Accept space as delimiter for --features/--variations in command line tools.
648 - Improve subsetting of “COLR” table. (Qunxin Liu)
649 - Improved fuzzing coverage for ot-math API. (Frédéric Wang)
650 - Fix “kern” table version 2 (AAT) sanitization on 32-bit systems.
652 - Allow negative glyph advances from “graphite2” shaper. (Stephan Bergmann)
653 - Implement loading (color) bitmap fonts with hb-ft. (Behdad Esfahbod)
654 - Fix regression in hb-ft when changing font size. (Behdad Esfahbod)
655 - Fix build on GCC < 7. (Kleis Auke Wolthuizen)
656 - Dynamically load dwrite.dll on windows if “directwrite” shaper is enabled.
658 - Provide a single-file harfbuzz-subset.cc file for easier alternate building
659 of hb-subset library, similar to harfbuzz.cc. (Khaled Hosny)
661 - New API
669 - Fix test failure with some compilers.
670 - Fix Telugu and Kannada kerning regression.
676 - Caching of variable fonts shaping, in particular when using HarfBuzz’s own
678 with non-variable fonts shaping. (Behdad Esfahbod)
679 - Caching of format 2 “Contextual Substitution” and “Chained Contexts
680 Substitution” lookups. Resulting in up to 20% speedup of lookup-heavy fonts
682 - Improved ANSI output from hb-view. (Behdad Esfahbod)
683 - Support for shaping legacy, pre-OpenType Windows 3.1-era, Arabic fonts that
685 - Sinhala script is now shaped by the USE shaper instead of “indic” one.
687 - Thai shaper improvements. (David Corbett)
688 - hb-ot-name API supports approximate BCP-47 language matching, for example
691 - Optimized TrueType glyph shape loading. (Behdad Esfahbod)
692 - Fix subsetting of HarfBuzz faces created via hb_face_create_for_tables().
694 - Add 32 bit var store support to the subsetter. (Garret Rieger)
696 - New API
710 - Major speed up in loading and subsetting fonts, especially in
713 - Speed up blending CFF2 table. (Behdad Esfahbod)
714 - Speed up hb_ot_tags_from_language(). (Behdad Esfahbod, David Corbett)
715 - Fix USE classification of U+10A38 to fix multiple marks on single Kharoshthi
717 - Fix parsing of empty CFF Index. (Behdad Esfahbod)
718 - Fix subsetting CPAL table with partial palette overlaps. (Garret Rieger)
720 - New API
727 - Make sure hb_blob_create_from_file_or_fail() always returns nullptr in case
729 - Add --passthrough-tables option to hb-subset. (Cosimo Lupo)
730 - Reinstate a pause after basic features in Khmer shaper, fixing a regression
732 - Better handling of Regional_Indicator when shaped with RTL-native scripts,
739 - Source code reorganization, splitting large hb-ot-layout files into smaller,
740 per-subtable ones under OT/Layout/*. Code for more tables will follow suit in
742 - Revert Indic shaper change in previous release that broke some fonts and
743 instead make per-syllable restriction of “GSUB” application limited to
744 script-specific Indic features, while applying them and discretionary
746 - Fix decoding of private in gvar table. (Behdad Esfahbod)
747 - Fix handling of contextual lookups that delete too many glyphs. (Behdad Esfahbod)
748 - Make “morx” deleted glyphs don’t block “GPOS” application. (Behdad Esfahbod)
749 - Various build fixes. (Chun-wei Fan, Khaled Hosny)
751 - New API
758 - Various OSS-Fuzz fixes. (Behdad Esfahbod)
759 - Make fallback vertical-origin match FreeType’s. (Behdad Esfahbod)
760 - Treat visible viramas like dependent vowels in USE shaper. (David Corbett)
761 - Apply presentation forms features and discretionary features in one go in
764 - Various bug fixes.
766 - New API
773 - Update OpenType to AAT mappings for “hist” and “vrtr” features.
775 - Update IANA Language Subtag Registry to 2022-03-02. (David Corbett)
776 - Update USE shaper to allow any non-numeric tail in a symbol cluster, and
778 - Fix handling of baseline variations to return correctly scaled values.
780 - A new experimental hb_subset_repack_or_fail() to repack an array of objects,
784 - New experimental API
793 - New public API to create subset plan and gather information on things like
796 - Draw API for extracting glyph shapes have been extended and finalized and is
800 previous, non-public, experimental API. (Behdad Esfahbod)
801 - The hb-view tool will use HarfBuzz draw API to render the glyphs instead of
802 cairo-ft when compiled with Cairo 1.17.5 or newer, setting HB_DRAW
805 - The hb-shape and hb-view tools now default to using HarfBuzz’s own font
807 option, --font-slant, to apply synthetic slant to the font. (Behdad Esfahbod)
808 - HarfBuzz now supports more than 65535 (the OpenType limit) glyph shapes and
809 metrics. See https://github.com/be-fonts/boring-expansion-spec/issues/6 and
810 https://github.com/be-fonts/boring-expansion-spec/issues/7 for details.
812 - New API to get the dominant horizontal baseline tag for a given script.
814 - New API to get the baseline positions from the font, and synthesize missing
817 - Improvements to finding dependencies on Windows when building with Visual
818 Studio. (Chun-wei Fan)
819 - New buffer flag, HB_BUFFER_FLAG_PRODUCE_UNSAFE_TO_CONCAT, that must be set
823 - Documentation improvements. (Matthias Clasen)
825 - New API
826 - General:
830 - Draw:
858 - OpenType layout
864 - Metrics:
867 - Subset:
883 - Perform sanity checks on shaping results is now part of “harfbuzz” library
886 - Arabic Mark Transient Reordering Algorithm have been updated to revision 6.
888 - ISO 15924 code for mathematical notation, ‘Zmth’, now maps to the OpenType
890 - It is now possible to get at once all math kerning values for a given glyph
892 - Fix locale_t portability issues on systems the typedef’s it to a void
895 - New API:
902 - Deprecated API
909 - Revert splitting of pair positioning values introduced in 3.3.0 as it proved
916 - Fix heap-use-after-free in harfbuzz-subset introduced in previous release.
923 - Improved documentation. (Matthias Clasen)
924 - Internal code cleanup, using C++ standard library more. (Behdad Esfahbod)
925 - The low 16-bits of face index will be used by hb_face_create() to select a
926 face inside a font collection file format, while the high 16-bits will be
928 - Glyph positions and other font metrics now apply synthetic slant set by
931 - Fixed unintentional locale dependency in hb_variation_to_string() for decimal
933 - When applying pair positioning (kerning) the positioning value is split
936 - Introduced new HB_GLYPH_FLAG_UNSAFE_TO_CONCAT, to be used in conjunction
937 with HB_GLYPH_FLAG_UNSAFE_TO_BREAK for optimizing re-shaping during line
939 - Improved handling of macrolanguages when mapping BCP 47 codes to OpenType
942 - New API:
955 - Fixed shaping of Apple Color Emoji flags in right-to-left context. (Behdad Esfahbod)
956 - Fixed positioning of CFF fonts in HB_TINY profile. (Behdad Esfahbod)
957 - OpenType 1.9 language tags update. (David Corbett)
958 - Add HB_NO_VERTICAL config option.
959 - Add HB_CONFIG_OVERRIDE_H for easier configuration. (Behdad Esfahbod)
961 “harfbuzz-subset” library improvements:
962 - Improved packing of cmap, loca, and Ligature tables. (Garret Rieger)
963 - Significantly improved overflow-resolution strategy in the repacker. (Garret Rieger)
969 - hb-shape / hb-view: revert treating text on the commandline as single
970 paragraph (was introduced in 3.0.0); add new --single-par to do that.
972 - Subsetter bug fixes. (Garret Rieger, Qunxin Liu, Behdad Esfahbod)
978 - Work around GCC cast-align error/warning on some platforms. (Behdad Esfahbod)
979 - Documentation improvements. (Matthias Clasen)
985 - Better offset-overflow handling in the subsetter library. (Garret Rieger)
986 - Improved Unicode 14 properties in the USE shaper, and various other USE
988 - MATH and COLR v1 tables subsetting support, and various other subsetter fixes.
990 - Support for Pwo Karen / Ason Chin medial la. (Simon Cozens)
991 - Apply GPOS positioning when substituting with morx table, if kerx is missing.
993 - Apply calt and clig features across syllable boundaries in Indic shaper.
995 - meson option for enabling Graphite 2 has been renamed to graphite2.
996 - Build and documentation fixes.
998 - New API:
1006 - Unicode 14.0 support (David Corbett).
1007 - The hb-subset API and the harfbuzz-subset library's ABI are now declared
1008 stable. The harfbuzz-subset library would not have been possible without the
1011 - The hb-style API is now stable and no longer experimental.
1013 - New API:
1031 - Removed old unstable harfbuzz-subset API:
1032 -hb_subset_input_nameid_set()
1033 -hb_subset_input_namelangid_set()
1034 -hb_subset_input_layout_features_set()
1035 -hb_subset_input_no_subset_tables_set()
1036 -hb_subset_input_drop_tables_set()
1037 -hb_subset_input_set_drop_hints()
1038 -hb_subset_input_get_drop_hints()
1039 -hb_subset_input_set_desubroutinize()
1040 -hb_subset_input_get_desubroutinize()
1041 -hb_subset_input_set_retain_gids()
1042 -hb_subset_input_get_retain_gids()
1043 -hb_subset_input_set_name_legacy()
1044 -hb_subset_input_get_name_legacy()
1045 -hb_subset_input_set_overlaps_flag()
1046 -hb_subset_input_get_overlaps_flag()
1047 -hb_subset_input_set_notdef_outline()
1048 -hb_subset_input_get_notdef_outline()
1049 -hb_subset_input_set_no_prune_unicode_ranges()
1050 -hb_subset_input_get_no_prune_unicode_ranges()
1051 -hb_subset()
1057 - Final subset API is in place and if no issues are discovered, it will be the
1060 - Various fuzzer-found bug fixes.
1061 - hb_buffer_append() now handles the pre- and post-context which previously
1063 - hb-view / hb-shape now accept following new arguments:
1064 o --unicodes-before/after: takes a list of hex numbers that represent Unicode
1066 - Undeprecated API:
1074 - Subsetter API is being stabilized, with the first stable API to happen in
1076 - Support multiple variation axes with same tag, aka HOI.
1077 - The “coretext” testing shaper now passes font variations to CoreText.
1078 - hb-shape/hb-view does not break line at new lines unless text is read from
1080 - hb-view and hb-subset has a --batch now, similar to hb-shape.
1081 - The --batch mode now uses ; as argument separator instead of : used previously.
1082 - The --batch in hb-shape does not expect 0th argument anymore. That is, the
1084 - The --batch option has been undocumented. We are ready to document it; send
1086 - hb-subset got arguments revamps. Added much-requested --gids-file, --glyphs,
1087 --glyphs-file, --unicodes-file, supporting ranges in --unicodes.
1088 - Various bug fixes.
1094 - Shaping LTR digits for RTL scripts now makes the native direction of the
1097 - Subsetting COLR v1 and CPAL tables is now supported. (Garret Rieger, Qunxin Liu)
1098 - Various fixes and improvements to the subsetter. (Garret Rieger, Qunxin Liu, Behdad)
1099 - When applying morx table, mark glyph widths should not be zeroed. (Jonathan Kew)
1100 - GPOS is preferred over kerx, if GSUB was applied. (Behdad)
1101 - Regional_Indicator pairs are grouped together when clustering. (Behdad)
1102 - New API:
1111 - Subsetter now fully supports GSUB/GPOS/GDEF tables (including variations); as
1113 - Build scripts no longer check for FontConfig as HarfBuzz does not use it.
1114 - hb-view supports iTerm2 and kitty inline image protocols (Khaled Hosny),
1120 - Shape joining scripts other than Arabic/Syriac using the Universal Shaping Engine.
1122 - Fix regression in shaping of U+0B55 ORIYA SIGN OVERLINE. (David Corbett)
1123 - Update language tags. (David Corbett)
1124 - Variations: reduce error: do not round each interpolated delta. (Just van Rossum)
1125 - Documentation improvements. (Khaled Hosny, Nathan Willis)
1126 - Subsetter improvements: subsets most, if not all, lookup types now. (Garret Rieger, Qunxin Liu)
1127 - Fuzzer-found fixes and other improvements when memory failures happen. (Behdad)
1128 - Removed most atomic implementations now that we have C++11 atomic impl. (Behdad)
1129 - General codebase upkeep; using more C++11 features: constexpr constructors, etc. (Behdad)
1135 - Fix missing --enable-introspection configure option from previous release
1137 - Documentation updates.
1143 - Update USE shaper to 2020-08-13 specification, and other improvements.
1144 - Don’t disable liga feature in myanmar shaper, to match Uniscribe.
1145 - Improvements to language and script tags handling.
1146 - Update language system tag registry to OpenType 1.8.4
1147 - Support for serializing and deserializing Unicode buffers. Serialized buffers
1150 - Increase buffer work limits to handle fonts with many complex lookups.
1151 - Handle more shaping operations in trace output.
1152 - Memory access fixes.
1153 - More OOM fixes.
1154 - Improved documentation.
1155 - Build system improvements.
1156 - New API:
1166 - Fix a regression in the previous release that caused a crash with Kaithi.
1167 - More OOM fixes.
1173 - ot-funcs now handles variable empty glyphs better when hvar/vvar isn't present.
1174 - Reverted a GDEF processing regression.
1175 - A couple of fixes to handle OOM better.
1181 - Use an implementation for round that always rounds up, some minor fluctuations
1182 are expected on var font specially when hb-ot callback is used.
1183 - Fix an AAT's `kerx` issue on broken rendering of Devanagari Sangam MN.
1184 - Remove AAT's `lcar` table support from _get_ligature_carets API, not even much
1187 - Minor memory fixes to handle OOM better specially in hb-ft.
1188 - Minor .so files versioning scheme change and remove stable/unstable scheme
1190 - We are now suggesting careful packaging of the library using meson,
1191 https://github.com/harfbuzz/harfbuzz/wiki/Notes-on-migration-to-meson
1193 - Distribution package URL is changed, either use GitHub generated tarballs,
1202 - New API to fetch glyph alternates from GSUB table.
1203 - hb-coretext build fix for macOS < 10.10.
1204 - Meson build fixes, cmake port removal is postponed but please prepare for
1208 - New API:
1215 - Update to Unicode 13.0.0.
1216 - Fix hb_ot_layout_get_ligature_carets for fonts without lcar table, it was
1218 - As a part of our migration to meson, this release will be the last one
1227 - A fix in AAT kerning for Geeza Pro.
1228 - Better support for resource fork fonts on macOS.
1234 - Add experimental meson build system. Autotools is still the primary
1236 - AAT is now always preferred for horizontal scripts when both AAT and OT
1238 - Subsetter improvements.
1239 - New API:
1247 - Small bug fix.
1248 - Build fixes.
1254 - Misc small fixes, mostly to build-related issues.
1255 - New API:
1262 - Misc small fixes, mostly to build-related issues.
1268 - Fix regression with hb_font_create_sub_font scaling introduced in 2.6.0.
1269 - Change interpretation of font PTEM size / CoreText font size handling.
1271 - hb-ot-font: Prefer symbol cmap subtable if present.
1272 - Apply 'dist'/'abvm'/'blwm' features to all scripts.
1273 - Drop experimental DirectWrite API.
1279 - New OpenType metrics, baseline, and metadata table access APIs.
1280 - New API to set font variations to a named-instance.
1281 - New hb-gdi.h header and API for creating hb_face_t from HFONT.
1282 - Amalgam: Provide a single-file harfbuzz.cc file for easier alternate building.
1283 - More size-reduction configurable options, enabled by HB_TINY.
1284 - New API:
1302 - Fix UCD script data for Unicode 10+ scripts. This was broken since 2.5.0.
1303 - More optimizations for HB_TINY.
1309 - More hb-config.hh facilities to shrink library size, namely when built as
1311 - New documentation of custom configurations in CONFIG.md.
1312 - Fix build on gcc 4.8. That's supported again.
1313 - Universal Shaping Engine improvements thanks to David Corbett.
1314 - API Changes: Undeprecate some horizontal-kerning API and re-enable in hb-ft,
1321 - Fix build with various versions of Visual Studio.
1322 - Improved documentation, thanks to Nathan Willis.
1323 - Bugfix in subsetting glyf table.
1324 - Improved scripts for cross-compiling for Windows using mingw.
1325 - Rename HB_MATH_GLYPH_PART_FLAG_EXTENDER to HB_OT_MATH_GLYPH_PART_FLAG_EXTENDER.
1326 A deprecated macro is added for backwards-compatibility.
1332 - This release does not include much functional changes, but includes major internal
1333 code-base changes. We now require C++11. Support for gcc 4.8 and earlier has been
1335 - New hb-config.hh facility for compiling smaller library for embedded and web usecases.
1336 - New Unicode Character Database implementation that is half the size of previously-used
1338 - Subsetter improvements.
1339 - Improved documentation, thanks to Nathan Willis.
1340 - Misc shaping fixes.
1346 - Unicode 12.
1347 - Misc fixes.
1348 - Subsetter improvements.
1349 - New API:
1357 - AAT bug fixes.
1358 - Misc internal housekeeping cleanup.
1364 - Fix regression on big-endian architectures. Ouch!
1365 - Misc bug and build fixes.
1366 - Fix subsetting of simple GSUB/GDEF.
1367 - Merge CFF / CFF2 support contributed by Adobe. This mostly involves
1370 New API in hb-aat.h:
1379 - Misc shaping bug fixes.
1380 - Add font variations named-instance API.
1381 - Deprecate font variations axis enumeration API and add replacement.
1382 - AAT shaping improvements:
1414 - Fix AAT 'mort' shaping, which was broken in 2.1.2
1420 - Various internal changes.
1421 - AAT shaping improvements:
1422 o Implement kern table Format 1 state-machine-based kerning.
1423 o Implement cross-stream kerning (cursive positioning, etc).
1428 -Overview of changes leading to 2.1.1
1431 - AAT improvements:
1439 - AAT shaping improvements:
1442 o Implement tuple-kerns in 'kerx'; Fixes kerning with Apple default
1444 - Support for color fonts:
1448 - New 'name' table API.
1449 - hb-ot-font now uses 'VORG' table to correctly position CFF glyphs
1451 - Various fuzzer-found bug fixes.
1457 hb_name_id_t -> hb_ot_name_id_t
1458 HB_NAME_ID_INVALID -> HB_OT_NAME_ID_INVALID
1520 - Fix two minor memory access issues in AAT tables.
1526 - Fix hb-version.h reported release version that went wrong (1.8.0)
1528 - Fix extrapolation in 'trak' table.
1529 - Fix hb-font infinite-recursion issue with some font funcs and
1531 - Implement variation-kerning format in kerx table, although without
1533 - Fix return value of hb_map_is_empty().
1539 - Added AAT shaping support (morx/kerx/trak).
1543 - Apply TrueType kern table internally, instead of relying on
1545 - Khmer shaper significantly rewritten to better match Uniscribe.
1546 - Indic3 tags ('dev3', etc) are passed to USE shaper.
1547 - .dfont Mac font containers implemented.
1548 - Script- and language-mapping revamped to better use BCP 47.
1549 - Misc USE and Indic fixes.
1550 - Misc everything fixes.
1551 - Too many things to list. Biggest release since 0.9.1, with
1554 - hb-ft now locks underlying FT_Face during use.
1558 - Newly-created hb_font_t's now have our internal "hb-ot-font"
1565 - New hb_font_funcs_set_nominal_glyphs_func() allows speeding
1585 -hb_font_funcs_set_glyph_func()
1586 -hb_unicode_eastasian_width_func_t
1587 -hb_unicode_funcs_set_eastasian_width_func()
1588 -hb_unicode_eastasian_width()
1589 -hb_unicode_decompose_compatibility_func_t
1590 -HB_UNICODE_MAX_DECOMPOSITION_LEN
1591 -hb_unicode_funcs_set_decompose_compatibility_func()
1592 -hb_unicode_decompose_compatibility()
1593 -hb_font_funcs_set_glyph_h_kerning_func()
1594 -hb_font_funcs_set_glyph_v_kerning_func()
1595 -hb_font_get_glyph_h_kerning()
1596 -hb_font_get_glyph_v_kerning()
1597 -hb_font_get_glyph_kerning_for_direction()
1598 -hb_ot_layout_table_choose_script()
1599 -hb_ot_layout_script_find_language()
1600 -hb_ot_tags_from_script()
1601 -hb_ot_tag_from_language()
1607 - Added 'cmap' API to hb_face_t.
1608 - Face-builder API.
1609 - hb-ot-font re-creation should be much leaner now, as the
1611 - Internal source header file name changes:
1612 hb-*-private.hh is renamed to hb-*.hh.
1626 - Fix hb-icu crash on architectures where compare_exchange_weak() can
1629 - More internal refactoring of atomic operations and singletons.
1630 - API changes:
1644 - Fix assertion failure with GDEF-blacklisted fonts.
1650 - Internal code shuffling.
1651 - New API to speed up getting advance widths for implementations
1665 - Major Khmer shaper improvements to better match Microsoft.
1666 - Indic bug fixes.
1667 - Internal improvements to atomic operations.
1673 - Fix build on non-C++11.
1674 - Use C++-style GCC atomics and C++11 atomics.
1680 - A couple of Indic / USE bug fixes.
1681 - Disable vectorization, as it was causing unaligned access bus error on
1688 - Fix infinite loop in Khmer shaper.
1689 - Improve hb_blob_create_from_file() for streams.
1695 - Fix hb-version.h file generation; last two releases went out with wrong ones.
1696 - Add correctness bug in hb_set_t operations, introduced in 1.7.7.
1697 - Remove HB_SUBSET_BUILTIN build option. Not necessary.
1703 - Update to Unicode 11.0.0.
1709 - Lots of internal changes, but not yet exposed externally.
1710 - All HarfBuzz objects are significantly smaller in size now.
1711 - Sinhala: Position repha on top of post-consonant, not base.
1714 - New build options:
1717 - Significant libharfbuzz-subset changes. API subject to change.
1718 - New API in libharfbuzz:
1724 +hb-map.h
1747 - Fix to hb_set_t binary operations. Ouch.
1748 - New experimental harfbuzz-subset library. All of hb-subset.h
1751 - New API:
1762 - Separate Khmer shaper from Indic.
1763 - First stab at AAT morx. Not hooked up.
1764 - Misc bug fixes.
1771 - Fix collect_glyphs() regression caused by hb_set_t changes.
1778 - hb_set_t performance tuning and optimizations.
1779 - Speed up collect_glyphs() and reject garbage data.
1780 - In hb_coretext_font_create() set font point-size (ptem).
1781 - Misc fixes.
1788 - Optimize hb_set_add_range().
1789 - Misc fixes.
1790 - New API:
1798 - Fix atexit object destruction regression.
1799 - Fix minor integer-overflow.
1806 - Minor Indic fixes.
1807 - Implement kerning and glyph names in hb-ot-font.
1808 - Various DSO optimization re .data and .bss sizes.
1809 - Make C++11 optional; build fixes.
1810 - Mark all other backends "unsafe-to-break".
1811 - Graphite fix.
1818 - Fix hb_set_t some more. Should be solid now.
1819 - Implement get_glyph_name() for hb-ot-font.
1820 - Misc fixes.
1827 - Yesterday's release had a bad crasher; don't use it. That's what
1830 - Build fixes for FreeBSD and Chrome Android.
1837 - Don't skip over COMBINING GRAPHEME JOINER when ligating, etc.
1839 - Faster hb_set_t implementation.
1840 - Don't use deprecated ICU API.
1841 - Fix undefined-behavior in Myanmar shaper, introduced in 1.6.0
1842 - Deprecated API:
1850 - Update to Unicode 10.
1852 - Various Indic and Universal Shaping Engine fixes as a result of
1857 - Implement Unicode Arabic Mark Ordering Algorithm UTR#53.
1859 - Implement optical sizing / tracking in CoreText backend, using
1862 - Allow notifying hb_font_t that underlying FT_Face changed sizing,
1865 - More Graphite backend RTL fixes.
1867 - Fix caching of variable font shaping plans.
1869 - hb-view / hb-shape now accept following new arguments:
1871 o --unicodes: takes a list of hex numbers that represent Unicode
1885 - Fix "unsafe-to-break" in fallback shaping and other corner cases.
1886 All our tests pass with --verify now, meaning unsafe-to-break API
1888 - Add --unicodes to hb-view / hb-shape.
1889 - [indic] Treat Consonant_With_Stacker as consonant. This will need
1891 - hb_buffer_diff() tweaks.
1898 - Misc new API, for appending a buffer to another, and for comparing
1901 - New "unsafe-to-break" API. Can be used to speed up reshaping
1902 in line-breaking situations. Essentially, after shaping, it returns
1908 hb-view and hb-shape and hb-shape now take --verify, which verifies
1914 - New API:
1942 - Major fix to avar table handling.
1943 - Rename hb-shape --show-message to --trace.
1944 - Build fixes.
1951 - Multiple Indic, Tibetan, and Cham fixes.
1952 - CoreText: Allow disabling kerning.
1953 - Adjust Arabic feature order again.
1954 - Misc build fixes.
1961 - Graphite2: Fix RTL positioning issue.
1962 - Backlist GDEF of more versions of Padauk and Tahoma.
1963 - New, experimental, cmake alternative build system.
1970 - Revert "Fix Context lookup application when moving back after a glyph..."
1978 - Fix Context lookup application when moving back after a glyph deletion.
1979 - Fix buffer-overrun in Bengali.
1986 - Route Adlam script to Arabic shaper.
1987 - Misc fixes.
1988 - New API:
1990 - Deprecate API:
1998 - Implement OpenType Font Variation tables avar/fvar/HVAR/VVAR.
1999 - hb-shape and hb-view now accept --variations.
2000 - New API:
2010 hb-ot-var.h:
2019 - MVAR to be implemented later. Access to named instances to be
2022 - Misc fixes.
2029 - Always build and use UCDN for Unicode data by default.
2039 - Merged "OpenType GX" branch which adds core of support for
2061 HVAR/VVAR/MVAR support will also be added to hb-ot-font in the
2064 - Fix regression in GDEF glyph class processing.
2065 - Add decompositions for Chakma, Limbu, and Balinese in USE shaper.
2066 - Misc fixes.
2073 - Fix vertical glyph origin in hb-ot-font.
2074 - Implement CBDT/CBLC color font glyph extents in hb-ot-font.
2081 - Implement parsing of OpenType MATH table.
2105 - Fix build of hb-coretext on older OS X versions.
2112 - Blacklist bad GDEF of more fonts (Padauk).
2113 - More CoreText backend crash fixes with OS X 10.9.5.
2114 - Misc fixes.
2121 - Update to Unicode 9.0.0
2122 - Move Javanese from Indic shaper to Universal Shaping Engine.
2123 - Allow MultipleSubst to delete a glyph (matching Windows engine).
2124 - Update Universal Shaping Engine to latest draft from Microsoft.
2125 - DirectWrite backend improvements. Note: this backend is for testing ONLY.
2126 - CoreText backend improvements with unreachable fonts.
2127 - Implement symbol fonts (cmap 3.0.0) in hb-ft and hb-ot-font.
2128 - Blacklist bad GDEF of more fonts (Tahoma & others).
2129 - Misc fixes.
2136 - Blacklist another version of Times New Roman (Bold) Italic from Windows 7.
2137 - Fix Mongolian Free Variation Selectors shaping with certain fonts.
2138 - Fix Tibetan shorthand contractions shaping.
2139 - Improved list of language tag mappings.
2140 - Unbreak build on Windows CE.
2141 - Make 'glyf' table loading lazy in hb-ot-font.
2148 - Blacklist GDEF table of another set of Times New Roman (Bold) Italic.
2149 - DirectWrite backend improvements. Note: DirectWrite backend is
2158 - Fix GDEF mark-filtering-set, which was broken in 1.2.3.
2165 - Synthesize GDEF glyph class for any glyph that does not have one in GDEF.
2168 - Misc build and other minor fixes.
2169 - API changes:
2170 - Added HB_NDEBUG. It's fine for production systems to define this to
2171 disable high-overhead debugging checks. However, I also reduced the
2172 overhead of those checks, so it's a non-issue right now. You can
2180 - Blacklist GDEF table of certain versions of Times New Roman (Bold) Italic,
2181 due to bug in glyph class of ASCII double-quote character. This should
2186 - hb-ot-font's get_glyph() implementation saw some optimizations. Though,
2187 might be really hard to measure in real-world situations.
2189 - Also, two rather small API changes:
2191 We now disable some time-consuming internal bookkeeping if built with NDEBUG
2199 - hb_font_get_nominal_glyph_func_t
2200 - hb_font_get_variation_glyph_func_t
2201 - hb_font_funcs_set_nominal_glyph_func()
2202 - hb_font_funcs_set_variation_glyph_func()
2203 - hb_font_get_nominal_glyph()
2204 - hb_font_get_variation_glyph()
2207 - hb_font_get_glyph_func_t
2208 - hb_font_funcs_set_glyph_func()
2210 Clients that implement their own font-funcs are encouraged to replace
2222 - Fix regression with mark positioning with fonts that have
2223 non-zero mark advances. This was introduced in 1.2.0 while
2234 - CoreText: Fix bug with wrong scale if font scale was changed later.
2236 - CoreText: Drastically speed up font initialization.
2237 - CoreText: Fix tiny leak.
2238 - Group ZWJ/ZWNJ with previous syllable under cluster-level=0.
2240 - Add test/shaping/README.md about how to add tests to the suite.
2247 - Fix various issues (hangs mostly) in case of memory allocation failure.
2248 - Change mark zeroing types of most shapers from BY_UNICODE_LATE to
2250 - Change mark zeroing of USE shaper from NONE to BY_GDEF_EARLY. That's
2252 - Allow GPOS cursive connection on marks, and fix the interaction with
2257 - Graphite2 shaper: improved negative advance handling (eg. Nastaliq).
2258 - Add nmake-based build system for Windows.
2259 - Minor speedup.
2260 - Misc. improvements.
2267 - Ported Indic shaper to Unicode 8.0 data.
2268 - Universal Shaping Engine fixes.
2269 - Speed up CoreText shaper when font fallback happens in CoreText.
2270 - Documentation improvements, thanks to Khaled Hosny.
2271 - Very rough directwrite shaper for testing, thanks to Ebrahim Byagowi.
2272 - Misc bug fixes.
2273 - New API:
2296 - Fix badly-broken fallback shaper that affected terminology.
2298 - Fix y_scaling in Graphite shaper.
2299 - API changes:
2300 * An unset glyph_h_origin() function in font-funcs now (sensibly)
2311 - Build fixes, specially for hb-coretext.
2318 - Implement 'stch' stretch feature for Syriac Abbreviation Mark.
2320 - Disable use of decompose_compatibility() callback.
2321 - Implement "shaping" of various Unicode space characters, even
2324 - If font does not support U+2011 NO-BREAK HYPHEN, fallback to
2326 - Changes resulting from libFuzzer continuous fuzzing:
2329 * Fix assertions and other issues at OOM / buffer max-growth.
2330 - Misc fixes and optimizations.
2331 - API changes:
2340 - Reduce max nesting level in OT lookups from 8 to 6.
2342 - Fix memory access issue in ot-font.
2343 - Revert default load-flags of fonts created using hb_ft_font_create()
2353 - Fix multiple memory access bugs discovered using libFuzzer.
2358 - Misc fixes.
2360 - New API:
2367 - API changes:
2368 * Fonts now default to units-per-EM as their scale, instead of 0.
2377 - Fix minor out-of-bounds read error.
2384 - Start of user documentation, from Simon Cozens!
2385 - Implement glyph_extents() for TrueType fonts in hb-ot-font.
2386 - Improve GPOS cursive attachments with conflicting lookups.
2387 - More fixes for cluster-level = 1.
2388 - Uniscribe positioning fix.
2395 - Fix shaping with cluster-level > 0.
2396 - Fix Uniscribe backend font-size scaling.
2397 - Declare dependencies in harfbuzz.pc.
2398 FreeType is not declared though, to avoid bugs in pkg-config
2400 - Slightly improved debug infrastructure. More to come later.
2401 - Misc build fixes.
2408 - Fix out-of-bounds access in USE shaper.
2415 - Implement Universal Shaping Engine:
2417 http://blogs.windows.com/bloggingwindows/2015/02/23/windows-shapes-the-worlds-languages/
2418 - Bump version to 1.0.0. The soname was NOT bumped.
2425 - New API to allow for retrieving finer-grained cluster
2428 - Fix cluster merging when removing default-ignorables.
2429 - Update to Unicode 8.0
2430 - hb-graphite2 fixes.
2431 - Misc fixes.
2432 - Removed HB_NO_MERGE_CLUSTERS hack.
2433 - New API:
2437 hb-shape / hb-view --cluster-level
2444 - Fix hb-coretext with trailing whitespace in right-to-left.
2445 - New API: hb_buffer_reverse_range().
2446 - Allow implementing atomic ops in config.h.
2447 - Fix hb_language_t in language bindings.
2448 - Misc fixes.
2455 - Another hb-coretext crasher fix. Ouch!
2456 - Happy Norouz!
2463 - Critical hb-coretext fixes.
2464 - Optimizations and refactoring; no functional change
2466 - Misc build fixes.
2473 - Fix minor out-of-bounds access in Indic shaper.
2474 - Change New Tai Lue shaping engine from South-East Asian to default,
2476 - Add hb-shape --font-size. Can take up to two numbers for separate
2478 - Fix CoreText and FreeType scale issues with negative scales.
2479 - Reject blobs larger than 2GB. This might break some icu-le-hb clients
2481 http://www.icu-project.org/trac/ticket/11450
2482 - Avoid accessing font tables during face destruction, in casce rogue
2484 - Fix up gobject-introspection a bit. Python bindings kinda working.
2486 - Misc fixes.
2487 - API additions:
2496 - Fix out-of-bounds access in Context lookup format 3.
2497 - Indic: Allow ZWJ/ZWNJ before syllable modifiers.
2504 - First time that three months went by without a release since
2506 - Fix performance bug in hb_ot_collect_glyphs():
2508 - Add basic vertical-text support to hb-ot-font.
2509 - Misc build fixes.
2516 - Fix major shape-plan caching bug when more than one shaper were
2518 http://www.mail-archive.com/debian-bugs-dist@lists.debian.org/msg1246370.html
2519 - Fix Arabic fallback shaping regression. This was broken in 0.9.32.
2520 - Major hb-coretext fixes. That backend is complete now, including
2522 - Build fixes for Windows CE. Should build fine now.
2523 - Misc fixes:
2528 - API changes:
2545 - hb_feature_from_string() now accepts CSS font-feature-settings format.
2546 - As a result, hb-shape / hb-view --features also accept CSS-style strings.
2548 - Add old-spec Myanmar shaper:
2550 - Don't apply 'calt' in Hangul shaper.
2551 - Fix mark advance zeroing for Hebrew shaper:
2553 - Implement Windows-1256 custom Arabic shaping. Only built on Windows,
2556 - Disable 'liga' in vertical text.
2557 - Build fixes.
2558 - API changes:
2586 of the paragraph. Clients that only pass item-at-a-time to HarfBuzz
2589 Another way to put it is: if there's pre-context text in the buffer,
2590 HarfBuzz ignores the BOT flag. If there's post-context, it ignores
2598 - Turn off ARabic 'cswh' feature that was accidentally turned on.
2599 - Add HB_TAG_MAX_SIGNED.
2600 - Make hb_face_make_immutable() really make face immutable!
2601 - Windows build fixes.
2608 - Apply Arabic shaping features in spec order exactly.
2609 - Another fix for Mongolian free variation selectors.
2610 - For non-Arabic scripts in Arabic shaper apply 'rlig' and 'calt'
2612 - Minor adjustment to U+FFFD logic.
2613 - Fix hb-coretext build.
2620 - Only accept valid UTF-8/16/32; we missed many cases before.
2621 - Better shaping of invalid UTF-8/16/32. Falls back to
2623 - With all changes in this release, the buffer will contain fully
2626 - Fix Mongolian Variation Selectors for fonts without GDEF.
2627 - Fix minor invalid buffer access.
2628 - Accept zh-Hant and zh-Hans language tags. hb_ot_tag_to_language()
2630 - Build fixes.
2631 - New API:
2639 we detected broken input, we replaced that with (hb_codepoint_t)-1.
2648 - Update to Unicode 7.0.0:
2653 - Minor Indic improvements.
2654 - Fix graphite2 backend cluster mapping [crasher!]
2655 - API changes:
2658 - Build fixes.
2665 - Implement cmap in hb-ot-font.h. No variation-selectors yet.
2666 - Myanmar: Allow MedialYa+Asat.
2667 - Various Indic fixes:
2671 - Build fixes.
2678 - Unbreak old-spec Indic shaping. (bug 76705)
2679 - Fix shaping of U+17DD and U+0FC6.
2680 - Add HB_NO_MERGE_CLUSTERS build option. NOT to be enabled by default
2683 public run-time API for the functionality.
2684 - Build fixes.
2691 - Don't use "register" storage class specifier
2692 - Wrap definition of free_langs() with HAVE_ATEXIT
2693 - Add coretext_aat shaper and hb_coretext_face_create() constructor
2694 - If HAVE_ICU_BUILTIN is defined, use hb-icu Unicode callbacks
2695 - Add Myanmar test case from OpenType Myanmar spec
2696 - Only do fallback Hebrew composition if no GPOS 'mark' available
2697 - Allow bootstrapping without gtk-doc
2698 - Use AM_MISSING_PROG for ragel and git
2699 - Typo in ucdn's Makefile.am
2700 - Improve MemoryBarrier() implementation
2707 - Misc fixes.
2708 - Fix application of 'rtlm' feature.
2709 - Automatically apply frac/numr/dnom around U+2044 FRACTION SLASH.
2710 - New header: hb-ot-shape.h
2711 - Uniscribe: fix scratch-buffer accounting.
2712 - Reorder Tai Tham SAKOT to after tone-marks.
2713 - Add Hangul shaper.
2714 - New files:
2715 hb-ot-shape-complex-hangul.cc
2716 hb-ot-shape-complex-hebrew.cc
2717 hb-ot-shape-complex-tibetan.cc
2718 - Disable 'cswh' feature in Arabic shaper.
2719 - Coretext: better handle surrogate pairs.
2720 - Add HB_TAG_MAX and _HB_SCRIPT_MAX_VALUE.
2727 - Myanmar shaper improvements.
2728 - Avoid font fallback in CoreText backend.
2729 - Additional OpenType language tag mappiongs.
2730 - More aggressive shape-plan caching.
2731 - Build with / require automake 1.13.
2732 - Build with libtool 2.4.2.418 alpha to support ppc64le.
2739 - Misc compiler warning fixes with clang.
2740 - No functional changes.
2747 - "Udupi HarfBuzz Hackfest", Paris, October 14..18 2013.
2748 - Fix (Chain)Context recursion with non-monotone lookup positions.
2749 - Misc Indic bug fixes.
2750 - New Javanese / Buginese shaping, similar to Windows 8.1.
2757 - Fix use-after-end-of-scope in hb_language_from_string().
2758 - Fix hiding of default_ignorables if font doesn't have space glyph.
2759 - Protect against out-of-range lookup indices.
2761 - API Changes:
2770 - Rename gobject-introspection library name from harfbuzz to HarfBuzz.
2771 - Remove (long disabled) hb-old and hb-icu-le test shapers.
2772 - Misc gtk-doc and gobject-introspection annotations.
2773 - Misc fixes.
2774 - API changes:
2783 - Misc substitute_closure() fixes.
2784 - Build fixes.
2787 - gtk-doc boilerplate integrated. Docs are built now, but
2789 some content in. Enable using --enable-gtk-doc.
2791 GObject and Introspection:
2792 - Added harfbuzz-gobject library (hb-gobject.h) that has type
2794 --with-gobject.
2795 - Added gobject-introspection boilerplate. Nothing useful
2797 --with-gobject is used. Override with --disable-introspection.
2800 - Apply 'mark' in Myanmar shaper.
2801 - Don't apply 'dlig' by default.
2804 - Support user features.
2805 - Fix loading of fonts that are also installed on the system.
2806 - Fix shaping of Arabic Presentation Forms.
2807 - Fix build with wide chars.
2810 - Support user features.
2813 - hb_face_t code moved to hb-face.h / hb-face.cc.
2814 - Added hb-deprecated.h.
2817 - Added HB_DISABLE_DEPRECATED.
2818 - Deprecated HB_SCRIPT_CANADIAN_ABORIGINAL; replaced by
2820 - Deprecated HB_BUFFER_FLAGS_DEFAULT; replaced by
2822 - Deprecated HB_BUFFER_SERIALIZE_FLAGS_DEFAULT; replaced by
2830 - Build fixes.
2831 - Better handling of multiple variation selectors in a row.
2832 - Pass on variation selector to GSUB if not consumed by cmap.
2833 - Fix undefined memory access.
2834 - Add Javanese config to Indic shaper.
2835 - Misc bug fixes.
2843 - All unneeded code is all disabled by default,
2845 - Uniscribe and CoreText shapers can be enabled with their --with options,
2847 - icu_le and old shapers cannot be enabled for now,
2849 - glib, freetype, and cairo will be detected automatically.
2850 They can be force on/off'ed with their --with options,
2852 - icu and graphite2 are default off, can be enabled with their --with
2856 libharfbuzz-icu.so, and a new harfbuzz-icu.pc is shipped for it.
2860 For distros I recommend that they make sure they are building --with-glib
2861 --with-freetype --with-cairo, --with-icu, and optionally --with-graphite2;
2862 And package harfbuzz and harfbuzz-icu separately.
2869 - Build fixes.
2870 - Fix bug in hb_set_get_min().
2871 - Fix regression with Arabic mark positioning / width-zeroing.
2877 - Major speedup in OpenType lookup processing. With the Amiri
2881 - New --num-iterations option for hb-shape / hb-view; useful for
2888 - Build fixes.
2889 - Fix crasher in graphite2 shaper.
2890 - Fix Arabic mark width zeroing regression.
2891 - Don't compose Hangul jamo into Unicode syllables.
2898 - Build fixes.
2899 - Fix time-consuming sanitize with malicious fonts.
2900 - Implement hb_buffer_deserialize_glyphs() for both json and text.
2901 - Do not ignore Hangul filler characters.
2902 - Indic fixes:
2903 * Fix Malayalam pre-base reordering interaction with post-forms.
2912 - Build fixes.
2913 - Ngapi HarfBuzz Hackfest in London (February 2013):
2915 * New Win8-style Myanmar shaper,
2916 * New South-East Asian shaper for Tai Tham, Cham, and New Tai Lue,
2919 * Fix 'Phags-Pa U+A872 shaping,
2920 * Fix partial disabling of default-on features,
2922 - Fix possible crasher with broken fonts with overlapping tables.
2923 - Removed generated files from git again. So, one needs ragel to
2927 - hb_shape() and related APIs now abort if buffer direction is
2933 - hb_blob_create_sub_blob() always creates sub-blob with
2941 - Build fixes for Sun compiler.
2942 - Minor bug fix.
2948 - Build fixes.
2949 - Fix GPOS mark attachment with null Anchor offsets.
2950 - [Indic] Fix old-spec reordering of viramas if sequence ends in one.
2951 - Fix multi-threaded shaper data creation crash.
2952 - Add atomic ops for Solaris.
2955 - Rename hb_buffer_clear() to hb_buffer_clear_contents().
2962 - [Indic] Fixed rendering of Malayalam dot-reph
2963 - Updated OT language tags.
2964 - Updated graphite2 backend.
2965 - Improved hb_ot_layout_get_size_params() logic.
2966 - Improve hb-shape/hb-view help output.
2967 - Fixed hb-set.h implementation to not crash.
2968 - Fixed various issues with hb_ot_layout_collect_lookups().
2969 - Various build fixes.
2986 - Fix build on Windows.
2987 - Minor improvements.
2995 - Actually implement hb_shape_plan_get_shaper ().
2996 - Make UCDB data tables const.
2997 - Lots of internal refactoring in OTLayout tables.
2998 - Flesh out hb_ot_layout_lookup_collect_glyphs().
3011 HarfBuzz "All-You-Can-Eat-Sushi" (aka Vancouver) Hackfest and follow-on fixes.
3013 - Fix Arabic contextual joining using pre-context text.
3014 - Fix Sinhala "split matra" mess.
3015 - Fix Khmer shaping with broken fonts.
3016 - Implement Thai "PUA" shaping for old fonts.
3017 - Do NOT route Kharoshthi script through the Indic shaper.
3018 - Disable fallback positioning for Indic and Thai shapers.
3019 - Misc fixes.
3022 hb-shape / hb-view changes:
3024 - Add --text-before and --text-after
3025 - Add --bot / --eot / --preserve-default-ignorables
3026 - hb-shape --output-format=json
3083 - Remove "mask" parameter from hb_buffer_add().
3084 - Rename hb_ot_layout_would_substitute_lookup() and hb_ot_layout_substitute_closure_lookup().
3085 - hb-set.h API const correction.
3086 - Renamed hb_set_min/max() to hb_set_get_min/max().
3087 - Rename hb_ot_layout_feature_get_lookup_indexes() to hb_ot_layout_feature_get_lookups().
3088 - Rename hb_buffer_guess_properties() to hb_buffer_guess_segment_properties().
3096 - Don't clear pre-context text if no new context is provided.
3097 - Fix ReverseChainingSubstLookup, which was totally borked.
3098 - Adjust output format of hb-shape a bit.
3099 - Include config.h.in in-tree. Makes it easier for alternate build systems.
3100 - Fix hb_buffer_set_length(buffer, 0) invalid memory allocation.
3101 - Use ICU LayoutEngine's C API instead of C++. Avoids much headache.
3102 - Drop glyphs for all of Unicode Default_Ignorable characters.
3103 - Misc build fixes.
3106 - Enable 'dlig' and 'mset' features in Arabic shaper.
3107 - Implement 'Phags-pa shaping, improve Mongolian.
3110 - Decompose Sinhala split matras the way old HarfBuzz / Pango did.
3111 - Initial support for Consonant Medials.
3112 - Start adding new-style Myanmar shaping.
3113 - Make reph and 'pref' logic introspect the font.
3114 - Route Meetei-Mayek through the Indic shaper.
3115 - Don't apply 'liga' in Indic shaper.
3116 - Improve Malayalam pre-base reordering Ra interaction with Chillus.
3124 - Synthetic-GSUB Arabic fallback shaping.
3126 - Misc Indic improvements.
3128 - Add build system support for pthread.
3130 - Imported UCDN for in-tree Unicode callbacks implementation.
3132 - Context-aware Arabic joining.
3134 - Misc other fixes.
3136 - New API:
3138 hb_feature_to/from-string()
3147 - Indic improvements with old-spec Malayalam.
3149 - Better fallback glyph positioning, specially with Thai / Lao marks.
3151 - Implement dotted-circle insertion.
3153 - Better Arabic fallback shaping / ligation.
3155 - Added ICU LayoutEngine backend for testing. Call it by the 'icu_le' name.
3157 - Misc fixes.
3165 - Fixed fallback mark positioning for left-to-right text.
3167 - Improve mark positioning for the remaining combining classes.
3169 - Unbreak Thai and fallback Arabic shaping.
3171 - Port Arabic shaper to shape-plan caching.
3173 - Use new ICU normalizer functions.
3181 - Over a thousand commits! This is the first major release of HarfBuzz.
3183 - HarfBuzz is feature-complete now! It should be in par, or better, than
3186 - New Indic shaper, supporting main Indic scripts, Sinhala, and Khmer.
3188 - Improved Arabic shaper, with fallback Arabic shaping, supporting Arabic,
3191 - New Thai / Lao shaper.
3193 - Tibetan / Hangul support in the generic shaper.
3195 - Synthetic GDEF support for fonts without a GDEF table.
3197 - Fallback mark positioning for fonts without a GPOS table.
3199 - Unicode normalization shaping heuristic during glyph mapping.
3201 - New experimental Graphite2 backend.
3203 - New Uniscribe backend (primarily for testing).
3205 - New CoreText backend (primarily for testing).
3207 - Major optimization and speedup.
3209 - Test suites and testing infrastructure (work in progress).
3211 - Greatly improved hb-view cmdline tool.
3213 - hb-shape cmdline tool.
3215 - Unicode 6.1 support.
3221 - Users are expected to only include main header files now (ie. hb.h,
3222 hb-glib.h, hb-ft.h, ...)
3224 - All struct tag names had their initial underscore removed.
3227 - All set_user_data() functions now take a "replace" boolean parameter.
3229 - hb_buffer_create() takes zero arguments now.
3230 Use hb_buffer_pre_allocate() to pre-allocate.
3232 - hb_buffer_add_utf*() now accept -1 for length parameters,
3233 meaning "nul-terminated".
3235 - hb_direction_t enum values changed.
3237 - All *_from_string() APIs now take a length parameter to allow for
3238 non-nul-terminated strings. A -1 length means "nul-terminated".
3240 - Typedef for hb_language_t changed.
3242 - hb_get_table_func_t renamed to hb_reference_table_func_t.
3244 - hb_ot_layout_table_choose_script()
3246 - Various renames in hb-unicode.h.
3250 - hb_buffer_guess_properties()
3253 - hb_buffer_normalize_glyphs()
3255 - hb_tag_from_string()
3257 - hb-coretext.h
3259 - hb-uniscribe.h
3261 - hb_face_reference_blob()
3262 - hb_face_[sg]et_index()
3263 - hb_face_set_upem()
3265 - hb_font_get_glyph_name_func_t
3274 - hb_font_set_funcs_data()
3276 - hb_ft_font_set_funcs()
3277 - hb_ft_font_get_face()
3279 - hb-gobject.h (work in progress)
3281 - hb_ot_shape_glyphs_closure()
3284 - hb-set.h
3286 - hb_shape_full()
3288 - hb_unicode_combining_class_t
3290 - hb_unicode_compose_func_t
3302 - hb_ft_get_font_funcs()
3304 - hb_ot_layout_substitute_start()
3317 - Vertical text support in GPOS
3318 - Almost all API entries have unit tests now, under test/
3319 - All thread-safety issues are fixed
3535 o The following higher-leve API added for convenience: