|
16b232be
|
2022-02-18T18:05:58
|
|
[hb-style] Fix the sign of slant ratios
We want negative slant angles to yield
positive slant ratios. Fix that.
Test included.
|
|
e76061a7
|
2022-02-18T17:27:19
|
|
[hb-style] Fix synthetic slant values
When reporting the slant ratio of a font
that has synthetic slant set, we were
reporting twice the expected value.
Fix that. Test included.
|
|
56f11ec9
|
2022-02-18T14:08:43
|
|
[buffer] Add HB_BUFFER_FLAG_PRODUCE_UNSAFE_TO_CONCAT
Fixes https://github.com/harfbuzz/harfbuzz/issues/3454
|
|
f8e9e315
|
2022-02-17T14:34:46
|
|
Merge pull request #3437 from matthiasclasen/synthesize-missing-baselines
[BASE] Synthesize missing baselines
|
|
f81578fd
|
2022-02-13T19:15:36
|
|
[ot-layout] Synthesize missing baselines
Add a variation of hb_ot_layout_get_baseline that
synthesizes missing baselines, using heuristics in part
taken from the CSS Inline Layout Module, Level 3.
Includes some new tests for synthesized baselines.
The base2.ttf is a subset of Noto Sans Bengali that
includes just the Bengali Ka.
New API: hb_ot_layout_get_baseline_with_fallback
|
|
d2998faa
|
2022-02-16T14:37:09
|
|
Merge pull request #3410 from harfbuzz/boring-expansion
[Boring Expansion] >64k loca & hmtx tables
This does two things:
The num-glyphs reported by the face now is the maximum reported by the maxp and that deduced from the length of the loca table; I think this is the right thing to do anyway; According to OpenType such loca tables are invalid.
The interpretation hmtx tables that have excessive bytes at the end, again, invalid according to OpenType, has changed. Previously we were interpreting those excessive bytes as extra lsb values. Now we interpret them as extra advance values, the last of which is repeated for all missing glyphs. Again, these are tables that are invalid according to OpenType, and the advances are for glyph indices beyond maxp table's num-glyphs.
The combined effect is that the font can have shapes and advances for gid's beyond the maxp limit of 64k. In fact, maxp table becomes optional.
|
|
cfa8cd7f
|
2022-02-16T11:42:36
|
|
[autotools] Fix make distcheck
The test-draw.c can now optionally uses hb-ft, but automake file was not
passing FreeType cflags or libs to it.
|
|
a396543a
|
2022-02-15T18:47:55
|
|
Merge pull request #3411 from harfbuzz/draw
[draw] Finish and release draw API
|
|
67eb9acf
|
2022-02-15T17:17:49
|
|
[config] Add HB_NO_BORING_EXPANSION
|
|
1bf588e2
|
2022-02-15T16:57:23
|
|
[test/shape] Internal rename
Residual from e0d7060f80f8c4b9b8241c3a4d8faa33f48da86d
|
|
197ed8f5
|
2022-02-15T14:30:12
|
|
[test/api] Fix leaks
|
|
531c27d1
|
2022-02-15T14:20:54
|
|
Fix build
|
|
8b7ccc41
|
2022-02-15T14:15:12
|
|
[hmtx] Implement [boring-expansion] >64k expansion
This implements https://github.com/be-fonts/boring-expansion-spec/issues/7
|
|
379e526a
|
2022-02-14T15:02:31
|
|
[test] Add test for current hmtx logic
|
|
ed6d287d
|
2022-02-02T14:10:16
|
|
[ot-face] Load num-glyphs from `loca` table before `maxp`
Implements [boring-expansion] [maxp] Relax
https://github.com/be-fonts/boring-expansion-spec/issues/6
|
|
6b75a30a
|
2022-02-14T01:38:06
|
|
[draw/test] Swap a freetype test case with a simpler one
As CI failure, apparently the my local freetype and CI one have different
result so let's switch the case with a simpler one just to test quadratic command
is emitted correctly.
|
|
ae223764
|
2022-02-13T15:39:14
|
|
[test/draw] Typo
|
|
0429921c
|
2022-02-14T00:16:35
|
|
[draw/test] Add test for freetype callback
Let's have that part of the code also covered.
|
|
d4588204
|
2022-02-13T23:49:41
|
|
[draw/glyf] Emit empty contours
This makes it actually match freetype behaviour even though rasterizer
should filter such contours specially for stroking.
See https://github.com/harfbuzz/harfbuzz/pull/3411#discussion_r802283827 for the context.
|
|
0e357c50
|
2022-02-11T04:31:13
|
|
[draw] Test scaling subfont differently from parent
|
|
151f2058
|
2022-02-10T16:27:18
|
|
[draw] Emit move_to immediately, like other operators
|
|
aca80a4a
|
2022-02-09T22:44:38
|
|
[draw] Add test for applying synthetic slant
|
|
052fd2d8
|
2022-02-09T22:10:23
|
|
[draw] Add test for hb_draw_move_to() etc
|
|
f1a9a9cc
|
2022-02-03T14:10:40
|
|
[draw-state] Pass state down to callbacks
|
|
9f05362d
|
2022-02-03T13:08:32
|
|
[test-draw] Fix compiler warning
|
|
1740916e
|
2022-02-03T12:50:47
|
|
[draw] Remove check for no-op
This is unnecessary overhead. Up to rasterizers to handle this. Plus,
this throws off point-numbers in uses that rely on it.
Disabled one test that broke with this.
|
|
5610fa1d
|
2022-02-03T10:29:04
|
|
[test-draw] Re-enable two disabled tests
|
|
8b4f4290
|
2022-02-03T01:14:47
|
|
[draw] Virtualize hb_font_draw_glyph() into hb_font_get_glyph_shape()
To be implemented in hb-ft.
|
|
2bed4f46
|
2022-02-02T21:42:48
|
|
[draw] Fix draw signatures
|
|
08e10966
|
2022-02-02T19:01:42
|
|
[draw-fuzzer] Fix signatures
|
|
e0ac6c58
|
2022-02-02T18:57:12
|
|
Remove remaining traces of HB_EXPERIMENTAL_API
|
|
5207ce82
|
2022-02-02T18:54:10
|
|
[draw] Enable draw tests
Disable two failing ones.
|
|
157caf25
|
2022-02-02T18:46:34
|
|
[test-draw] Fix compiler warning
|
|
b263371b
|
2022-02-12T15:06:47
|
|
Merge pull request #3398 from harfbuzz/buffer-verify
Add HB_BUFFER_FLAG_VERIFY
|
|
b3f8288c
|
2022-02-12T14:52:42
|
|
[test/subset] Don't hash files without reason
Fixes https://github.com/harfbuzz/harfbuzz/issues/3118#issuecomment-894021518
|
|
af407dd2
|
2022-02-12T13:53:16
|
|
Add a fuzzer font
|
|
81754a5a
|
2022-02-09T12:00:47
|
|
[ot-math] Add hb_ot_math_get_glyph_kernings
closes #3396
|
|
1bc4bad7
|
2022-02-07T19:57:25
|
|
[ot-tag] Add HB_SCRIPT_MATH (Zmth) and map it to OT ‘math’ tag
The ISO 15924 code for mathematical notation is ‘Zmth’, but the
OpenType script is ‘math’.
|
|
7657bdd9
|
2022-02-04T19:16:54
|
|
Revert "Fix failing Mac test for previous commit"
This reverts commit 070e30e6daba74fe62ea486dc97cd01a79f90541.
|
|
44da4e2a
|
2022-02-04T19:16:47
|
|
Revert "One more fix"
This reverts commit cab943a015b1a3d4cd72f0c5dc4ff79e0aefa06f.
|
|
88798ee8
|
2022-02-04T18:59:50
|
|
[GPOS] Disable split-kerning
Fixes https://github.com/harfbuzz/harfbuzz/issues/3408
Reverts https://github.com/harfbuzz/harfbuzz/pull/3235
Fixes https://github.com/harfbuzz/harfbuzz/pull/3235#issuecomment-1029814978
|
|
4e2f409b
|
2022-01-31T12:20:32
|
|
[subset] Don't hold references to members of the active_glyph_stack.
These references may get invalidated after the vector for the stack is resized. Fixes: https://oss-fuzz.com/testcase-detail/5422577634377728
|
|
bc899650
|
2022-01-28T13:54:10
|
|
[subset] Fix for issue #3397.
cur_intersected_glyphs gets modified during recursion leading to incorrect filtering of sub tables in some cases. So don't use cur_intersected_glyphs. Instead just add an additional entry onto the parent_active_glyphs () stack.
Additionaly expands NotoNastaliqUrdu tests to include coverage of the issue from #3397.
|
|
61856359
|
2022-01-28T14:07:29
|
|
[fuzz] Disable verification for now.
|
|
6596e42d
|
2022-01-28T13:55:24
|
|
[fuzz] Verify shape results
|
|
909e34f6
|
2022-01-22T09:44:13
|
|
[unsafe-to-concat] Adjust Arabic-joining start boundary condition more
|
|
cab943a0
|
2022-01-20T14:32:30
|
|
One more fix
|
|
070e30e6
|
2022-01-20T14:31:31
|
|
Fix failing Mac test for previous commit
|
|
84aa1a83
|
2022-01-20T13:18:19
|
|
[PairPos] Split GPOS kerning to both sides (#3235)
|
|
1522015b
|
2022-01-19T23:13:50
|
|
[test] Add --single-par to more places in hb-aots-tester [ci skip]
|
|
7e160dc3
|
2022-01-19T09:26:53
|
|
[gpos] Fix unsafe-to-break of mark-attachment
This was undetected because most of the time marks were in same
cluster of their base already.
Fixes https://github.com/harfbuzz/harfbuzz/issues/3093
|
|
c8195dbc
|
2022-01-19T06:56:05
|
|
Merge pull request #3365 from harfbuzz/gdef-fix
GDEF fix
|
|
28264231
|
2020-07-08T14:39:31
|
|
Test for #2140
|
|
fc5354c5
|
2020-07-08T14:16:00
|
|
Add test for #2516
|
|
e2e30506
|
2022-01-16T07:00:53
|
|
Fix various typos
Found via `codespell -q 3 -S ./perf/texts -L actualy,ba,beng,fo,gir,inout,nd,ot,pres,ro,te,teh,timne`
|
|
87496bf6
|
2022-01-13T11:03:45
|
|
[subset] fix fuzzer timeout if visisted_paint goes into error.
|
|
067f90a8
|
2021-12-14T16:24:38
|
|
[subset] Fix for fuzzer timeout.
Fixes https://oss-fuzz.com/testcase-detail/5549945449480192
In prune_langsys: move LangSys visited check up before any work is done for a LangSys. In this particular case the compare() method is responsible for the majority of the time spent and wasn't being guarded with a visisted check.
|
|
c4573c2e
|
2021-12-14T14:49:15
|
|
[repacker] don't infinite loop if visited or roots is in error.
Fixes https://oss-fuzz.com/testcase-detail/5205038086094848
|
|
23159084
|
2021-12-10T15:00:16
|
|
[morx] Reverse graphemese, not whole buffer
Fixes https://github.com/harfbuzz/harfbuzz/issues/3314
Supersedes https://github.com/harfbuzz/harfbuzz/pull/3315
|
|
706014f6
|
2021-12-01T20:20:12
|
|
[subset] (Chain)ContextSubst glyph_closure fix
- When pos_glyphs is empty, use current full glyphs set as input for
subsequent recursive closure process
- Also increase max_lookup_visit_count to 35000 cause a real font file hit
previous limit 20000 and some lookups are dropped unexpectedly
|
|
51655a07
|
2021-12-05T19:27:57
|
|
[subset] COLR : only include glyphs after COLR closure
|
|
74b46b29
|
2021-12-02T19:50:16
|
|
[subset] MATH: don't serialize coverage table when iterator is empty
when iterator is empty, just set coverage offset to 0.
serialize() in coverage will at lease write out a 16-bit format header.
|
|
6c81cd95
|
2021-12-01T19:29:34
|
|
[tests] Add tests for platform shapers
Fixes https://github.com/harfbuzz/harfbuzz/issues/3115
|
|
9121ed0c
|
2021-11-30T13:45:22
|
|
[subset] Improve sharing of Ligature subtables.
Ligature subtables use virtual links to enforce an ordering constraint between the subtables and the coverage table. Unfortunately this has the sideeffect of prevent the subtables from being shared by another Ligature with a different coverage table since object equality compares all links real and virtual. This change makes virtual links stored separately from real links and updates the equality check to only check real links. If an object is de-duped any virtual links it has are merged into the object that replaces it.
|
|
95329081
|
2021-11-26T16:18:42
|
|
[subset] further optimize cmap4 packing.
|
|
59914382
|
2021-11-26T14:19:39
|
|
[subset] Don't pad glyphs when using long loca.
|
|
d9660fd5
|
2021-11-25T18:15:35
|
|
[subset] Make cmap4 packing more optimal.
The current CMAP4 implementation uses whatever the current codepoint ranges are and then encodes them as indivudal glyph ids or as a delta if possible. However, it's often possible to save bytes by splitting up existing ranges and encoding parts of them using deltas where the cost of splitting the range is less than encoding each glyph individual.
|
|
720ab088
|
2021-11-25T11:49:16
|
|
[util] Add --single-par
Use it in aots tests
Fixes https://github.com/harfbuzz/harfbuzz/issues/3129
Related https://github.com/harfbuzz/harfbuzz/issues/3298
|
|
903a6bae
|
2021-11-15T19:58:33
|
|
[subset] layout_features filtering fix
we should not use get_size (), which returns length * item_size
|
|
69d8f27c
|
2021-11-20T17:09:15
|
|
[meson] Require 0.55.0
We implicitly require it for building ragel subproject. This new version
requirement should satisfied in both Fedora 33 and Debian bullseye, and
not be too cutting edge for us.
|
|
84dc4e85
|
2021-11-08T09:36:31
|
|
[subset] avoid writing out duplicate extra glyph names in post table
Add check for possible duplicate with other name index
|
|
ca418cac
|
2021-11-17T16:42:08
|
|
[subset] keep features that have FeatureParams and the tag is "size"
|
|
e88fc41e
|
2021-11-18T16:53:36
|
|
[subset] inputSequence could be empty, change the sanity check
|
|
ace98cc6
|
2021-11-08T15:47:56
|
|
[subset] Only sanitize recursion depth in COLR.
|
|
f51b48c8
|
2021-11-02T16:16:52
|
|
[subset] Fix fuzzer found memory leak.
Happens because an insert into a map with an invalid key reports successful, but this causes the set being inserted to be lost.
|
|
540f19b6
|
2021-10-29T17:11:53
|
|
[subset] fix bug in (Chain)ContextFormat2
Only keep rulesets for glyphs class numbers that survived in coverage
|
|
e260eeb9
|
2021-11-02T15:31:32
|
|
[subset] Update test goldens for gdef.glyphset.
|
|
60e20364
|
2021-11-02T15:02:36
|
|
[subset] use glyphset_gsub instead of glyphset for GDEF
|
|
e39647c0
|
2021-11-02T15:25:05
|
|
[subset] update subset goldens to fix tests.
|
|
0a7563a5
|
2021-11-01T14:56:14
|
|
[subset] fuzzer fix: https://oss-fuzz.com/testcase?key=6254792024915968
Make sure input is valid, each gid has a corresponding offset value in
the map
|
|
364b6b39
|
2021-10-31T14:38:20
|
|
[subset] Don't assume FeatureList is sorted
Though the spec said FeatureRecords are sorted alphabetically by feature
tag, there're font files with unsorted FeatureList. And harfbuzz is not
able to subset these files correctly because we use binary search in
finding featureRecords when collecting lookups. Also
find_duplicate_features needs to be updated to handle this.
|
|
49c93924
|
2021-09-24T09:28:10
|
|
[subset] During LigatureSubstFormat1 subsetting always place Coverage last.
In Windows 7 on Chrome if the coverage table comes before any of the LigatureSet or Ligature subtables the font won't load. This changes the packing order to always place the Coverage table last. Virtual links are used to ensure the repacker maintains the desired ordering.
Coincidentally fontTools also does the same thing (https://github.com/fonttools/fonttools/blob/a3f988fbf621142d7d9b3e68a69725b88f358869/Lib/fontTools/ttLib/tables/otTables.py#L1137) to reduce overflows during packing.
|
|
8dc86d07
|
2021-11-01T19:57:11
|
|
Add a test font scale rounding behavior
This test verifies the fix for
https://github.com/harfbuzz/harfbuzz/issues/3274
|
|
85deddb1
|
2021-10-27T14:36:02
|
|
[subset] fuzzer fix: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=40406
|
|
42626369
|
2021-10-23T13:18:22
|
|
Merge pull request #3248 from googlefonts/connected_components
[repacker] Keep connected subgraphs in the same space.
|
|
8c583db9
|
2021-10-02T20:32:30
|
|
[subset] COLRv1: update subset() method for new strutc ClipList and VarIdxMap
Also fix issues in struct PaintTransform definition
|
|
8eaee2f8
|
2021-10-07T20:10:31
|
|
[USE] Only skip default ignorables within CCSes
|
|
79937d24
|
2021-10-05T12:53:21
|
|
[repacker] Add repacker test that requires space splitting.
|
|
bb57df7a
|
2021-10-05T15:40:30
|
|
[test] Add test for https://github.com/harfbuzz/harfbuzz/issues/2757#issuecomment-933531978
|
|
16245503
|
2021-10-05T15:35:17
|
|
[test] Add test for https://github.com/harfbuzz/harfbuzz/issues/3244
|
|
794b00db
|
2021-09-27T17:21:16
|
|
[subset] fuzzer fix: https://oss-fuzz.com/testcase-detail/6616166961905664
|
|
d5beb96e
|
2021-09-09T10:40:08
|
|
[repacker] add repacker isolation test on real font.
|
|
ca7b9dae
|
2021-09-20T14:42:51
|
|
[subset] subset MATH table
|
|
c2cc566c
|
2021-09-22T14:15:55
|
|
[subset] Fix subset_offset_array adding unused space to serializer.
ArrayOf.serialize_append allocates space for the new item, but ArrayOf.pop() does not recover the allocated space. So in the case where the revert path was entered the extra space added by serialize_append gets left in the serialization buffer. This moves the snapshot to before ArrayOf.serialize_append is called so that revert cleans up the buffer extend.
|
|
8c5c8174
|
2021-09-12T20:16:30
|
|
[subset] fix find_duplicate_features
We should check each feature against all other features with the same
tag for duplicates.
|
|
74f96d9d
|
2021-09-17T13:46:07
|
|
[repacker] fix heap use after free in repacker.
Don't store a reference to the link in overflow records as the link object may be freed if the sorted graph vector is resized.
|
|
d700646c
|
2021-09-16T11:23:09
|
|
[subset] In preperation for 3.0.0 release remove legacy subsetting api methods.
|
|
a0101a31
|
2021-09-14T18:38:50
|
|
[Unicode 14] Add tests
|
|
4d9b7de0
|
2021-09-11T00:43:43
|
|
[style] Prepare for release
|
|
201cbe3c
|
2021-09-09T11:09:46
|
|
[style] Rename HB_STYLE_TAG_SLANT to HB_STYLE_TAG_SLANT_ANGLE
|