uharfbuzz 0.51.3__tar.gz → 0.51.5__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of uharfbuzz might be problematic. Click here for more details.
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/PKG-INFO +1 -1
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/Layout/GPOS/GPOS.hh +49 -17
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-aat-layout-common.hh +34 -11
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-aat-layout-kerx-table.hh +37 -37
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-aat-layout-morx-table.hh +9 -10
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-buffer.cc +20 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-buffer.hh +28 -13
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-common.cc +3 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-kern.hh +1 -1
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-kern-table.hh +4 -3
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-layout-common.hh +133 -98
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-layout.hh +0 -12
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-shape-fallback.cc +20 -9
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-shape.cc +10 -1
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-shaper-arabic-joining-list.hh +4 -4
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-shaper-arabic-table.hh +11 -11
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-shaper-indic-table.cc +6 -6
- uharfbuzz-0.51.5/harfbuzz/src/hb-ot-shaper-use-table.hh +717 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-shaper-vowel-constraints.cc +2 -2
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-shaper.hh +6 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-tag-table.hh +3 -3
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-var-common.hh +90 -64
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-var-hvar-table.hh +49 -31
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-priority-queue.hh +11 -1
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-script-list.h +12 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-subset-instancer-solver.cc +18 -20
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-subset-instancer-solver.hh +11 -11
- uharfbuzz-0.51.5/harfbuzz/src/hb-ucd-table.hh +5628 -0
- uharfbuzz-0.51.5/harfbuzz/src/hb-unicode-emoji-table.hh +87 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-utf.hh +10 -10
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-vector.hh +26 -2
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-version.h +3 -3
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/test-subset-instancer-solver.cc +64 -32
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/src/uharfbuzz/_harfbuzz.cpp +16 -5
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/src/uharfbuzz/_harfbuzz_test.cpp +3 -3
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/src/uharfbuzz/_version.py +3 -3
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/src/uharfbuzz.egg-info/PKG-INFO +1 -1
- uharfbuzz-0.51.3/harfbuzz/src/hb-ot-shaper-use-table.hh +0 -718
- uharfbuzz-0.51.3/harfbuzz/src/hb-ucd-table.hh +0 -5696
- uharfbuzz-0.51.3/harfbuzz/src/hb-unicode-emoji-table.hh +0 -77
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/.coveragerc +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/.github/workflows/ci.yml +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/.gitignore +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/.gitmodules +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/.readthedocs.yml +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/LICENSE +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/MANIFEST.in +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/README.md +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/docs/.gitignore +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/docs/requirements.in +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/docs/requirements.txt +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/docs/source/conf.py +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/docs/source/index.rst +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/docs/source/reference.rst +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/Color/CBDT/CBDT.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/Color/COLR/COLR.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/Color/COLR/colrv1-closure.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/Color/CPAL/CPAL.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/Color/sbix/sbix.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/Color/svg/svg.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/Layout/Common/Coverage.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/Layout/Common/CoverageFormat1.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/Layout/Common/CoverageFormat2.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/Layout/Common/RangeRecord.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/Layout/GDEF/GDEF.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/Layout/GPOS/Anchor.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/Layout/GPOS/AnchorFormat1.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/Layout/GPOS/AnchorFormat2.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/Layout/GPOS/AnchorFormat3.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/Layout/GPOS/AnchorMatrix.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/Layout/GPOS/ChainContextPos.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/Layout/GPOS/Common.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/Layout/GPOS/ContextPos.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/Layout/GPOS/CursivePos.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/Layout/GPOS/CursivePosFormat1.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/Layout/GPOS/ExtensionPos.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/Layout/GPOS/LigatureArray.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/Layout/GPOS/MarkArray.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/Layout/GPOS/MarkBasePos.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/Layout/GPOS/MarkBasePosFormat1.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/Layout/GPOS/MarkLigPos.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/Layout/GPOS/MarkLigPosFormat1.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/Layout/GPOS/MarkMarkPos.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/Layout/GPOS/MarkMarkPosFormat1.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/Layout/GPOS/MarkRecord.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/Layout/GPOS/PairPos.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/Layout/GPOS/PairPosFormat1.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/Layout/GPOS/PairPosFormat2.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/Layout/GPOS/PairSet.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/Layout/GPOS/PairValueRecord.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/Layout/GPOS/PosLookup.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/Layout/GPOS/PosLookupSubTable.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/Layout/GPOS/SinglePos.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/Layout/GPOS/SinglePosFormat1.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/Layout/GPOS/SinglePosFormat2.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/Layout/GPOS/ValueFormat.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/Layout/GSUB/AlternateSet.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/Layout/GSUB/AlternateSubst.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/Layout/GSUB/AlternateSubstFormat1.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/Layout/GSUB/ChainContextSubst.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/Layout/GSUB/Common.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/Layout/GSUB/ContextSubst.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/Layout/GSUB/ExtensionSubst.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/Layout/GSUB/GSUB.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/Layout/GSUB/Ligature.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/Layout/GSUB/LigatureSet.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/Layout/GSUB/LigatureSubst.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/Layout/GSUB/LigatureSubstFormat1.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/Layout/GSUB/MultipleSubst.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/Layout/GSUB/MultipleSubstFormat1.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/Layout/GSUB/ReverseChainSingleSubst.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/Layout/GSUB/ReverseChainSingleSubstFormat1.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/Layout/GSUB/Sequence.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/Layout/GSUB/SingleSubst.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/Layout/GSUB/SingleSubstFormat1.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/Layout/GSUB/SingleSubstFormat2.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/Layout/GSUB/SubstLookup.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/Layout/GSUB/SubstLookupSubTable.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/Layout/types.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/Var/VARC/VARC.cc +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/Var/VARC/VARC.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/Var/VARC/coord-setter.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/glyf/CompositeGlyph.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/glyf/Glyph.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/glyf/GlyphHeader.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/glyf/SimpleGlyph.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/glyf/SubsetGlyph.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/glyf/composite-iter.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/glyf/glyf-helpers.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/glyf/glyf.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/glyf/loca.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/glyf/path-builder.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/OT/name/name.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/graph/classdef-graph.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/graph/coverage-graph.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/graph/graph.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/graph/gsubgpos-context.cc +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/graph/gsubgpos-context.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/graph/gsubgpos-graph.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/graph/ligature-graph.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/graph/markbasepos-graph.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/graph/pairpos-graph.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/graph/serialize.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/graph/split-helpers.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/graph/test-classdef-graph.cc +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/harfbuzz-subset.cc +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/harfbuzz.cc +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-aat-layout-ankr-table.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-aat-layout-bsln-table.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-aat-layout-feat-table.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-aat-layout-just-table.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-aat-layout-opbd-table.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-aat-layout-trak-table.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-aat-layout.cc +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-aat-layout.h +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-aat-layout.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-aat-ltag-table.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-aat-map.cc +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-aat-map.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-aat.h +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-algs.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-array.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-atomic.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-bimap.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-bit-page.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-bit-set-invertible.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-bit-set.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-bit-vector.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-blob.cc +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-blob.h +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-blob.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-buffer-deserialize-json.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-buffer-deserialize-text-glyphs.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-buffer-deserialize-text-unicode.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-buffer-serialize.cc +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-buffer-verify.cc +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-buffer.h +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-cache.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-cairo-utils.cc +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-cairo-utils.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-cairo.cc +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-cairo.h +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-cff-interp-common.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-cff-interp-cs-common.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-cff-interp-dict-common.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-cff1-interp-cs.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-cff2-interp-cs.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-common.h +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-config.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-coretext-font.cc +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-coretext-shape.cc +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-coretext.cc +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-coretext.h +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-coretext.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-cplusplus.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-debug.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-decycler.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-deprecated.h +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-directwrite-font.cc +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-directwrite-shape.cc +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-directwrite.cc +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-directwrite.h +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-directwrite.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-dispatch.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-draw.cc +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-draw.h +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-draw.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-face-builder.cc +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-face.cc +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-face.h +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-face.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-fallback-shape.cc +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-font.cc +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-font.h +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-font.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-fontations.h +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ft-colr.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ft.cc +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ft.h +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-gdi.cc +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-gdi.h +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-geometry.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-glib.cc +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-glib.h +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-gobject-structs.cc +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-gobject-structs.h +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-gobject.h +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-graphite2.cc +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-graphite2.h +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-harfrust.cc +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-icu.cc +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-icu.h +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-iter.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-kbts.cc +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-limits.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-machinery.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-map.cc +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-map.h +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-map.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-meta.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ms-feature-ranges.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-multimap.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-mutex.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-null.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-number-parser.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-number.cc +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-number.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-object.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-open-file.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-open-type.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-cff-common.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-cff1-std-str.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-cff1-table.cc +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-cff1-table.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-cff2-table.cc +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-cff2-table.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-cmap-table.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-color.cc +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-color.h +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-deprecated.h +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-face-table-list.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-face.cc +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-face.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-font.cc +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-font.h +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-gasp-table.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-glyf-table.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-hdmx-table.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-head-table.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-hhea-table.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-hmtx-table.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-layout-base-table.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-layout-gdef-table.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-layout-gpos-table.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-layout-gsub-table.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-layout-gsubgpos.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-layout-jstf-table.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-layout.cc +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-layout.h +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-map.cc +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-map.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-math-table.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-math.cc +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-math.h +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-maxp-table.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-meta-table.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-meta.cc +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-meta.h +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-metrics.cc +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-metrics.h +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-metrics.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-name-language-static.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-name-language.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-name-table.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-name.cc +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-name.h +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-os2-table.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-os2-unicode-ranges.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-post-macroman.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-post-table-v2subset.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-post-table.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-shape-fallback.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-shape-normalize.cc +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-shape-normalize.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-shape.h +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-shape.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-shaper-arabic-fallback.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-shaper-arabic-pua.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-shaper-arabic-win1256.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-shaper-arabic.cc +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-shaper-arabic.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-shaper-default.cc +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-shaper-hangul.cc +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-shaper-hebrew.cc +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-shaper-indic-machine.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-shaper-indic.cc +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-shaper-indic.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-shaper-khmer-machine.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-shaper-khmer.cc +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-shaper-myanmar-machine.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-shaper-myanmar.cc +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-shaper-syllabic.cc +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-shaper-syllabic.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-shaper-thai.cc +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-shaper-use-machine.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-shaper-use.cc +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-shaper-vowel-constraints.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-stat-table.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-tag.cc +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-var-avar-table.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-var-cvar-table.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-var-fvar-table.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-var-gvar-table.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-var-mvar-table.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-var-varc-table.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-var.cc +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-var.h +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot-vorg-table.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ot.h +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-outline.cc +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-outline.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-paint-bounded.cc +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-paint-bounded.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-paint-extents.cc +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-paint-extents.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-paint.cc +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-paint.h +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-paint.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-pool.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-repacker.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-sanitize.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-serialize.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-set-digest.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-set.cc +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-set.h +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-set.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-shape-plan.cc +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-shape-plan.h +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-shape-plan.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-shape.cc +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-shape.h +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-shaper-impl.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-shaper-list.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-shaper.cc +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-shaper.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-static.cc +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-string-array.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-style.cc +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-style.h +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-subset-accelerator.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-subset-cff-common.cc +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-subset-cff-common.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-subset-cff1.cc +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-subset-cff2.cc +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-subset-input.cc +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-subset-input.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-subset-instancer-iup.cc +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-subset-instancer-iup.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-subset-plan-layout.cc +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-subset-plan-member-list.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-subset-plan-var.cc +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-subset-plan.cc +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-subset-plan.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-subset-serialize.cc +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-subset-serialize.h +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-subset-table-cff.cc +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-subset-table-color.cc +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-subset-table-layout.cc +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-subset-table-other.cc +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-subset-table-var.cc +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-subset-table.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-subset.cc +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-subset.h +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-subset.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-ucd.cc +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-unicode.cc +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-unicode.h +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-unicode.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-uniscribe.cc +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-uniscribe.h +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-wasm-api-blob.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-wasm-api-buffer.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-wasm-api-common.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-wasm-api-face.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-wasm-api-font.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-wasm-api-list.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-wasm-api-shape.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-wasm-api.cc +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-wasm-api.h +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-wasm-api.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb-wasm-shape.cc +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb.h +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/hb.hh +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/main.cc +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/test-algs.cc +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/test-array.cc +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/test-bimap.cc +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/test-buffer-serialize.cc +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/test-cff.cc +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/test-decycler.cc +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/test-gpos-size-params.cc +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/test-gsub-get-alternates.cc +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/test-gsub-would-substitute.cc +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/test-item-varstore.cc +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/test-iter.cc +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/test-machinery.cc +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/test-map.cc +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/test-multimap.cc +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/test-number.cc +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/test-ot-glyphname.cc +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/test-ot-meta.cc +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/test-ot-name.cc +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/test-priority-queue.cc +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/test-repacker.cc +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/test-serialize.cc +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/test-set.cc +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/test-tuple-varstore.cc +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/test-unicode-ranges.cc +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/test-use-table.cc +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/test-vector.cc +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/test.cc +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/wasm/graphite/shape.cc +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/wasm/sample/c/shape-fallback.cc +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/harfbuzz/src/wasm/sample/c/shape-ot.cc +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/pyproject.toml +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/requirements-dev.txt +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/setup.cfg +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/setup.py +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/src/uharfbuzz/__init__.py +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/src/uharfbuzz/_draw_test_funcs.cc +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/src/uharfbuzz/_harfbuzz.pyx +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/src/uharfbuzz/_harfbuzz_test.pyx +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/src/uharfbuzz/charfbuzz.pxd +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/src/uharfbuzz.egg-info/SOURCES.txt +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/src/uharfbuzz.egg-info/dependency_links.txt +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/src/uharfbuzz.egg-info/not-zip-safe +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/src/uharfbuzz.egg-info/top_level.txt +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/tests/data/AUTHORS_StixTwoMath.txt +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/tests/data/AdobeBlank.fea +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/tests/data/AdobeBlank.subset.ttf +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/tests/data/LICENSE_AdobeBlank.txt +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/tests/data/LICENSE_ChromaCheck_colr.txt +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/tests/data/LICENSE_MutatorSans.txt +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/tests/data/LICENSE_OpenSans.txt +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/tests/data/LICENSE_STIXTwoMath.txt +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/tests/data/MutatorSans-VF.subset.ttf +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/tests/data/OpenSans.subset.ttf +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/tests/data/STIXTwoMath-Regular.ttf +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/tests/data/SparseFont.ttf +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/tests/data/chromacheck-colr.ttf +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/tests/data/expected/hand-10 +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/tests/data/expected/test-10 +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/tests/data/expected/test-106 +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/tests/data/expected/test-116 +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/tests/data/expected/test-123 +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/tests/data/expected/test-154 +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/tests/data/expected/test-165 +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/tests/data/expected/test-175 +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/tests/data/expected/test-6 +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/tests/data/expected/test-92 +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/tests/data/noto_handwriting-cff2_colr_1.otf +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/tests/data/test_glyphs-glyf_colr_1.ttf +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/tests/test_uharfbuzz.py +0 -0
- {uharfbuzz-0.51.3 → uharfbuzz-0.51.5}/tox.ini +0 -0
|
@@ -80,9 +80,8 @@ propagate_attachment_offsets (hb_glyph_position_t *pos,
|
|
|
80
80
|
{
|
|
81
81
|
/* Adjusts offsets of attached glyphs (both cursive and mark) to accumulate
|
|
82
82
|
* offset of glyph they are attached to. */
|
|
83
|
-
int chain = pos[i].attach_chain()
|
|
84
|
-
|
|
85
|
-
return;
|
|
83
|
+
int chain = pos[i].attach_chain();
|
|
84
|
+
int type = pos[i].attach_type();
|
|
86
85
|
|
|
87
86
|
pos[i].attach_chain() = 0;
|
|
88
87
|
|
|
@@ -94,7 +93,8 @@ propagate_attachment_offsets (hb_glyph_position_t *pos,
|
|
|
94
93
|
if (unlikely (!nesting_level))
|
|
95
94
|
return;
|
|
96
95
|
|
|
97
|
-
|
|
96
|
+
if (pos[j].attach_chain())
|
|
97
|
+
propagate_attachment_offsets (pos, len, j, direction, nesting_level - 1);
|
|
98
98
|
|
|
99
99
|
assert (!!(type & GPOS_impl::ATTACH_TYPE_MARK) ^ !!(type & GPOS_impl::ATTACH_TYPE_CURSIVE));
|
|
100
100
|
|
|
@@ -110,17 +110,37 @@ propagate_attachment_offsets (hb_glyph_position_t *pos,
|
|
|
110
110
|
pos[i].x_offset += pos[j].x_offset;
|
|
111
111
|
pos[i].y_offset += pos[j].y_offset;
|
|
112
112
|
|
|
113
|
-
|
|
114
|
-
if (
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
113
|
+
// i is the position of the mark; j is the base.
|
|
114
|
+
if (j < i)
|
|
115
|
+
{
|
|
116
|
+
/* This is the common case: mark follows base.
|
|
117
|
+
* And currently the only way in OpenType. */
|
|
118
|
+
if (HB_DIRECTION_IS_FORWARD (direction))
|
|
119
|
+
for (unsigned int k = j; k < i; k++) {
|
|
120
|
+
pos[i].x_offset -= pos[k].x_advance;
|
|
121
|
+
pos[i].y_offset -= pos[k].y_advance;
|
|
122
|
+
}
|
|
123
|
+
else
|
|
124
|
+
for (unsigned int k = j + 1; k < i + 1; k++) {
|
|
125
|
+
pos[i].x_offset += pos[k].x_advance;
|
|
126
|
+
pos[i].y_offset += pos[k].y_advance;
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
else // j > i
|
|
130
|
+
{
|
|
131
|
+
/* This can happen with `kerx`: a mark attaching
|
|
132
|
+
* to a base after it in the logical order. */
|
|
133
|
+
if (HB_DIRECTION_IS_FORWARD (direction))
|
|
134
|
+
for (unsigned int k = i; k < j; k++) {
|
|
135
|
+
pos[i].x_offset += pos[k].x_advance;
|
|
136
|
+
pos[i].y_offset += pos[k].y_advance;
|
|
137
|
+
}
|
|
138
|
+
else
|
|
139
|
+
for (unsigned int k = i + 1; k < j + 1; k++) {
|
|
140
|
+
pos[i].x_offset -= pos[k].x_advance;
|
|
141
|
+
pos[i].y_offset -= pos[k].y_advance;
|
|
142
|
+
}
|
|
143
|
+
}
|
|
124
144
|
}
|
|
125
145
|
}
|
|
126
146
|
|
|
@@ -149,8 +169,20 @@ GPOS::position_finish_offsets (hb_font_t *font, hb_buffer_t *buffer)
|
|
|
149
169
|
|
|
150
170
|
/* Handle attachments */
|
|
151
171
|
if (buffer->scratch_flags & HB_BUFFER_SCRATCH_FLAG_HAS_GPOS_ATTACHMENT)
|
|
152
|
-
|
|
153
|
-
|
|
172
|
+
{
|
|
173
|
+
auto *pos = buffer->pos;
|
|
174
|
+
// https://github.com/harfbuzz/harfbuzz/issues/5514
|
|
175
|
+
if (HB_DIRECTION_IS_FORWARD (direction))
|
|
176
|
+
{
|
|
177
|
+
for (unsigned i = 0; i < len; i++)
|
|
178
|
+
if (pos[i].attach_chain())
|
|
179
|
+
propagate_attachment_offsets (pos, len, i, direction);
|
|
180
|
+
} else {
|
|
181
|
+
for (unsigned i = len; i-- > 0; )
|
|
182
|
+
if (pos[i].attach_chain())
|
|
183
|
+
propagate_attachment_offsets (pos, len, i, direction);
|
|
184
|
+
}
|
|
185
|
+
}
|
|
154
186
|
|
|
155
187
|
if (unlikely (font->slant_xy) &&
|
|
156
188
|
HB_DIRECTION_IS_HORIZONTAL (direction))
|
|
@@ -78,7 +78,10 @@ struct hb_aat_scratch_t
|
|
|
78
78
|
{
|
|
79
79
|
hb_bit_set_t *s = buffer_glyph_set.get_acquire ();
|
|
80
80
|
if (s && buffer_glyph_set.cmpexch (s, nullptr))
|
|
81
|
+
{
|
|
82
|
+
s->clear ();
|
|
81
83
|
return s;
|
|
84
|
+
}
|
|
82
85
|
|
|
83
86
|
s = (hb_bit_set_t *) hb_calloc (1, sizeof (hb_bit_set_t));
|
|
84
87
|
if (unlikely (!s))
|
|
@@ -123,13 +126,14 @@ struct hb_aat_apply_context_t :
|
|
|
123
126
|
const OT::GDEF &gdef;
|
|
124
127
|
bool has_glyph_classes;
|
|
125
128
|
const hb_sorted_vector_t<hb_aat_map_t::range_flags_t> *range_flags = nullptr;
|
|
129
|
+
hb_mask_t subtable_flags = 0;
|
|
130
|
+
bool buffer_is_reversed = false;
|
|
131
|
+
// Caches
|
|
126
132
|
bool using_buffer_glyph_set = false;
|
|
127
133
|
hb_bit_set_t *buffer_glyph_set = nullptr;
|
|
128
|
-
const hb_bit_set_t *
|
|
129
|
-
const hb_bit_set_t *
|
|
130
|
-
const hb_bit_set_t *machine_glyph_set = nullptr;
|
|
134
|
+
const hb_bit_set_t *first_set = nullptr;
|
|
135
|
+
const hb_bit_set_t *second_set = nullptr;
|
|
131
136
|
hb_aat_class_cache_t *machine_class_cache = nullptr;
|
|
132
|
-
hb_mask_t subtable_flags = 0;
|
|
133
137
|
|
|
134
138
|
/* Unused. For debug tracing only. */
|
|
135
139
|
unsigned int lookup_index;
|
|
@@ -145,6 +149,12 @@ struct hb_aat_apply_context_t :
|
|
|
145
149
|
|
|
146
150
|
void set_lookup_index (unsigned int i) { lookup_index = i; }
|
|
147
151
|
|
|
152
|
+
void reverse_buffer ()
|
|
153
|
+
{
|
|
154
|
+
buffer->reverse ();
|
|
155
|
+
buffer_is_reversed = !buffer_is_reversed;
|
|
156
|
+
}
|
|
157
|
+
|
|
148
158
|
void setup_buffer_glyph_set ()
|
|
149
159
|
{
|
|
150
160
|
using_buffer_glyph_set = buffer->len >= 4 && buffer_glyph_set;
|
|
@@ -155,11 +165,11 @@ struct hb_aat_apply_context_t :
|
|
|
155
165
|
bool buffer_intersects_machine () const
|
|
156
166
|
{
|
|
157
167
|
if (likely (using_buffer_glyph_set))
|
|
158
|
-
return buffer_glyph_set->intersects (*
|
|
168
|
+
return buffer_glyph_set->intersects (*first_set);
|
|
159
169
|
|
|
160
170
|
// Faster for shorter buffers.
|
|
161
171
|
for (unsigned i = 0; i < buffer->len; i++)
|
|
162
|
-
if (
|
|
172
|
+
if (first_set->has (buffer->info[i].codepoint))
|
|
163
173
|
return true;
|
|
164
174
|
return false;
|
|
165
175
|
}
|
|
@@ -638,6 +648,23 @@ struct LookupFormat10
|
|
|
638
648
|
glyphs.add_range (firstGlyph, firstGlyph + glyphCount - 1);
|
|
639
649
|
}
|
|
640
650
|
|
|
651
|
+
template <typename set_t, typename filter_t>
|
|
652
|
+
void collect_glyphs_filtered (set_t &glyphs, const filter_t &filter) const
|
|
653
|
+
{
|
|
654
|
+
if (unlikely (!glyphCount)) return;
|
|
655
|
+
if (firstGlyph == DELETED_GLYPH) return;
|
|
656
|
+
const HBUINT8 *p = valueArrayZ.arrayZ;
|
|
657
|
+
for (unsigned i = 0; i < glyphCount; i++)
|
|
658
|
+
{
|
|
659
|
+
unsigned int v = 0;
|
|
660
|
+
unsigned int count = valueSize;
|
|
661
|
+
for (unsigned int j = 0; j < count; j++)
|
|
662
|
+
v = (v << 8) | *p++;
|
|
663
|
+
if (filter (v))
|
|
664
|
+
glyphs.add (firstGlyph + i);
|
|
665
|
+
}
|
|
666
|
+
}
|
|
667
|
+
|
|
641
668
|
bool sanitize (hb_sanitize_context_t *c) const
|
|
642
669
|
{
|
|
643
670
|
TRACE_SANITIZE (this);
|
|
@@ -708,6 +735,7 @@ struct Lookup
|
|
|
708
735
|
case 4: hb_barrier (); u.format4.collect_glyphs_filtered (glyphs, filter); return;
|
|
709
736
|
case 6: hb_barrier (); u.format6.collect_glyphs_filtered (glyphs, filter); return;
|
|
710
737
|
case 8: hb_barrier (); u.format8.collect_glyphs_filtered (glyphs, filter); return;
|
|
738
|
+
case 10: hb_barrier (); u.format10.collect_glyphs_filtered (glyphs, filter); return;
|
|
711
739
|
default:return;
|
|
712
740
|
}
|
|
713
741
|
}
|
|
@@ -837,11 +865,6 @@ struct StateTable
|
|
|
837
865
|
STATE_START_OF_LINE = 1,
|
|
838
866
|
};
|
|
839
867
|
|
|
840
|
-
template <typename set_t>
|
|
841
|
-
void collect_glyphs (set_t &glyphs, unsigned num_glyphs) const
|
|
842
|
-
{
|
|
843
|
-
(this+classTable).collect_glyphs (glyphs, num_glyphs);
|
|
844
|
-
}
|
|
845
868
|
template <typename set_t, typename table_t>
|
|
846
869
|
void collect_initial_glyphs (set_t &glyphs, unsigned num_glyphs, const table_t &table) const
|
|
847
870
|
{
|
|
@@ -120,12 +120,12 @@ struct KerxSubTableFormat0
|
|
|
120
120
|
}
|
|
121
121
|
|
|
122
122
|
template <typename set_t>
|
|
123
|
-
void collect_glyphs (set_t &
|
|
123
|
+
void collect_glyphs (set_t &first_set, set_t &second_set, unsigned num_glyphs) const
|
|
124
124
|
{
|
|
125
125
|
for (const KernPair& pair : pairs)
|
|
126
126
|
{
|
|
127
|
-
|
|
128
|
-
|
|
127
|
+
first_set.add (pair.left);
|
|
128
|
+
second_set.add (pair.right);
|
|
129
129
|
}
|
|
130
130
|
}
|
|
131
131
|
|
|
@@ -140,7 +140,7 @@ struct KerxSubTableFormat0
|
|
|
140
140
|
|
|
141
141
|
int get_kerning (hb_codepoint_t left, hb_codepoint_t right) const
|
|
142
142
|
{
|
|
143
|
-
if (!(*c->
|
|
143
|
+
if (!(*c->first_set)[left] || !(*c->second_set)[right]) return 0;
|
|
144
144
|
return table.get_kerning (left, right, c);
|
|
145
145
|
}
|
|
146
146
|
};
|
|
@@ -396,10 +396,10 @@ struct KerxSubTableFormat1
|
|
|
396
396
|
}
|
|
397
397
|
|
|
398
398
|
template <typename set_t>
|
|
399
|
-
void collect_glyphs (set_t &
|
|
399
|
+
void collect_glyphs (set_t &first_set, set_t &second_set, unsigned num_glyphs) const
|
|
400
400
|
{
|
|
401
|
-
machine.collect_initial_glyphs (
|
|
402
|
-
//machine.collect_glyphs (
|
|
401
|
+
machine.collect_initial_glyphs (first_set, num_glyphs, *this);
|
|
402
|
+
//machine.collect_glyphs (second_set, num_glyphs); // second_set is unused for machine kerning
|
|
403
403
|
}
|
|
404
404
|
|
|
405
405
|
protected:
|
|
@@ -451,10 +451,10 @@ struct KerxSubTableFormat2
|
|
|
451
451
|
}
|
|
452
452
|
|
|
453
453
|
template <typename set_t>
|
|
454
|
-
void collect_glyphs (set_t &
|
|
454
|
+
void collect_glyphs (set_t &first_set, set_t &second_set, unsigned num_glyphs) const
|
|
455
455
|
{
|
|
456
|
-
(this+leftClassTable).collect_glyphs (
|
|
457
|
-
(this+rightClassTable).collect_glyphs (
|
|
456
|
+
(this+leftClassTable).collect_glyphs (first_set, num_glyphs);
|
|
457
|
+
(this+rightClassTable).collect_glyphs (second_set, num_glyphs);
|
|
458
458
|
}
|
|
459
459
|
|
|
460
460
|
struct accelerator_t
|
|
@@ -468,7 +468,7 @@ struct KerxSubTableFormat2
|
|
|
468
468
|
|
|
469
469
|
int get_kerning (hb_codepoint_t left, hb_codepoint_t right) const
|
|
470
470
|
{
|
|
471
|
-
if (!(*c->
|
|
471
|
+
if (!(*c->first_set)[left] || !(*c->second_set)[right]) return 0;
|
|
472
472
|
return table.get_kerning (left, right, c);
|
|
473
473
|
}
|
|
474
474
|
};
|
|
@@ -629,6 +629,8 @@ struct KerxSubTableFormat4
|
|
|
629
629
|
}
|
|
630
630
|
o.attach_type() = OT::Layout::GPOS_impl::ATTACH_TYPE_MARK;
|
|
631
631
|
o.attach_chain() = (int) mark - (int) buffer->idx;
|
|
632
|
+
if (c->buffer_is_reversed)
|
|
633
|
+
o.attach_chain() = -o.attach_chain();
|
|
632
634
|
buffer->scratch_flags |= HB_BUFFER_SCRATCH_FLAG_HAS_GPOS_ATTACHMENT;
|
|
633
635
|
}
|
|
634
636
|
|
|
@@ -671,10 +673,10 @@ struct KerxSubTableFormat4
|
|
|
671
673
|
}
|
|
672
674
|
|
|
673
675
|
template <typename set_t>
|
|
674
|
-
void collect_glyphs (set_t &
|
|
676
|
+
void collect_glyphs (set_t &first_set, set_t &second_set, unsigned num_glyphs) const
|
|
675
677
|
{
|
|
676
|
-
machine.collect_initial_glyphs (
|
|
677
|
-
//machine.collect_glyphs (
|
|
678
|
+
machine.collect_initial_glyphs (first_set, num_glyphs, *this);
|
|
679
|
+
//machine.collect_glyphs (second_set, num_glyphs); // second_set is unused for machine kerning
|
|
678
680
|
}
|
|
679
681
|
|
|
680
682
|
protected:
|
|
@@ -762,19 +764,19 @@ struct KerxSubTableFormat6
|
|
|
762
764
|
}
|
|
763
765
|
|
|
764
766
|
template <typename set_t>
|
|
765
|
-
void collect_glyphs (set_t &
|
|
767
|
+
void collect_glyphs (set_t &first_set, set_t &second_set, unsigned num_glyphs) const
|
|
766
768
|
{
|
|
767
769
|
if (is_long ())
|
|
768
770
|
{
|
|
769
771
|
const auto &t = u.l;
|
|
770
|
-
(this+t.rowIndexTable).collect_glyphs (
|
|
771
|
-
(this+t.columnIndexTable).collect_glyphs (
|
|
772
|
+
(this+t.rowIndexTable).collect_glyphs (first_set, num_glyphs);
|
|
773
|
+
(this+t.columnIndexTable).collect_glyphs (second_set, num_glyphs);
|
|
772
774
|
}
|
|
773
775
|
else
|
|
774
776
|
{
|
|
775
777
|
const auto &t = u.s;
|
|
776
|
-
(this+t.rowIndexTable).collect_glyphs (
|
|
777
|
-
(this+t.columnIndexTable).collect_glyphs (
|
|
778
|
+
(this+t.rowIndexTable).collect_glyphs (first_set, num_glyphs);
|
|
779
|
+
(this+t.columnIndexTable).collect_glyphs (second_set, num_glyphs);
|
|
778
780
|
}
|
|
779
781
|
}
|
|
780
782
|
|
|
@@ -789,7 +791,7 @@ struct KerxSubTableFormat6
|
|
|
789
791
|
|
|
790
792
|
int get_kerning (hb_codepoint_t left, hb_codepoint_t right) const
|
|
791
793
|
{
|
|
792
|
-
if (!(*c->
|
|
794
|
+
if (!(*c->first_set)[left] || !(*c->second_set)[right]) return 0;
|
|
793
795
|
return table.get_kerning (left, right, c);
|
|
794
796
|
}
|
|
795
797
|
};
|
|
@@ -878,15 +880,15 @@ struct KerxSubTable
|
|
|
878
880
|
}
|
|
879
881
|
|
|
880
882
|
template <typename set_t>
|
|
881
|
-
void collect_glyphs (set_t &
|
|
883
|
+
void collect_glyphs (set_t &first_set, set_t &second_set, unsigned num_glyphs) const
|
|
882
884
|
{
|
|
883
885
|
unsigned int subtable_type = get_type ();
|
|
884
886
|
switch (subtable_type) {
|
|
885
|
-
case 0: u.format0.collect_glyphs (
|
|
886
|
-
case 1: u.format1.collect_glyphs (
|
|
887
|
-
case 2: u.format2.collect_glyphs (
|
|
888
|
-
case 4: u.format4.collect_glyphs (
|
|
889
|
-
case 6: u.format6.collect_glyphs (
|
|
887
|
+
case 0: u.format0.collect_glyphs (first_set, second_set, num_glyphs); return;
|
|
888
|
+
case 1: u.format1.collect_glyphs (first_set, second_set, num_glyphs); return;
|
|
889
|
+
case 2: u.format2.collect_glyphs (first_set, second_set, num_glyphs); return;
|
|
890
|
+
case 4: u.format4.collect_glyphs (first_set, second_set, num_glyphs); return;
|
|
891
|
+
case 6: u.format6.collect_glyphs (first_set, second_set, num_glyphs); return;
|
|
890
892
|
default: return;
|
|
891
893
|
}
|
|
892
894
|
}
|
|
@@ -923,8 +925,8 @@ struct KerxSubTable
|
|
|
923
925
|
|
|
924
926
|
struct kern_subtable_accelerator_data_t
|
|
925
927
|
{
|
|
926
|
-
hb_bit_set_t
|
|
927
|
-
hb_bit_set_t
|
|
928
|
+
hb_bit_set_t first_set;
|
|
929
|
+
hb_bit_set_t second_set;
|
|
928
930
|
mutable hb_aat_class_cache_t class_cache;
|
|
929
931
|
};
|
|
930
932
|
|
|
@@ -1017,9 +1019,8 @@ struct KerxTable
|
|
|
1017
1019
|
if (HB_DIRECTION_IS_HORIZONTAL (c->buffer->props.direction) != st->u.header.is_horizontal ())
|
|
1018
1020
|
goto skip;
|
|
1019
1021
|
|
|
1020
|
-
c->
|
|
1021
|
-
c->
|
|
1022
|
-
c->machine_glyph_set = &subtable_accel.left_set;
|
|
1022
|
+
c->first_set = &subtable_accel.first_set;
|
|
1023
|
+
c->second_set = &subtable_accel.second_set;
|
|
1023
1024
|
c->machine_class_cache = &subtable_accel.class_cache;
|
|
1024
1025
|
|
|
1025
1026
|
if (!c->buffer_intersects_machine ())
|
|
@@ -1051,8 +1052,8 @@ struct KerxTable
|
|
|
1051
1052
|
}
|
|
1052
1053
|
}
|
|
1053
1054
|
|
|
1054
|
-
if (reverse)
|
|
1055
|
-
|
|
1055
|
+
if (reverse != c->buffer_is_reversed)
|
|
1056
|
+
c->reverse_buffer ();
|
|
1056
1057
|
|
|
1057
1058
|
{
|
|
1058
1059
|
/* See comment in sanitize() for conditional here. */
|
|
@@ -1060,15 +1061,14 @@ struct KerxTable
|
|
|
1060
1061
|
ret |= st->dispatch (c);
|
|
1061
1062
|
}
|
|
1062
1063
|
|
|
1063
|
-
if (reverse)
|
|
1064
|
-
c->buffer->reverse ();
|
|
1065
|
-
|
|
1066
1064
|
(void) c->buffer->message (c->font, "end subtable %u", c->lookup_index);
|
|
1067
1065
|
|
|
1068
1066
|
skip:
|
|
1069
1067
|
st = &StructAfter<SubTable> (*st);
|
|
1070
1068
|
c->set_lookup_index (c->lookup_index + 1);
|
|
1071
1069
|
}
|
|
1070
|
+
if (c->buffer_is_reversed)
|
|
1071
|
+
c->reverse_buffer ();
|
|
1072
1072
|
|
|
1073
1073
|
return ret;
|
|
1074
1074
|
}
|
|
@@ -1133,7 +1133,7 @@ struct KerxTable
|
|
|
1133
1133
|
if (unlikely (accel_data.subtable_accels.in_error ()))
|
|
1134
1134
|
return accel_data;
|
|
1135
1135
|
|
|
1136
|
-
st->collect_glyphs (subtable_accel.
|
|
1136
|
+
st->collect_glyphs (subtable_accel.first_set, subtable_accel.second_set, num_glyphs);
|
|
1137
1137
|
subtable_accel.class_cache.clear ();
|
|
1138
1138
|
|
|
1139
1139
|
st = &StructAfter<SubTable> (*st);
|
|
@@ -1169,15 +1169,15 @@ struct Chain
|
|
|
1169
1169
|
hb_map ([subtable_flags] (const hb_aat_map_t::range_flags_t _) -> bool { return subtable_flags & (_.flags); })))
|
|
1170
1170
|
goto skip;
|
|
1171
1171
|
|
|
1172
|
-
c->subtable_flags = subtable_flags;
|
|
1173
|
-
c->machine_glyph_set = accel ? &accel->subtables[i].glyph_set : &Null(hb_bit_set_t);
|
|
1174
|
-
c->machine_class_cache = accel ? &accel->subtables[i].class_cache : nullptr;
|
|
1175
|
-
|
|
1176
1172
|
if (!(coverage & ChainSubtable<Types>::AllDirections) &&
|
|
1177
1173
|
HB_DIRECTION_IS_VERTICAL (c->buffer->props.direction) !=
|
|
1178
1174
|
bool (coverage & ChainSubtable<Types>::Vertical))
|
|
1179
1175
|
goto skip;
|
|
1180
1176
|
|
|
1177
|
+
c->subtable_flags = subtable_flags;
|
|
1178
|
+
c->first_set = accel ? &accel->subtables[i].glyph_set : &Null(hb_bit_set_t);
|
|
1179
|
+
c->machine_class_cache = accel ? &accel->subtables[i].class_cache : nullptr;
|
|
1180
|
+
|
|
1181
1181
|
if (!c->buffer_intersects_machine ())
|
|
1182
1182
|
{
|
|
1183
1183
|
(void) c->buffer->message (c->font, "skipped chainsubtable %u because no glyph matches", c->lookup_index);
|
|
@@ -1219,22 +1219,21 @@ struct Chain
|
|
|
1219
1219
|
if (!c->buffer->message (c->font, "start chainsubtable %u", c->lookup_index))
|
|
1220
1220
|
goto skip;
|
|
1221
1221
|
|
|
1222
|
-
if (reverse)
|
|
1223
|
-
|
|
1222
|
+
if (reverse != c->buffer_is_reversed)
|
|
1223
|
+
c->reverse_buffer ();
|
|
1224
1224
|
|
|
1225
1225
|
subtable->apply (c);
|
|
1226
1226
|
|
|
1227
|
-
if (reverse)
|
|
1228
|
-
c->buffer->reverse ();
|
|
1229
|
-
|
|
1230
1227
|
(void) c->buffer->message (c->font, "end chainsubtable %u", c->lookup_index);
|
|
1231
1228
|
|
|
1232
|
-
if (unlikely (!c->buffer->successful))
|
|
1229
|
+
if (unlikely (!c->buffer->successful)) break;
|
|
1233
1230
|
|
|
1234
1231
|
skip:
|
|
1235
1232
|
subtable = &StructAfter<ChainSubtable<Types>> (*subtable);
|
|
1236
1233
|
c->set_lookup_index (c->lookup_index + 1);
|
|
1237
1234
|
}
|
|
1235
|
+
if (c->buffer_is_reversed)
|
|
1236
|
+
c->reverse_buffer ();
|
|
1238
1237
|
}
|
|
1239
1238
|
|
|
1240
1239
|
unsigned int get_size () const { return length; }
|
|
@@ -525,7 +525,19 @@ hb_buffer_t::set_masks (hb_mask_t value,
|
|
|
525
525
|
hb_mask_t not_mask = ~mask;
|
|
526
526
|
value &= mask;
|
|
527
527
|
|
|
528
|
+
max_ops -= len;
|
|
529
|
+
if (unlikely (max_ops < 0))
|
|
530
|
+
successful = false;
|
|
531
|
+
|
|
528
532
|
unsigned int count = len;
|
|
533
|
+
|
|
534
|
+
if (cluster_start == 0 && cluster_end == (unsigned int) -1)
|
|
535
|
+
{
|
|
536
|
+
for (unsigned int i = 0; i < count; i++)
|
|
537
|
+
info[i].mask = (info[i].mask & not_mask) | value;
|
|
538
|
+
return;
|
|
539
|
+
}
|
|
540
|
+
|
|
529
541
|
for (unsigned int i = 0; i < count; i++)
|
|
530
542
|
if (cluster_start <= info[i].cluster && info[i].cluster < cluster_end)
|
|
531
543
|
info[i].mask = (info[i].mask & not_mask) | value;
|
|
@@ -541,6 +553,10 @@ hb_buffer_t::merge_clusters_impl (unsigned int start,
|
|
|
541
553
|
return;
|
|
542
554
|
}
|
|
543
555
|
|
|
556
|
+
max_ops -= end - start;
|
|
557
|
+
if (unlikely (max_ops < 0))
|
|
558
|
+
successful = false;
|
|
559
|
+
|
|
544
560
|
unsigned int cluster = info[start].cluster;
|
|
545
561
|
|
|
546
562
|
for (unsigned int i = start + 1; i < end; i++)
|
|
@@ -574,6 +590,10 @@ hb_buffer_t::merge_out_clusters (unsigned int start,
|
|
|
574
590
|
if (unlikely (end - start < 2))
|
|
575
591
|
return;
|
|
576
592
|
|
|
593
|
+
max_ops -= end - start;
|
|
594
|
+
if (unlikely (max_ops < 0))
|
|
595
|
+
successful = false;
|
|
596
|
+
|
|
577
597
|
unsigned int cluster = out_info[start].cluster;
|
|
578
598
|
|
|
579
599
|
for (unsigned int i = start + 1; i < end; i++)
|
|
@@ -403,20 +403,12 @@ struct hb_buffer_t
|
|
|
403
403
|
/* Adds glyph flags in mask to infos with clusters between start and end.
|
|
404
404
|
* The start index will be from out-buffer if from_out_buffer is true.
|
|
405
405
|
* If interior is true, then the cluster having the minimum value is skipped. */
|
|
406
|
-
void
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
406
|
+
void _set_glyph_flags_impl (hb_mask_t mask,
|
|
407
|
+
unsigned start,
|
|
408
|
+
unsigned end,
|
|
409
|
+
bool interior,
|
|
410
|
+
bool from_out_buffer)
|
|
411
411
|
{
|
|
412
|
-
if (unlikely (end != (unsigned) -1 && end - start > 255))
|
|
413
|
-
return;
|
|
414
|
-
|
|
415
|
-
end = hb_min (end, len);
|
|
416
|
-
|
|
417
|
-
if (interior && !from_out_buffer && end - start < 2)
|
|
418
|
-
return;
|
|
419
|
-
|
|
420
412
|
scratch_flags |= HB_BUFFER_SCRATCH_FLAG_HAS_GLYPH_FLAGS;
|
|
421
413
|
|
|
422
414
|
if (!from_out_buffer || !have_output)
|
|
@@ -455,6 +447,25 @@ struct hb_buffer_t
|
|
|
455
447
|
}
|
|
456
448
|
}
|
|
457
449
|
|
|
450
|
+
HB_ALWAYS_INLINE
|
|
451
|
+
void _set_glyph_flags (hb_mask_t mask,
|
|
452
|
+
unsigned start = 0,
|
|
453
|
+
unsigned end = (unsigned) -1,
|
|
454
|
+
bool interior = false,
|
|
455
|
+
bool from_out_buffer = false)
|
|
456
|
+
{
|
|
457
|
+
if (unlikely (end != (unsigned) -1 && end - start > 255))
|
|
458
|
+
return;
|
|
459
|
+
|
|
460
|
+
end = hb_min (end, len);
|
|
461
|
+
|
|
462
|
+
if (interior && !from_out_buffer && end - start < 2)
|
|
463
|
+
return;
|
|
464
|
+
|
|
465
|
+
_set_glyph_flags_impl (mask, start, end, interior, from_out_buffer);
|
|
466
|
+
}
|
|
467
|
+
|
|
468
|
+
|
|
458
469
|
void unsafe_to_break (unsigned int start = 0, unsigned int end = -1)
|
|
459
470
|
{
|
|
460
471
|
_set_glyph_flags (HB_GLYPH_FLAG_UNSAFE_TO_BREAK | HB_GLYPH_FLAG_UNSAFE_TO_CONCAT,
|
|
@@ -605,6 +616,10 @@ struct hb_buffer_t
|
|
|
605
616
|
if (unlikely (start == end))
|
|
606
617
|
return;
|
|
607
618
|
|
|
619
|
+
max_ops -= end - start;
|
|
620
|
+
if (unlikely (max_ops < 0))
|
|
621
|
+
successful = false;
|
|
622
|
+
|
|
608
623
|
unsigned cluster_first = infos[start].cluster;
|
|
609
624
|
unsigned cluster_last = infos[end - 1].cluster;
|
|
610
625
|
|
|
@@ -92,9 +92,10 @@ struct KernSubTableFormat3
|
|
|
92
92
|
{
|
|
93
93
|
set_t set;
|
|
94
94
|
if (likely (glyphCount))
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
95
|
+
{
|
|
96
|
+
left_set.add_range (0, num_glyphs - 1);
|
|
97
|
+
right_set.add_range (0, num_glyphs - 1);
|
|
98
|
+
}
|
|
98
99
|
}
|
|
99
100
|
|
|
100
101
|
protected:
|