• Home
  • Raw
  • Download

Lines Matching +full:gobject +full:- +full:introspection

5 - Fix regression from 8.1.0 in shaping fonts with duplicate feature tags.
6 - Fix regression from 8.2.0 in parsing CSS-style feature strings.
7 - Variable fonts instanciation now handles more tables.
8 - Various CMake build improvements.
9 - various fixes to build without errors with gcc 4.9.2.
15 - Unicode 15.1 support.
21 - Various build and fuzzing fixes
22 - Improvements to COLRv1 painting.
24 - New API:
33 - Fix shaping of contextual rules at the end of string, introduced in 8.1.0
34 - Fix stack-overflow in repacker with malicious fonts.
35 - 30% speed up loading Noto Duployan font.
41 - Fix long-standing build issue with the AIX compiler and older Apple clang.
43 - Revert optimization that could cause timeout during subsetting with malicious fonts.
45 - More optimization work:
46 - 45% speed up in shaping Noto Duployan font.
47 - 10% speed up in subsetting Noto Duployan font.
48 - Another 8% speed up in shaping Gulzar.
49 - 5% speed up in loading Roboto.
51 - New API:
58 - Build fix on 32-bit ARM.
60 - More speed optimizations:
61 - 60% speed up in retain-gid (used for IFT) subsetting of SourceHanSans-VF.
62 - 16% speed up in retain-gid (used for IFT) subsetting of NotoSansCJKkr.
63 - 38% speed up in subsetting (beyond-64k) mega-merged Noto.
69 - New, experimental, WebAssembly (WASM) shaper, that provides greater
74 https://github.com/harfbuzz/harfbuzz/blob/main/docs/wasm-shaper.md
78 https://github.com/harfbuzz/harfbuzz-wasm-examples
80 - Improvements to Experimental features introduced in earlier releases:
81 - Support for subsetting beyond-64k and VarComposites fonts.
82 - Support for instancing variable fonts with cubic “glyf” table.
84 - Many big speed optimizations:
85 - Up to 89% speedup loading variable fonts for shaping.
86 - Up to 88% speedup in small subsets of large (eg. CJK) fonts (both TTF and
88 - Over 50% speedup in loading Roboto font for shaping.
89 - Up to 40% speed up in loading (sanitizing) complex fonts.
90 - 30% speed up in shaping Gulzar font.
91 - Over 25% speedup in glyph loading Roboto font.
92 - 10% speed up loading glyph shapes in VarComposite Hangul font.
93 - hb-hashmap optimizations & hashing improvements.
95 - New macro HB_ALWAYS_INLINE. HarfBuzz now inlines functions more aggressively,
99 - New API:
111 - Speedup applying glyph variation in VarComposites fonts (over 40% speedup).
113 - Speedup instancing some fonts (over 20% speedup in instancing RobotoFlex).
115 - Speedup shaping some fonts (over 30% speedup in shaping Roboto).
117 - Support subsetting VarComposites and beyond-64k fonts. (Behdad Esfahbod)
118 - New configuration macro HB_MINIMIZE_MEMORY_USAGE to favor optimizing memory
120 - Supporting setting the mapping between old and new glyph indices during
122 - Various fixes and improvements.
125 - New API:
132 - Add Tifinagh to the list of scripts that can natively be either right-to-left
133 or left-to-right, to improve handling of its glyph positioning.
135 - Return also single substitution from hb_ot_layout_lookup_get_glyph_alternates()
137 - Fix 4.2.0 regression in applying across syllables in syllabic scripts.
139 - Add flag to avoid glyph substitution closure during subsetting, and the
140 corresponding “--no-layout-closure” option to “hb-subset” command line tool.
142 - Support instancing COLRv1 table. (Qunxin Liu)
143 - Don’t drop used user-defined name table entries during subsetting.
145 - Optimize handling of “gvar” table. (Behdad Esfahbod)
146 - Various subsetter bug fixes and improvements. (Garret Rieger, Qunxin Liu)
147 - Various documentation improvements. (Behdad Esfahbod, Josef Friedrich)
149 - New API:
153 - Deprecated API:
160 - New experimental hb_shape_justify() API that uses font variations to expand
162 - Various build and bug fixes. (Behdad Esfahbod, Garret Rieger, Qunxin Liu)
164 - New API:
171 - Various build and bug fixes.
177 - New hb-paint API that is designed mainly to paint “COLRv1” glyphs, but can be
181 - New hb-cairo API for integrating with cairo graphics library. This is provided
182 as a separate harfbuzz-cairo library. (Behdad Esfahbod, Matthias Clasen)
183 - Support for instancing “CFF2” table. (Behdad Esfahbod)
184 - Support font emboldening. (Behdad Esfahbod)
185 - Support feature ranges with AAT shaping. (Behdad Esfahbod)
186 - Experimental support to cubic curves in “glyf” table, see
187 https://github.com/harfbuzz/boring-expansion-spec/blob/main/glyf1-cubicOutlines.md
189 - Various subsetter improvements. (Garret Rieger, Qunxin Liu, Behdad Esfahbod)
190 - Various documentation improvements.
192 - Significantly reduced memory use during shaping. (Behdad Esfahbod)
193 - Greatly reduced memory use during subsetting “CFF” table. (Behdad Esfahbod)
194 - New command line utility, hb-info, for querying various font information.
196 - New hb-shape/hb-view options: --glyphs, --color-palette, --font-bold,
197 --font-grade, and --named-instance. (Behdad Esfahbod)
198 - Miscellaneous fixes and improvements.
199 (Amir Masoud Abdol, Andres Salomon, Behdad Esfahbod, Chun-wei Fan,
203 - New API:
298 - Deprecated API:
307 - A new API have been added to pre-process the face and speed up future
312 https://github.com/harfbuzz/harfbuzz/blob/main/docs/subset-preprocessing.md
316 - Shaping have been speedup by skipping entire lookups when the buffer contents
320 - A new experimental feature, “Variable Composites” (enabled by passing
321 -Dexperimental_api=true to meson), is also featured in this release.
327 https://github.com/harfbuzz/boring-expansion-spec/blob/glyf1/glyf1.md
329 A test variable-font with ~7160 Hangul syllables derived from the
330 NotoSerifKR-VF font has been built, with existing OpenType technology, as
339 $ hb-view butchered-hangul-serif-smarties-variable.ttf -u AE01 --variations=wght=700
343 - The HarfBuzz subsetter can now drop axes by pinning them to specific values
347 - Only works with TrueType (“glyf”) based fonts. “CFF2” fonts are not yet
349 - Only supports the case where all axes in a font are pinned.
353 - Miscellaneous fixes and improvements.
360 - New API
369 - Subsetter repacker fixes. (Garret Rieger)
370 - Adjust Grapheme clusters for Katakana voiced sound marks. (Behdad Esfahbod)
371 - New “hb-subset” option “--preprocess-face”. (Garret Rieger)
378 - Don’t add glyphs from dropped MATH or COLR tables to the subset glyphs.
380 - Map “rlig” to appropriate AAT feature selectors. (Jonathan Kew)
381 - Update USE data files to latest version. (David Corbett)
382 - Check “CBDT” extents first before outline tables, to help with fonts that
384 - More work towards variable font instancing in the subsetter. (Qunxin Liu)
385 - Subsetter repacker improvements. (Garret Rieger)
386 - New API:
394 - Fix regressions in hb-ft font functions for FT_Face’s with transformation
396 - The experimental hb-repacker API now supports splitting several GPOS subtable
398 - The HarfBuzz extensions to OpenType font format are now opt-in behind
399 build-time flags. (Behdad Esfahbod)
400 - The experimental hb-subset variable fonts instantiation API can now
402 - Unicode 15 support. (David Corbett)
403 - Various documentation improvements. (Behdad Esfahbod, Matthias Clasen)
404 - The hb-view command line tool now detects WezTerm inline images support.
406 - Fix FreeType and ICU dependency lookup with meson. (Xavier Claessens)
408 - New API:
416 - More extensive buffer tracing messages. (Behdad Esfahbod)
417 - Fix hb-ft regression in bitmap fonts rendering. (Behdad Esfahbod)
418 - Support extension promotion of lookups in hb-subset-repacker. (Garret Rieger)
419 - A new HB_GLYPH_FLAG_SAFE_TO_INSERT_TATWEEL for scripts that use elongation
422 - Add “--safe-to-insert-tatweel” to “hb-shape” tool. (Behdad Esfahbod)
424 - New API
432 - Fix version 2 “avar” table with hb-ft. (Behdad Esfahbod)
438 - Support fonts with more than 65535 glyphs in “GDEF”, “GSUB”, and “GPOS”
439 tables. This is part of https://github.com/be-fonts/boring-expansion-spec to
440 extend OpenType in a backward-compatible way.
442 - Complete support for more than 65535 glyphs in “glyf” table that started in
443 4.0.0 release. Part of boring-expansion-spec. (Behdad Esfahbod)
444 - Support version 2 of “avar” table. Part of boring-expansion-spec.
446 - Fix mark attachment on multiple substitutions in some cases.
448 - Fix application of “calt”, “rclt”, and “ccmp” features to better match
450 - Improvement to interaction between multiple cursive attachments.
452 - Improve multiple mark interactions in Hebrew. (Behdad Esfahbod)
453 - Implement language-specific forms in AAT shaping. (Behdad Esfahbod)
454 - Fix variation of “VORG” table. (Behdad Esfahbod)
455 - Support for specific script tags to be retained in the subsetter, and add
456--layout-scripts” option to “hb-subset” tool. (Garret Rieger)
457 - Accept space as delimiter for --features/--variations in command line tools.
458 - Improve subsetting of “COLR” table. (Qunxin Liu)
459 - Improved fuzzing coverage for ot-math API. (Frédéric Wang)
460 - Fix “kern” table version 2 (AAT) sanitization on 32-bit systems.
462 - Allow negative glyph advances from “graphite2” shaper. (Stephan Bergmann)
463 - Implement loading (color) bitmap fonts with hb-ft. (Behdad Esfahbod)
464 - Fix regression in hb-ft when changing font size. (Behdad Esfahbod)
465 - Fix build on GCC < 7. (Kleis Auke Wolthuizen)
466 - Dynamically load dwrite.dll on windows if “directwrite” shaper is enabled.
468 - Provide a single-file harfbuzz-subset.cc file for easier alternate building
469 of hb-subset library, similar to harfbuzz.cc. (Khaled Hosny)
471 - New API
479 - Fix test failure with some compilers.
480 - Fix Telugu and Kannada kerning regression.
486 - Caching of variable fonts shaping, in particular when using HarfBuzz’s own
488 with non-variable fonts shaping. (Behdad Esfahbod)
489 - Caching of format 2 “Contextual Substitution” and “Chained Contexts
490 Substitution” lookups. Resulting in up to 20% speedup of lookup-heavy fonts
492 - Improved ANSI output from hb-view. (Behdad Esfahbod)
493 - Support for shaping legacy, pre-OpenType Windows 3.1-era, Arabic fonts that
495 - Sinhala script is now shaped by the USE shaper instead of “indic” one.
497 - Thai shaper improvements. (David Corbett)
498 - hb-ot-name API supports approximate BCP-47 language matching, for example
501 - Optimized TrueType glyph shape loading. (Behdad Esfahbod)
502 - Fix subsetting of HarfBuzz faces created via hb_face_create_for_tables().
504 - Add 32 bit var store support to the subsetter. (Garret Rieger)
506 - New API
520 - Major speed up in loading and subsetting fonts, especially in
523 - Speed up blending CFF2 table. (Behdad Esfahbod)
524 - Speed up hb_ot_tags_from_language(). (Behdad Esfahbod, David Corbett)
525 - Fix USE classification of U+10A38 to fix multiple marks on single Kharoshthi
527 - Fix parsing of empty CFF Index. (Behdad Esfahbod)
528 - Fix subsetting CPAL table with partial palette overlaps. (Garret Rieger)
530 - New API
537 - Make sure hb_blob_create_from_file_or_fail() always returns nullptr in case
539 - Add --passthrough-tables option to hb-subset. (Cosimo Lupo)
540 - Reinstate a pause after basic features in Khmer shaper, fixing a regression
542 - Better handling of Regional_Indicator when shaped with RTL-native scripts,
549 - Source code reorganization, splitting large hb-ot-layout files into smaller,
550 per-subtable ones under OT/Layout/*. Code for more tables will follow suit in
552 - Revert Indic shaper change in previous release that broke some fonts and
553 instead make per-syllable restriction of “GSUB” application limited to
554 script-specific Indic features, while applying them and discretionary
556 - Fix decoding of private in gvar table. (Behdad Esfahbod)
557 - Fix handling of contextual lookups that delete too many glyphs. (Behdad Esfahbod)
558 - Make “morx” deleted glyphs don’t block “GPOS” application. (Behdad Esfahbod)
559 - Various build fixes. (Chun-wei Fan, Khaled Hosny)
561 - New API
568 - Various OSS-Fuzz fixes. (Behdad Esfahbod)
569 - Make fallback vertical-origin match FreeType’s. (Behdad Esfahbod)
570 - Treat visible viramas like dependent vowels in USE shaper. (David Corbett)
571 - Apply presentation forms features and discretionary features in one go in
574 - Various bug fixes.
576 - New API
583 - Update OpenType to AAT mappings for “hist” and “vrtr” features.
585 - Update IANA Language Subtag Registry to 2022-03-02. (David Corbett)
586 - Update USE shaper to allow any non-numeric tail in a symbol cluster, and
588 - Fix handling of baseline variations to return correctly scaled values.
590 - A new experimental hb_subset_repack_or_fail() to repack an array of objects,
594 - New experimental API
603 - New public API to create subset plan and gather information on things like
606 - Draw API for extracting glyph shapes have been extended and finalized and is
610 previous, non-public, experimental API. (Behdad Esfahbod)
611 - The hb-view tool will use HarfBuzz draw API to render the glyphs instead of
612 cairo-ft when compiled with Cairo 1.17.5 or newer, setting HB_DRAW
615 - The hb-shape and hb-view tools now default to using HarfBuzz’s own font
617 option, --font-slant, to apply synthetic slant to the font. (Behdad Esfahbod)
618 - HarfBuzz now supports more than 65535 (the OpenType limit) glyph shapes and
619 metrics. See https://github.com/be-fonts/boring-expansion-spec/issues/6 and
620 https://github.com/be-fonts/boring-expansion-spec/issues/7 for details.
622 - New API to get the dominant horizontal baseline tag for a given script.
624 - New API to get the baseline positions from the font, and synthesize missing
627 - Improvements to finding dependencies on Windows when building with Visual
628 Studio. (Chun-wei Fan)
629 - New buffer flag, HB_BUFFER_FLAG_PRODUCE_UNSAFE_TO_CONCAT, that must be set
633 - Documentation improvements. (Matthias Clasen)
635 - New API
636 - General:
640 - Draw:
668 - OpenType layout
674 - Metrics:
677 - Subset:
693 - Perform sanity checks on shaping results is now part of “harfbuzz” library
696 - Arabic Mark Transient Reordering Algorithm have been updated to revision 6.
698 - ISO 15924 code for mathematical notation, ‘Zmth’, now maps to the OpenType
700 - It is now possible to get at once all math kerning values for a given glyph
702 - Fix locale_t portability issues on systems the typedef’s it to a void
705 - New API:
712 - Deprecated API
719 - Revert splitting of pair positioning values introduced in 3.3.0 as it proved
726 - Fix heap-use-after-free in harfbuzz-subset introduced in previous release.
733 - Improved documentation. (Matthias Clasen)
734 - Internal code cleanup, using C++ standard library more. (Behdad Esfahbod)
735 - The low 16-bits of face index will be used by hb_face_create() to select a
736 face inside a font collection file format, while the high 16-bits will be
738 - Glyph positions and other font metrics now apply synthetic slant set by
741 - Fixed unintentional locale dependency in hb_variation_to_string() for decimal
743 - When applying pair positioning (kerning) the positioning value is split
746 - Introduced new HB_GLYPH_FLAG_UNSAFE_TO_CONCAT, to be used in conjunction
747 with HB_GLYPH_FLAG_UNSAFE_TO_BREAK for optimizing re-shaping during line
749 - Improved handling of macrolanguages when mapping BCP 47 codes to OpenType
752 - New API:
765 - Fixed shaping of Apple Color Emoji flags in right-to-left context. (Behdad Esfahbod)
766 - Fixed positioning of CFF fonts in HB_TINY profile. (Behdad Esfahbod)
767 - OpenType 1.9 language tags update. (David Corbett)
768 - Add HB_NO_VERTICAL config option.
769 - Add HB_CONFIG_OVERRIDE_H for easier configuration. (Behdad Esfahbod)
771 “harfbuzz-subset” library improvements:
772 - Improved packing of cmap, loca, and Ligature tables. (Garret Rieger)
773 - Significantly improved overflow-resolution strategy in the repacker. (Garret Rieger)
779 - hb-shape / hb-view: revert treating text on the commandline as single
780 paragraph (was introduced in 3.0.0); add new --single-par to do that.
782 - Subsetter bug fixes. (Garret Rieger, Qunxin Liu, Behdad Esfahbod)
788 - Work around GCC cast-align error/warning on some platforms. (Behdad Esfahbod)
789 - Documentation improvements. (Matthias Clasen)
795 - Better offset-overflow handling in the subsetter library. (Garret Rieger)
796 - Improved Unicode 14 properties in the USE shaper, and various other USE
798 - MATH and COLR v1 tables subsetting support, and various other subsetter fixes.
800 - Support for Pwo Karen / Ason Chin medial la. (Simon Cozens)
801 - Apply GPOS positioning when substituting with morx table, if kerx is missing.
803 - Apply calt and clig features across syllable boundaries in Indic shaper.
805 - meson option for enabling Graphite 2 has been renamed to graphite2.
806 - Build and documentation fixes.
808 - New API:
816 - Unicode 14.0 support (David Corbett).
817 - The hb-subset API and the harfbuzz-subset library's ABI are now declared
818 stable. The harfbuzz-subset library would not have been possible without the
821 - The hb-style API is now stable and no longer experimental.
823 - New API:
841 - Removed old unstable harfbuzz-subset API:
842 -hb_subset_input_nameid_set()
843 -hb_subset_input_namelangid_set()
844 -hb_subset_input_layout_features_set()
845 -hb_subset_input_no_subset_tables_set()
846 -hb_subset_input_drop_tables_set()
847 -hb_subset_input_set_drop_hints()
848 -hb_subset_input_get_drop_hints()
849 -hb_subset_input_set_desubroutinize()
850 -hb_subset_input_get_desubroutinize()
851 -hb_subset_input_set_retain_gids()
852 -hb_subset_input_get_retain_gids()
853 -hb_subset_input_set_name_legacy()
854 -hb_subset_input_get_name_legacy()
855 -hb_subset_input_set_overlaps_flag()
856 -hb_subset_input_get_overlaps_flag()
857 -hb_subset_input_set_notdef_outline()
858 -hb_subset_input_get_notdef_outline()
859 -hb_subset_input_set_no_prune_unicode_ranges()
860 -hb_subset_input_get_no_prune_unicode_ranges()
861 -hb_subset()
867 - Final subset API is in place and if no issues are discovered, it will be the
870 - Various fuzzer-found bug fixes.
871 - hb_buffer_append() now handles the pre- and post-context which previously
873 - hb-view / hb-shape now accept following new arguments:
874 o --unicodes-before/after: takes a list of hex numbers that represent Unicode
876 - Undeprecated API:
884 - Subsetter API is being stabilized, with the first stable API to happen in
886 - Support multiple variation axes with same tag, aka HOI.
887 - The “coretext” testing shaper now passes font variations to CoreText.
888 - hb-shape/hb-view does not break line at new lines unless text is read from
890 - hb-view and hb-subset has a --batch now, similar to hb-shape.
891 - The --batch mode now uses ; as argument separator instead of : used previously.
892 - The --batch in hb-shape does not expect 0th argument anymore. That is, the
894 - The --batch option has been undocumented. We are ready to document it; send
896 - hb-subset got arguments revamps. Added much-requested --gids-file, --glyphs,
897 --glyphs-file, --unicodes-file, supporting ranges in --unicodes.
898 - Various bug fixes.
904 - Shaping LTR digits for RTL scripts now makes the native direction of the
907 - Subsetting COLR v1 and CPAL tables is now supported. (Garret Rieger, Qunxin Liu)
908 - Various fixes and improvements to the subsetter. (Garret Rieger, Qunxin Liu, Behdad)
909 - When applying morx table, mark glyph widths should not be zeroed. (Jonathan Kew)
910 - GPOS is preferred over kerx, if GSUB was applied. (Behdad)
911 - Regional_Indicator pairs are grouped together when clustering. (Behdad)
912 - New API:
921 - Subsetter now fully supports GSUB/GPOS/GDEF tables (including variations); as
923 - Build scripts no longer check for FontConfig as HarfBuzz does not use it.
924 - hb-view supports iTerm2 and kitty inline image protocols (Khaled Hosny),
930 - Shape joining scripts other than Arabic/Syriac using the Universal Shaping Engine.
932 - Fix regression in shaping of U+0B55 ORIYA SIGN OVERLINE. (David Corbett)
933 - Update language tags. (David Corbett)
934 - Variations: reduce error: do not round each interpolated delta. (Just van Rossum)
935 - Documentation improvements. (Khaled Hosny, Nathan Willis)
936 - Subsetter improvements: subsets most, if not all, lookup types now. (Garret Rieger, Qunxin Liu)
937 - Fuzzer-found fixes and other improvements when memory failures happen. (Behdad)
938 - Removed most atomic implementations now that we have C++11 atomic impl. (Behdad)
939 - General codebase upkeep; using more C++11 features: constexpr constructors, etc. (Behdad)
945 - Fix missing --enable-introspection configure option from previous release
947 - Documentation updates.
953 - Update USE shaper to 2020-08-13 specification, and other improvements.
954 - Don’t disable liga feature in myanmar shaper, to match Uniscribe.
955 - Improvements to language and script tags handling.
956 - Update language system tag registry to OpenType 1.8.4
957 - Support for serializing and deserializing Unicode buffers. Serialized buffers
960 - Increase buffer work limits to handle fonts with many complex lookups.
961 - Handle more shaping operations in trace output.
962 - Memory access fixes.
963 - More OOM fixes.
964 - Improved documentation.
965 - Build system improvements.
966 - New API:
976 - Fix a regression in the previous release that caused a crash with Kaithi.
977 - More OOM fixes.
983 - ot-funcs now handles variable empty glyphs better when hvar/vvar isn't present.
984 - Reverted a GDEF processing regression.
985 - A couple of fixes to handle OOM better.
991 - Use an implementation for round that always rounds up, some minor fluctuations
992 are expected on var font specially when hb-ot callback is used.
993 - Fix an AAT's `kerx` issue on broken rendering of Devanagari Sangam MN.
994 - Remove AAT's `lcar` table support from _get_ligature_carets API, not even much
997 - Minor memory fixes to handle OOM better specially in hb-ft.
998 - Minor .so files versioning scheme change and remove stable/unstable scheme
1000 - We are now suggesting careful packaging of the library using meson,
1001 https://github.com/harfbuzz/harfbuzz/wiki/Notes-on-migration-to-meson
1003 - Distribution package URL is changed, either use GitHub generated tarballs,
1012 - New API to fetch glyph alternates from GSUB table.
1013 - hb-coretext build fix for macOS < 10.10.
1014 - Meson build fixes, cmake port removal is postponed but please prepare for
1018 - New API:
1025 - Update to Unicode 13.0.0.
1026 - Fix hb_ot_layout_get_ligature_carets for fonts without lcar table, it was
1028 - As a part of our migration to meson, this release will be the last one
1037 - A fix in AAT kerning for Geeza Pro.
1038 - Better support for resource fork fonts on macOS.
1044 - Add experimental meson build system. Autotools is still the primary
1046 - AAT is now always preferred for horizontal scripts when both AAT and OT
1048 - Subsetter improvements.
1049 - New API:
1057 - Small bug fix.
1058 - Build fixes.
1064 - Misc small fixes, mostly to build-related issues.
1065 - New API:
1072 - Misc small fixes, mostly to build-related issues.
1078 - Fix regression with hb_font_create_sub_font scaling introduced in 2.6.0.
1079 - Change interpretation of font PTEM size / CoreText font size handling.
1081 - hb-ot-font: Prefer symbol cmap subtable if present.
1082 - Apply 'dist'/'abvm'/'blwm' features to all scripts.
1083 - Drop experimental DirectWrite API.
1089 - New OpenType metrics, baseline, and metadata table access APIs.
1090 - New API to set font variations to a named-instance.
1091 - New hb-gdi.h header and API for creating hb_face_t from HFONT.
1092 - Amalgam: Provide a single-file harfbuzz.cc file for easier alternate building.
1093 - More size-reduction configurable options, enabled by HB_TINY.
1094 - New API:
1112 - Fix UCD script data for Unicode 10+ scripts. This was broken since 2.5.0.
1113 - More optimizations for HB_TINY.
1119 - More hb-config.hh facilities to shrink library size, namely when built as
1121 - New documentation of custom configurations in CONFIG.md.
1122 - Fix build on gcc 4.8. That's supported again.
1123 - Universal Shaping Engine improvements thanks to David Corbett.
1124 - API Changes: Undeprecate some horizontal-kerning API and re-enable in hb-ft,
1131 - Fix build with various versions of Visual Studio.
1132 - Improved documentation, thanks to Nathan Willis.
1133 - Bugfix in subsetting glyf table.
1134 - Improved scripts for cross-compiling for Windows using mingw.
1135 - Rename HB_MATH_GLYPH_PART_FLAG_EXTENDER to HB_OT_MATH_GLYPH_PART_FLAG_EXTENDER.
1136 A deprecated macro is added for backwards-compatibility.
1142 - This release does not include much functional changes, but includes major internal
1143 code-base changes. We now require C++11. Support for gcc 4.8 and earlier has been
1145 - New hb-config.hh facility for compiling smaller library for embedded and web usecases.
1146 - New Unicode Character Database implementation that is half the size of previously-used
1148 - Subsetter improvements.
1149 - Improved documentation, thanks to Nathan Willis.
1150 - Misc shaping fixes.
1156 - Unicode 12.
1157 - Misc fixes.
1158 - Subsetter improvements.
1159 - New API:
1167 - AAT bug fixes.
1168 - Misc internal housekeeping cleanup.
1174 - Fix regression on big-endian architectures. Ouch!
1175 - Misc bug and build fixes.
1176 - Fix subsetting of simple GSUB/GDEF.
1177 - Merge CFF / CFF2 support contributed by Adobe. This mostly involves
1180 New API in hb-aat.h:
1189 - Misc shaping bug fixes.
1190 - Add font variations named-instance API.
1191 - Deprecate font variations axis enumeration API and add replacement.
1192 - AAT shaping improvements:
1224 - Fix AAT 'mort' shaping, which was broken in 2.1.2
1230 - Various internal changes.
1231 - AAT shaping improvements:
1232 o Implement kern table Format 1 state-machine-based kerning.
1233 o Implement cross-stream kerning (cursive positioning, etc).
1238 -Overview of changes leading to 2.1.1
1241 - AAT improvements:
1249 - AAT shaping improvements:
1252 o Implement tuple-kerns in 'kerx'; Fixes kerning with Apple default
1254 - Support for color fonts:
1258 - New 'name' table API.
1259 - hb-ot-font now uses 'VORG' table to correctly position CFF glyphs
1261 - Various fuzzer-found bug fixes.
1267 hb_name_id_t -> hb_ot_name_id_t
1268 HB_NAME_ID_INVALID -> HB_OT_NAME_ID_INVALID
1330 - Fix two minor memory access issues in AAT tables.
1336 - Fix hb-version.h reported release version that went wrong (1.8.0)
1338 - Fix extrapolation in 'trak' table.
1339 - Fix hb-font infinite-recursion issue with some font funcs and
1341 - Implement variation-kerning format in kerx table, although without
1343 - Fix return value of hb_map_is_empty().
1349 - Added AAT shaping support (morx/kerx/trak).
1353 - Apply TrueType kern table internally, instead of relying on
1355 - Khmer shaper significantly rewritten to better match Uniscribe.
1356 - Indic3 tags ('dev3', etc) are passed to USE shaper.
1357 - .dfont Mac font containers implemented.
1358 - Script- and language-mapping revamped to better use BCP 47.
1359 - Misc USE and Indic fixes.
1360 - Misc everything fixes.
1361 - Too many things to list. Biggest release since 0.9.1, with
1364 - hb-ft now locks underlying FT_Face during use.
1368 - Newly-created hb_font_t's now have our internal "hb-ot-font"
1375 - New hb_font_funcs_set_nominal_glyphs_func() allows speeding
1395 -hb_font_funcs_set_glyph_func()
1396 -hb_unicode_eastasian_width_func_t
1397 -hb_unicode_funcs_set_eastasian_width_func()
1398 -hb_unicode_eastasian_width()
1399 -hb_unicode_decompose_compatibility_func_t
1400 -HB_UNICODE_MAX_DECOMPOSITION_LEN
1401 -hb_unicode_funcs_set_decompose_compatibility_func()
1402 -hb_unicode_decompose_compatibility()
1403 -hb_font_funcs_set_glyph_h_kerning_func()
1404 -hb_font_funcs_set_glyph_v_kerning_func()
1405 -hb_font_get_glyph_h_kerning()
1406 -hb_font_get_glyph_v_kerning()
1407 -hb_font_get_glyph_kerning_for_direction()
1408 -hb_ot_layout_table_choose_script()
1409 -hb_ot_layout_script_find_language()
1410 -hb_ot_tags_from_script()
1411 -hb_ot_tag_from_language()
1417 - Added 'cmap' API to hb_face_t.
1418 - Face-builder API.
1419 - hb-ot-font re-creation should be much leaner now, as the
1421 - Internal source header file name changes:
1422 hb-*-private.hh is renamed to hb-*.hh.
1436 - Fix hb-icu crash on architectures where compare_exchange_weak() can
1439 - More internal refactoring of atomic operations and singletons.
1440 - API changes:
1454 - Fix assertion failure with GDEF-blacklisted fonts.
1460 - Internal code shuffling.
1461 - New API to speed up getting advance widths for implementations
1475 - Major Khmer shaper improvements to better match Microsoft.
1476 - Indic bug fixes.
1477 - Internal improvements to atomic operations.
1483 - Fix build on non-C++11.
1484 - Use C++-style GCC atomics and C++11 atomics.
1490 - A couple of Indic / USE bug fixes.
1491 - Disable vectorization, as it was causing unaligned access bus error on
1498 - Fix infinite loop in Khmer shaper.
1499 - Improve hb_blob_create_from_file() for streams.
1505 - Fix hb-version.h file generation; last two releases went out with wrong ones.
1506 - Add correctness bug in hb_set_t operations, introduced in 1.7.7.
1507 - Remove HB_SUBSET_BUILTIN build option. Not necessary.
1513 - Update to Unicode 11.0.0.
1519 - Lots of internal changes, but not yet exposed externally.
1520 - All HarfBuzz objects are significantly smaller in size now.
1521 - Sinhala: Position repha on top of post-consonant, not base.
1524 - New build options:
1527 - Significant libharfbuzz-subset changes. API subject to change.
1528 - New API in libharfbuzz:
1534 +hb-map.h
1557 - Fix to hb_set_t binary operations. Ouch.
1558 - New experimental harfbuzz-subset library. All of hb-subset.h
1561 - New API:
1572 - Separate Khmer shaper from Indic.
1573 - First stab at AAT morx. Not hooked up.
1574 - Misc bug fixes.
1581 - Fix collect_glyphs() regression caused by hb_set_t changes.
1588 - hb_set_t performance tuning and optimizations.
1589 - Speed up collect_glyphs() and reject garbage data.
1590 - In hb_coretext_font_create() set font point-size (ptem).
1591 - Misc fixes.
1598 - Optimize hb_set_add_range().
1599 - Misc fixes.
1600 - New API:
1608 - Fix atexit object destruction regression.
1609 - Fix minor integer-overflow.
1616 - Minor Indic fixes.
1617 - Implement kerning and glyph names in hb-ot-font.
1618 - Various DSO optimization re .data and .bss sizes.
1619 - Make C++11 optional; build fixes.
1620 - Mark all other backends "unsafe-to-break".
1621 - Graphite fix.
1628 - Fix hb_set_t some more. Should be solid now.
1629 - Implement get_glyph_name() for hb-ot-font.
1630 - Misc fixes.
1637 - Yesterday's release had a bad crasher; don't use it. That's what
1640 - Build fixes for FreeBSD and Chrome Android.
1647 - Don't skip over COMBINING GRAPHEME JOINER when ligating, etc.
1649 - Faster hb_set_t implementation.
1650 - Don't use deprecated ICU API.
1651 - Fix undefined-behavior in Myanmar shaper, introduced in 1.6.0
1652 - Deprecated API:
1660 - Update to Unicode 10.
1662 - Various Indic and Universal Shaping Engine fixes as a result of
1667 - Implement Unicode Arabic Mark Ordering Algorithm UTR#53.
1669 - Implement optical sizing / tracking in CoreText backend, using
1672 - Allow notifying hb_font_t that underlying FT_Face changed sizing,
1675 - More Graphite backend RTL fixes.
1677 - Fix caching of variable font shaping plans.
1679 - hb-view / hb-shape now accept following new arguments:
1681 o --unicodes: takes a list of hex numbers that represent Unicode
1695 - Fix "unsafe-to-break" in fallback shaping and other corner cases.
1696 All our tests pass with --verify now, meaning unsafe-to-break API
1698 - Add --unicodes to hb-view / hb-shape.
1699 - [indic] Treat Consonant_With_Stacker as consonant. This will need
1701 - hb_buffer_diff() tweaks.
1708 - Misc new API, for appending a buffer to another, and for comparing
1711 - New "unsafe-to-break" API. Can be used to speed up reshaping
1712 in line-breaking situations. Essentially, after shaping, it returns
1718 hb-view and hb-shape and hb-shape now take --verify, which verifies
1724 - New API:
1752 - Major fix to avar table handling.
1753 - Rename hb-shape --show-message to --trace.
1754 - Build fixes.
1761 - Multiple Indic, Tibetan, and Cham fixes.
1762 - CoreText: Allow disabling kerning.
1763 - Adjust Arabic feature order again.
1764 - Misc build fixes.
1771 - Graphite2: Fix RTL positioning issue.
1772 - Backlist GDEF of more versions of Padauk and Tahoma.
1773 - New, experimental, cmake alternative build system.
1780 - Revert "Fix Context lookup application when moving back after a glyph..."
1788 - Fix Context lookup application when moving back after a glyph deletion.
1789 - Fix buffer-overrun in Bengali.
1796 - Route Adlam script to Arabic shaper.
1797 - Misc fixes.
1798 - New API:
1800 - Deprecate API:
1808 - Implement OpenType Font Variation tables avar/fvar/HVAR/VVAR.
1809 - hb-shape and hb-view now accept --variations.
1810 - New API:
1820 hb-ot-var.h:
1829 - MVAR to be implemented later. Access to named instances to be
1832 - Misc fixes.
1839 - Always build and use UCDN for Unicode data by default.
1849 - Merged "OpenType GX" branch which adds core of support for
1871 HVAR/VVAR/MVAR support will also be added to hb-ot-font in the
1874 - Fix regression in GDEF glyph class processing.
1875 - Add decompositions for Chakma, Limbu, and Balinese in USE shaper.
1876 - Misc fixes.
1883 - Fix vertical glyph origin in hb-ot-font.
1884 - Implement CBDT/CBLC color font glyph extents in hb-ot-font.
1891 - Implement parsing of OpenType MATH table.
1915 - Fix build of hb-coretext on older OS X versions.
1922 - Blacklist bad GDEF of more fonts (Padauk).
1923 - More CoreText backend crash fixes with OS X 10.9.5.
1924 - Misc fixes.
1931 - Update to Unicode 9.0.0
1932 - Move Javanese from Indic shaper to Universal Shaping Engine.
1933 - Allow MultipleSubst to delete a glyph (matching Windows engine).
1934 - Update Universal Shaping Engine to latest draft from Microsoft.
1935 - DirectWrite backend improvements. Note: this backend is for testing ONLY.
1936 - CoreText backend improvements with unreachable fonts.
1937 - Implement symbol fonts (cmap 3.0.0) in hb-ft and hb-ot-font.
1938 - Blacklist bad GDEF of more fonts (Tahoma & others).
1939 - Misc fixes.
1946 - Blacklist another version of Times New Roman (Bold) Italic from Windows 7.
1947 - Fix Mongolian Free Variation Selectors shaping with certain fonts.
1948 - Fix Tibetan shorthand contractions shaping.
1949 - Improved list of language tag mappings.
1950 - Unbreak build on Windows CE.
1951 - Make 'glyf' table loading lazy in hb-ot-font.
1958 - Blacklist GDEF table of another set of Times New Roman (Bold) Italic.
1959 - DirectWrite backend improvements. Note: DirectWrite backend is
1968 - Fix GDEF mark-filtering-set, which was broken in 1.2.3.
1975 - Synthesize GDEF glyph class for any glyph that does not have one in GDEF.
1978 - Misc build and other minor fixes.
1979 - API changes:
1980 - Added HB_NDEBUG. It's fine for production systems to define this to
1981 disable high-overhead debugging checks. However, I also reduced the
1982 overhead of those checks, so it's a non-issue right now. You can
1990 - Blacklist GDEF table of certain versions of Times New Roman (Bold) Italic,
1991 due to bug in glyph class of ASCII double-quote character. This should
1996 - hb-ot-font's get_glyph() implementation saw some optimizations. Though,
1997 might be really hard to measure in real-world situations.
1999 - Also, two rather small API changes:
2001 We now disable some time-consuming internal bookkeeping if built with NDEBUG
2009 - hb_font_get_nominal_glyph_func_t
2010 - hb_font_get_variation_glyph_func_t
2011 - hb_font_funcs_set_nominal_glyph_func()
2012 - hb_font_funcs_set_variation_glyph_func()
2013 - hb_font_get_nominal_glyph()
2014 - hb_font_get_variation_glyph()
2017 - hb_font_get_glyph_func_t
2018 - hb_font_funcs_set_glyph_func()
2020 Clients that implement their own font-funcs are encouraged to replace
2032 - Fix regression with mark positioning with fonts that have
2033 non-zero mark advances. This was introduced in 1.2.0 while
2044 - CoreText: Fix bug with wrong scale if font scale was changed later.
2046 - CoreText: Drastically speed up font initialization.
2047 - CoreText: Fix tiny leak.
2048 - Group ZWJ/ZWNJ with previous syllable under cluster-level=0.
2050 - Add test/shaping/README.md about how to add tests to the suite.
2057 - Fix various issues (hangs mostly) in case of memory allocation failure.
2058 - Change mark zeroing types of most shapers from BY_UNICODE_LATE to
2060 - Change mark zeroing of USE shaper from NONE to BY_GDEF_EARLY. That's
2062 - Allow GPOS cursive connection on marks, and fix the interaction with
2067 - Graphite2 shaper: improved negative advance handling (eg. Nastaliq).
2068 - Add nmake-based build system for Windows.
2069 - Minor speedup.
2070 - Misc. improvements.
2077 - Ported Indic shaper to Unicode 8.0 data.
2078 - Universal Shaping Engine fixes.
2079 - Speed up CoreText shaper when font fallback happens in CoreText.
2080 - Documentation improvements, thanks to Khaled Hosny.
2081 - Very rough directwrite shaper for testing, thanks to Ebrahim Byagowi.
2082 - Misc bug fixes.
2083 - New API:
2106 - Fix badly-broken fallback shaper that affected terminology.
2108 - Fix y_scaling in Graphite shaper.
2109 - API changes:
2110 * An unset glyph_h_origin() function in font-funcs now (sensibly)
2121 - Build fixes, specially for hb-coretext.
2128 - Implement 'stch' stretch feature for Syriac Abbreviation Mark.
2130 - Disable use of decompose_compatibility() callback.
2131 - Implement "shaping" of various Unicode space characters, even
2134 - If font does not support U+2011 NO-BREAK HYPHEN, fallback to
2136 - Changes resulting from libFuzzer continuous fuzzing:
2139 * Fix assertions and other issues at OOM / buffer max-growth.
2140 - Misc fixes and optimizations.
2141 - API changes:
2150 - Reduce max nesting level in OT lookups from 8 to 6.
2152 - Fix memory access issue in ot-font.
2153 - Revert default load-flags of fonts created using hb_ft_font_create()
2163 - Fix multiple memory access bugs discovered using libFuzzer.
2168 - Misc fixes.
2170 - New API:
2177 - API changes:
2178 * Fonts now default to units-per-EM as their scale, instead of 0.
2187 - Fix minor out-of-bounds read error.
2194 - Start of user documentation, from Simon Cozens!
2195 - Implement glyph_extents() for TrueType fonts in hb-ot-font.
2196 - Improve GPOS cursive attachments with conflicting lookups.
2197 - More fixes for cluster-level = 1.
2198 - Uniscribe positioning fix.
2205 - Fix shaping with cluster-level > 0.
2206 - Fix Uniscribe backend font-size scaling.
2207 - Declare dependencies in harfbuzz.pc.
2208 FreeType is not declared though, to avoid bugs in pkg-config
2210 - Slightly improved debug infrastructure. More to come later.
2211 - Misc build fixes.
2218 - Fix out-of-bounds access in USE shaper.
2225 - Implement Universal Shaping Engine:
2227 http://blogs.windows.com/bloggingwindows/2015/02/23/windows-shapes-the-worlds-languages/
2228 - Bump version to 1.0.0. The soname was NOT bumped.
2235 - New API to allow for retrieving finer-grained cluster
2238 - Fix cluster merging when removing default-ignorables.
2239 - Update to Unicode 8.0
2240 - hb-graphite2 fixes.
2241 - Misc fixes.
2242 - Removed HB_NO_MERGE_CLUSTERS hack.
2243 - New API:
2247 hb-shape / hb-view --cluster-level
2254 - Fix hb-coretext with trailing whitespace in right-to-left.
2255 - New API: hb_buffer_reverse_range().
2256 - Allow implementing atomic ops in config.h.
2257 - Fix hb_language_t in language bindings.
2258 - Misc fixes.
2265 - Another hb-coretext crasher fix. Ouch!
2266 - Happy Norouz!
2273 - Critical hb-coretext fixes.
2274 - Optimizations and refactoring; no functional change
2276 - Misc build fixes.
2283 - Fix minor out-of-bounds access in Indic shaper.
2284 - Change New Tai Lue shaping engine from South-East Asian to default,
2286 - Add hb-shape --font-size. Can take up to two numbers for separate
2288 - Fix CoreText and FreeType scale issues with negative scales.
2289 - Reject blobs larger than 2GB. This might break some icu-le-hb clients
2291 http://www.icu-project.org/trac/ticket/11450
2292 - Avoid accessing font tables during face destruction, in casce rogue
2294 - Fix up gobject-introspection a bit. Python bindings kinda working.
2296 - Misc fixes.
2297 - API additions:
2306 - Fix out-of-bounds access in Context lookup format 3.
2307 - Indic: Allow ZWJ/ZWNJ before syllable modifiers.
2314 - First time that three months went by without a release since
2316 - Fix performance bug in hb_ot_collect_glyphs():
2318 - Add basic vertical-text support to hb-ot-font.
2319 - Misc build fixes.
2326 - Fix major shape-plan caching bug when more than one shaper were
2328 http://www.mail-archive.com/debian-bugs-dist@lists.debian.org/msg1246370.html
2329 - Fix Arabic fallback shaping regression. This was broken in 0.9.32.
2330 - Major hb-coretext fixes. That backend is complete now, including
2332 - Build fixes for Windows CE. Should build fine now.
2333 - Misc fixes:
2338 - API changes:
2355 - hb_feature_from_string() now accepts CSS font-feature-settings format.
2356 - As a result, hb-shape / hb-view --features also accept CSS-style strings.
2358 - Add old-spec Myanmar shaper:
2360 - Don't apply 'calt' in Hangul shaper.
2361 - Fix mark advance zeroing for Hebrew shaper:
2363 - Implement Windows-1256 custom Arabic shaping. Only built on Windows,
2366 - Disable 'liga' in vertical text.
2367 - Build fixes.
2368 - API changes:
2396 of the paragraph. Clients that only pass item-at-a-time to HarfBuzz
2399 Another way to put it is: if there's pre-context text in the buffer,
2400 HarfBuzz ignores the BOT flag. If there's post-context, it ignores
2408 - Turn off ARabic 'cswh' feature that was accidentally turned on.
2409 - Add HB_TAG_MAX_SIGNED.
2410 - Make hb_face_make_immutable() really make face immutable!
2411 - Windows build fixes.
2418 - Apply Arabic shaping features in spec order exactly.
2419 - Another fix for Mongolian free variation selectors.
2420 - For non-Arabic scripts in Arabic shaper apply 'rlig' and 'calt'
2422 - Minor adjustment to U+FFFD logic.
2423 - Fix hb-coretext build.
2430 - Only accept valid UTF-8/16/32; we missed many cases before.
2431 - Better shaping of invalid UTF-8/16/32. Falls back to
2433 - With all changes in this release, the buffer will contain fully
2436 - Fix Mongolian Variation Selectors for fonts without GDEF.
2437 - Fix minor invalid buffer access.
2438 - Accept zh-Hant and zh-Hans language tags. hb_ot_tag_to_language()
2440 - Build fixes.
2441 - New API:
2449 we detected broken input, we replaced that with (hb_codepoint_t)-1.
2458 - Update to Unicode 7.0.0:
2463 - Minor Indic improvements.
2464 - Fix graphite2 backend cluster mapping [crasher!]
2465 - API changes:
2468 - Build fixes.
2475 - Implement cmap in hb-ot-font.h. No variation-selectors yet.
2476 - Myanmar: Allow MedialYa+Asat.
2477 - Various Indic fixes:
2481 - Build fixes.
2488 - Unbreak old-spec Indic shaping. (bug 76705)
2489 - Fix shaping of U+17DD and U+0FC6.
2490 - Add HB_NO_MERGE_CLUSTERS build option. NOT to be enabled by default
2493 public run-time API for the functionality.
2494 - Build fixes.
2501 - Don't use "register" storage class specifier
2502 - Wrap definition of free_langs() with HAVE_ATEXIT
2503 - Add coretext_aat shaper and hb_coretext_face_create() constructor
2504 - If HAVE_ICU_BUILTIN is defined, use hb-icu Unicode callbacks
2505 - Add Myanmar test case from OpenType Myanmar spec
2506 - Only do fallback Hebrew composition if no GPOS 'mark' available
2507 - Allow bootstrapping without gtk-doc
2508 - Use AM_MISSING_PROG for ragel and git
2509 - Typo in ucdn's Makefile.am
2510 - Improve MemoryBarrier() implementation
2517 - Misc fixes.
2518 - Fix application of 'rtlm' feature.
2519 - Automatically apply frac/numr/dnom around U+2044 FRACTION SLASH.
2520 - New header: hb-ot-shape.h
2521 - Uniscribe: fix scratch-buffer accounting.
2522 - Reorder Tai Tham SAKOT to after tone-marks.
2523 - Add Hangul shaper.
2524 - New files:
2525 hb-ot-shape-complex-hangul.cc
2526 hb-ot-shape-complex-hebrew.cc
2527 hb-ot-shape-complex-tibetan.cc
2528 - Disable 'cswh' feature in Arabic shaper.
2529 - Coretext: better handle surrogate pairs.
2530 - Add HB_TAG_MAX and _HB_SCRIPT_MAX_VALUE.
2537 - Myanmar shaper improvements.
2538 - Avoid font fallback in CoreText backend.
2539 - Additional OpenType language tag mappiongs.
2540 - More aggressive shape-plan caching.
2541 - Build with / require automake 1.13.
2542 - Build with libtool 2.4.2.418 alpha to support ppc64le.
2549 - Misc compiler warning fixes with clang.
2550 - No functional changes.
2557 - "Udupi HarfBuzz Hackfest", Paris, October 14..18 2013.
2558 - Fix (Chain)Context recursion with non-monotone lookup positions.
2559 - Misc Indic bug fixes.
2560 - New Javanese / Buginese shaping, similar to Windows 8.1.
2567 - Fix use-after-end-of-scope in hb_language_from_string().
2568 - Fix hiding of default_ignorables if font doesn't have space glyph.
2569 - Protect against out-of-range lookup indices.
2571 - API Changes:
2580 - Rename gobject-introspection library name from harfbuzz to HarfBuzz.
2581 - Remove (long disabled) hb-old and hb-icu-le test shapers.
2582 - Misc gtk-doc and gobject-introspection annotations.
2583 - Misc fixes.
2584 - API changes:
2593 - Misc substitute_closure() fixes.
2594 - Build fixes.
2597 - gtk-doc boilerplate integrated. Docs are built now, but
2599 some content in. Enable using --enable-gtk-doc.
2601 GObject and Introspection:
2602 - Added harfbuzz-gobject library (hb-gobject.h) that has type
2604 --with-gobject.
2605 - Added gobject-introspection boilerplate. Nothing useful
2607 --with-gobject is used. Override with --disable-introspection.
2610 - Apply 'mark' in Myanmar shaper.
2611 - Don't apply 'dlig' by default.
2614 - Support user features.
2615 - Fix loading of fonts that are also installed on the system.
2616 - Fix shaping of Arabic Presentation Forms.
2617 - Fix build with wide chars.
2620 - Support user features.
2623 - hb_face_t code moved to hb-face.h / hb-face.cc.
2624 - Added hb-deprecated.h.
2627 - Added HB_DISABLE_DEPRECATED.
2628 - Deprecated HB_SCRIPT_CANADIAN_ABORIGINAL; replaced by
2630 - Deprecated HB_BUFFER_FLAGS_DEFAULT; replaced by
2632 - Deprecated HB_BUFFER_SERIALIZE_FLAGS_DEFAULT; replaced by
2640 - Build fixes.
2641 - Better handling of multiple variation selectors in a row.
2642 - Pass on variation selector to GSUB if not consumed by cmap.
2643 - Fix undefined memory access.
2644 - Add Javanese config to Indic shaper.
2645 - Misc bug fixes.
2653 - All unneeded code is all disabled by default,
2655 - Uniscribe and CoreText shapers can be enabled with their --with options,
2657 - icu_le and old shapers cannot be enabled for now,
2659 - glib, freetype, and cairo will be detected automatically.
2660 They can be force on/off'ed with their --with options,
2662 - icu and graphite2 are default off, can be enabled with their --with
2666 libharfbuzz-icu.so, and a new harfbuzz-icu.pc is shipped for it.
2670 For distros I recommend that they make sure they are building --with-glib
2671 --with-freetype --with-cairo, --with-icu, and optionally --with-graphite2;
2672 And package harfbuzz and harfbuzz-icu separately.
2679 - Build fixes.
2680 - Fix bug in hb_set_get_min().
2681 - Fix regression with Arabic mark positioning / width-zeroing.
2687 - Major speedup in OpenType lookup processing. With the Amiri
2691 - New --num-iterations option for hb-shape / hb-view; useful for
2698 - Build fixes.
2699 - Fix crasher in graphite2 shaper.
2700 - Fix Arabic mark width zeroing regression.
2701 - Don't compose Hangul jamo into Unicode syllables.
2708 - Build fixes.
2709 - Fix time-consuming sanitize with malicious fonts.
2710 - Implement hb_buffer_deserialize_glyphs() for both json and text.
2711 - Do not ignore Hangul filler characters.
2712 - Indic fixes:
2713 * Fix Malayalam pre-base reordering interaction with post-forms.
2722 - Build fixes.
2723 - Ngapi HarfBuzz Hackfest in London (February 2013):
2725 * New Win8-style Myanmar shaper,
2726 * New South-East Asian shaper for Tai Tham, Cham, and New Tai Lue,
2729 * Fix 'Phags-Pa U+A872 shaping,
2730 * Fix partial disabling of default-on features,
2732 - Fix possible crasher with broken fonts with overlapping tables.
2733 - Removed generated files from git again. So, one needs ragel to
2737 - hb_shape() and related APIs now abort if buffer direction is
2743 - hb_blob_create_sub_blob() always creates sub-blob with
2751 - Build fixes for Sun compiler.
2752 - Minor bug fix.
2758 - Build fixes.
2759 - Fix GPOS mark attachment with null Anchor offsets.
2760 - [Indic] Fix old-spec reordering of viramas if sequence ends in one.
2761 - Fix multi-threaded shaper data creation crash.
2762 - Add atomic ops for Solaris.
2765 - Rename hb_buffer_clear() to hb_buffer_clear_contents().
2772 - [Indic] Fixed rendering of Malayalam dot-reph
2773 - Updated OT language tags.
2774 - Updated graphite2 backend.
2775 - Improved hb_ot_layout_get_size_params() logic.
2776 - Improve hb-shape/hb-view help output.
2777 - Fixed hb-set.h implementation to not crash.
2778 - Fixed various issues with hb_ot_layout_collect_lookups().
2779 - Various build fixes.
2796 - Fix build on Windows.
2797 - Minor improvements.
2805 - Actually implement hb_shape_plan_get_shaper ().
2806 - Make UCDB data tables const.
2807 - Lots of internal refactoring in OTLayout tables.
2808 - Flesh out hb_ot_layout_lookup_collect_glyphs().
2821 HarfBuzz "All-You-Can-Eat-Sushi" (aka Vancouver) Hackfest and follow-on fixes.
2823 - Fix Arabic contextual joining using pre-context text.
2824 - Fix Sinhala "split matra" mess.
2825 - Fix Khmer shaping with broken fonts.
2826 - Implement Thai "PUA" shaping for old fonts.
2827 - Do NOT route Kharoshthi script through the Indic shaper.
2828 - Disable fallback positioning for Indic and Thai shapers.
2829 - Misc fixes.
2832 hb-shape / hb-view changes:
2834 - Add --text-before and --text-after
2835 - Add --bot / --eot / --preserve-default-ignorables
2836 - hb-shape --output-format=json
2893 - Remove "mask" parameter from hb_buffer_add().
2894 - Rename hb_ot_layout_would_substitute_lookup() and hb_ot_layout_substitute_closure_lookup().
2895 - hb-set.h API const correction.
2896 - Renamed hb_set_min/max() to hb_set_get_min/max().
2897 - Rename hb_ot_layout_feature_get_lookup_indexes() to hb_ot_layout_feature_get_lookups().
2898 - Rename hb_buffer_guess_properties() to hb_buffer_guess_segment_properties().
2906 - Don't clear pre-context text if no new context is provided.
2907 - Fix ReverseChainingSubstLookup, which was totally borked.
2908 - Adjust output format of hb-shape a bit.
2909 - Include config.h.in in-tree. Makes it easier for alternate build systems.
2910 - Fix hb_buffer_set_length(buffer, 0) invalid memory allocation.
2911 - Use ICU LayoutEngine's C API instead of C++. Avoids much headache.
2912 - Drop glyphs for all of Unicode Default_Ignorable characters.
2913 - Misc build fixes.
2916 - Enable 'dlig' and 'mset' features in Arabic shaper.
2917 - Implement 'Phags-pa shaping, improve Mongolian.
2920 - Decompose Sinhala split matras the way old HarfBuzz / Pango did.
2921 - Initial support for Consonant Medials.
2922 - Start adding new-style Myanmar shaping.
2923 - Make reph and 'pref' logic introspect the font.
2924 - Route Meetei-Mayek through the Indic shaper.
2925 - Don't apply 'liga' in Indic shaper.
2926 - Improve Malayalam pre-base reordering Ra interaction with Chillus.
2934 - Synthetic-GSUB Arabic fallback shaping.
2936 - Misc Indic improvements.
2938 - Add build system support for pthread.
2940 - Imported UCDN for in-tree Unicode callbacks implementation.
2942 - Context-aware Arabic joining.
2944 - Misc other fixes.
2946 - New API:
2948 hb_feature_to/from-string()
2957 - Indic improvements with old-spec Malayalam.
2959 - Better fallback glyph positioning, specially with Thai / Lao marks.
2961 - Implement dotted-circle insertion.
2963 - Better Arabic fallback shaping / ligation.
2965 - Added ICU LayoutEngine backend for testing. Call it by the 'icu_le' name.
2967 - Misc fixes.
2975 - Fixed fallback mark positioning for left-to-right text.
2977 - Improve mark positioning for the remaining combining classes.
2979 - Unbreak Thai and fallback Arabic shaping.
2981 - Port Arabic shaper to shape-plan caching.
2983 - Use new ICU normalizer functions.
2991 - Over a thousand commits! This is the first major release of HarfBuzz.
2993 - HarfBuzz is feature-complete now! It should be in par, or better, than
2996 - New Indic shaper, supporting main Indic scripts, Sinhala, and Khmer.
2998 - Improved Arabic shaper, with fallback Arabic shaping, supporting Arabic,
3001 - New Thai / Lao shaper.
3003 - Tibetan / Hangul support in the generic shaper.
3005 - Synthetic GDEF support for fonts without a GDEF table.
3007 - Fallback mark positioning for fonts without a GPOS table.
3009 - Unicode normalization shaping heuristic during glyph mapping.
3011 - New experimental Graphite2 backend.
3013 - New Uniscribe backend (primarily for testing).
3015 - New CoreText backend (primarily for testing).
3017 - Major optimization and speedup.
3019 - Test suites and testing infrastructure (work in progress).
3021 - Greatly improved hb-view cmdline tool.
3023 - hb-shape cmdline tool.
3025 - Unicode 6.1 support.
3031 - Users are expected to only include main header files now (ie. hb.h,
3032 hb-glib.h, hb-ft.h, ...)
3034 - All struct tag names had their initial underscore removed.
3037 - All set_user_data() functions now take a "replace" boolean parameter.
3039 - hb_buffer_create() takes zero arguments now.
3040 Use hb_buffer_pre_allocate() to pre-allocate.
3042 - hb_buffer_add_utf*() now accept -1 for length parameters,
3043 meaning "nul-terminated".
3045 - hb_direction_t enum values changed.
3047 - All *_from_string() APIs now take a length parameter to allow for
3048 non-nul-terminated strings. A -1 length means "nul-terminated".
3050 - Typedef for hb_language_t changed.
3052 - hb_get_table_func_t renamed to hb_reference_table_func_t.
3054 - hb_ot_layout_table_choose_script()
3056 - Various renames in hb-unicode.h.
3060 - hb_buffer_guess_properties()
3063 - hb_buffer_normalize_glyphs()
3065 - hb_tag_from_string()
3067 - hb-coretext.h
3069 - hb-uniscribe.h
3071 - hb_face_reference_blob()
3072 - hb_face_[sg]et_index()
3073 - hb_face_set_upem()
3075 - hb_font_get_glyph_name_func_t
3084 - hb_font_set_funcs_data()
3086 - hb_ft_font_set_funcs()
3087 - hb_ft_font_get_face()
3089 - hb-gobject.h (work in progress)
3091 - hb_ot_shape_glyphs_closure()
3094 - hb-set.h
3096 - hb_shape_full()
3098 - hb_unicode_combining_class_t
3100 - hb_unicode_compose_func_t
3112 - hb_ft_get_font_funcs()
3114 - hb_ot_layout_substitute_start()
3127 - Vertical text support in GPOS
3128 - Almost all API entries have unit tests now, under test/
3129 - All thread-safety issues are fixed
3345 o The following higher-leve API added for convenience: