|
2f02fc79
|
2015-12-17T15:21:14
|
|
Improve ligature-component handling
We use three bits for lig_id these days, so we finally got a report of
two separate ligatures with the same lig_id happening adjacent to each
other, and then the component-handling code was breaking things.
Protect against that by ignoring same-lig-id but lig-comp=0 glyphs after
a new ligature.
Fixes https://github.com/behdad/harfbuzz/issues/198
|
|
2ab0de9f
|
2015-12-17T11:59:15
|
|
[use] Fix halant detection
Before, we were just checking the use_category(). This detects as
halant a ligature that had the halant as first glyph (as seen in
NotoSansBalinese.) Change that to use the is_ligated() glyph prop
bit. The font is forming this ligature in ccmp, which is before
the rphf / pref tests. So we need to make sure the "ligated" bit
survives those tests. Since those only check the "substituted" bit,
we now only clear that bit for them and "ligated" survives.
Fixes https://github.com/behdad/harfbuzz/issues/180
|
|
1c6a057d
|
2015-11-26T18:48:30
|
|
Add tests for previous commit
|
|
9cc1ed4f
|
2015-11-19T12:39:09
|
|
Do not allow recursiving to same position and same lookup
This is just to make it harder to be extremely slow. There definitely
are ways still, just harder. Oh well... how do we tame this problem
without solving halting problem?!
Fixes https://github.com/behdad/harfbuzz/issues/174
|
|
85062e3b
|
2015-11-18T23:09:13
|
|
Add tests for previous two commits
To fully test what these are supposed to test, they should be run
against libharfbuzz-fuzzing.la instead of libharfbuzz.la, but for
now just record the files.
|
|
5a7eb5d4
|
2015-11-06T00:01:24
|
|
[fuzzing] Add test case for OOM
From https://github.com/behdad/harfbuzz/issues/161
|
|
04fd8517
|
2015-11-04T17:38:22
|
|
Add tests for hyphen fallback
U+2011 is <noBreak> equivaent of U+2010, so we should do the fallback
for it. Currently fails.
|
|
49ef6309
|
2015-11-04T17:27:07
|
|
Adjust the width of various spaces if font does not cover them
See discussion here:
https://github.com/behdad/harfbuzz/commit/81ef4f407d9c7bd98cf62cef951dc538b13442eb
There's no way to disable this fallback, but I don't think it would
be needed. Let's hope for the best!
Fixes https://github.com/behdad/harfbuzz/issues/153
|
|
7793aad9
|
2015-11-04T14:48:46
|
|
Normalize various spaces to space if font doesn't support
This resurrects the space fallback feature, after I disabled
the compatibility decomposition. Now I can release HarfBuzz
again without breaking Pango!
It also remembers which space character it was, such that later
on we can approximate the width of this particular space
character. That part is not implemented yet.
We normalize all GC=Zs chars except for U+1680 OGHA SPACE MARK,
which is better left alone.
|
|
2f0dfd43
|
2015-11-03T12:28:34
|
|
Fix test expectation
|
|
df698f32
|
2015-11-03T12:15:12
|
|
[ot-font] Fix hmtx table length checking, *again*
Exactly the same problem that I fixed in
63ef0b41dc48d6112d1918c1b1de9de8ea90adb5
I rewrote the table checking yesterday in
67f8821fb25d9bd55719f5e29a582ae1af4b02b3
and introduced the exact same issue again. :(
Good thing we have ongoing fuzzing going now. Was discovered
immediately by libFuzzer. Thanks kcc!
https://github.com/behdad/harfbuzz/issues/139#issuecomment-153449473
Fixes https://github.com/behdad/harfbuzz/issues/156
|
|
67f8821f
|
2015-11-02T15:37:29
|
|
[ot] Make bad-hmtx handling match FreeType
Also route fuzzing-related tests through hb-ot-font, to reduce dependency
on FreeType behavior for badly-broken fonts. Fixes failing test with
FreeType master.
|
|
338ffec9
|
2015-10-15T12:55:57
|
|
Add tests for a couple of fixed issues found by libFuzzer
From:
https://github.com/behdad/harfbuzz/issues/139#issuecomment-147616887
https://github.com/behdad/harfbuzz/issues/139#issuecomment-148289957
|
|
55db94be
|
2015-10-13T00:33:59
|
|
Add test for previous commit
|
|
98c6fccc
|
2015-10-11T21:41:04
|
|
Add test for ee9b0b6cb5fdb08671ab064f26c299135f828260
|
|
34379b49
|
2015-10-09T12:34:02
|
|
Add test for previous fix
|
|
b6d7d161
|
2015-09-01T16:12:44
|
|
[tests] Add Hebrew test for normalization under cluster-level=1
Currently fails.
https://bugzilla.gnome.org/show_bug.cgi?id=541608
|
|
7368da67
|
2015-08-25T20:28:39
|
|
[test] Add test for cursive-positioning with mixed directions
Fails now. Fix coming. See thread "Issue with cursive attachment"
started by Khaled. Test fonts were made by modifying test font
from Khaled to add more anchors.
|
|
f3792342
|
2015-08-08T18:02:18
|
|
[tests] Add test for fallback positioning with cluster_level > 0
For https://github.com/behdad/harfbuzz/pull/123
Currently fails. Fix coming.
|
|
c81d957a
|
2015-07-23T12:50:48
|
|
[test] Add tests for improved 'vert' feature
|
|
895fb31c
|
2015-07-23T12:14:03
|
|
[test] Support additional options to hb-shape in micro-test suite
|
|
58206917
|
2015-07-22T18:44:59
|
|
Add test case for deleting default ignorables with positioning
|
|
e6f80fa1
|
2014-12-10T12:05:24
|
|
[indic] Allow ZWJ/ZWNJ before SM
In Oriya, a ZWJ/ZWNJ might be added before candrabindu to encourage
or stop ligation of the candrabindu. This is clearly specified in
the Unicode section on Oriya. Allow it there. Note that Uniscribe
doesn't allow this.
Micro tests added using Noto Sans Oriya draft.
No changes in numbers. Currently at:
BENGALI: 353725 out of 354188 tests passed. 463 failed (0.130722%)
DEVANAGARI: 707307 out of 707394 tests passed. 87 failed (0.0122987%)
GUJARATI: 366349 out of 366457 tests passed. 108 failed (0.0294714%)
GURMUKHI: 60732 out of 60747 tests passed. 15 failed (0.0246926%)
KANNADA: 951190 out of 951913 tests passed. 723 failed (0.0759523%)
KHMER: 299070 out of 299124 tests passed. 54 failed (0.0180527%)
MALAYALAM: 1048147 out of 1048334 tests passed. 187 failed (0.0178378%)
ORIYA: 42320 out of 42329 tests passed. 9 failed (0.021262%)
SINHALA: 271662 out of 271847 tests passed. 185 failed (0.068053%)
TAMIL: 1091753 out of 1091754 tests passed. 1 failed (9.15957e-05%)
TELUGU: 970555 out of 970573 tests passed. 18 failed (0.00185457%)
|
|
a1f27ac3
|
2014-10-02T16:54:33
|
|
Update test expectation for previous commit
|
|
715f27f8
|
2014-10-01T16:53:00
|
|
[test] Fixup test
|
|
d5e61470
|
2014-08-05T14:19:01
|
|
[arabic] Fix fallback shaping regression
Was broken in 615d00ea252739da57edbd980ff27e573.
Fixes https://github.com/behdad/harfbuzz/pull/48
Micro-test added.
|
|
ac53443f
|
2014-07-31T18:51:37
|
|
[hangul] Don't apply 'calt'
See comments.
Micro-test added.
|
|
9e834e29
|
2014-07-26T20:34:01
|
|
[hebrew] Zero mark advance by GDEF late
Seems to be what Uniscribe does.
At this point I think it's work checking our default...
Fixes Bug 76767 - Zeroing of advance of 2nd component of multiple
substitution with SBL Hebrew
https://bugs.freedesktop.org/show_bug.cgi?id=76767
Micro-test added.
|
|
6f2d9ba5
|
2014-07-26T19:17:44
|
|
Add old-Myanmar shaper
Looks like Unsicribe responds to the 'mymr' tag by zeroing marks
GDEF_LATE instead of generic-shaper UNICODE_LATE. Implement that.
Fixes
Bug 81775 - Incorrect Rendering with harfbuzz-ng myanmar unicode
https://bugs.freedesktop.org/show_bug.cgi?id=81775
Micro-test added based on Padauk.
|
|
fc0daafa
|
2014-07-23T16:48:51
|
|
[indic] Handle old-spec Malayalam reordering with final Halant
See comment.
Micro-tests added.
|
|
ed29b15f
|
2014-07-18T14:37:49
|
|
[test] Add more Mongolian variation selector tests
From
https://code.google.com/p/chromium/issues/detail?id=393896
|
|
615d00ea
|
2014-07-17T13:36:09
|
|
[arabic] Apply init/medi/isol/fini/... in separate stages
Follows the order of the Arabic/Syriac specs. Also don't stop
between rlig and calt in non-Arabic scripts.
Micro-tests for Arabic and Mongolian added for the latter.
|
|
164c13d7
|
2014-07-17T14:16:38
|
|
Another try to fix Mongolian free variation selectors
This reverts bf029281 and fixes it properly. That commit
was not enough as it was only inheriting the shaping_action
for prev_action, but not curr_action.
Micro-test added.
https://code.google.com/p/chromium/issues/detail?id=393896
|
|
3b861421
|
2014-07-16T13:22:05
|
|
Fix Mongolian Variation Selectors for fonts without GDEF
Originally we fixed those in 79d1007a501fd63c0ba4d51038c513e6b8b94740.
However, fonts like MongolianWhite don't have GDEF, but have IgnoreMarks
in their LigatureSubstitute init/etc features. We were synthesizing a
GDEF class of mark for Mongolian Variation Selectors and as such the
ligature lookups where not matching. Uniscribe doesn't do that.
I tried with more sophisticated fixes, like, if there is no GDEF and
a lookup-flag mismatch happens, instead of rejecting a match, try
skipping that glyph. That surely produces some interesting behavior,
but since we don't want to support fonts missing GDEF more than we have
to, I went for this simpler fix which is to always mark
default-ignorables as base when synthesizing GDEF.
Micro-test added.
Fixes rest of https://bugs.freedesktop.org/show_bug.cgi?id=65258
|
|
1d634cbb
|
2014-06-06T17:55:02
|
|
Fix base-position when 'pref' is NOT formed
If pre-base reordering Ra is NOT formed (or formed and then
broken up), we should consider that Ra as base. This is
observable when there's a left matra or dotreph that positions
before base.
Now, it might be that we shouldn't do this if the Ra happend
to form a below form. We can't quite deduce that right now...
Micro test added. Also at:
https://code.google.com/a/google.com/p/noto-alpha/issues/detail?id=186#c29
|
|
0ff74b09
|
2014-06-05T21:55:23
|
|
Add missing test file. Oops
|
|
832a6f99
|
2014-06-04T16:57:42
|
|
[indic] Don't reorder reph/pref if ligature was expanded
Normally if you want to, say, conditionally prevent a 'pref', you
would use blocking contextual matching. Some designers instead
form the 'pref' form, then undo it in context. To detect that
we now also remember glyphs that went through MultipleSubst.
In the only place that this is used, Uniscribe seems to only care
about the "last" transformation between Ligature and Multiple
substitions. Ie. if you ligate, expand, and ligate again, it
moves the pref, but if you ligate and expand it doesn't. That's
why we clear the MULTIPLIED bit when setting LIGATED.
Micro-test added. Test: U+0D2F,0D4D,0D30 with font from:
[1]
https://code.google.com/a/google.com/p/noto-alpha/issues/detail?id=186#c29
|
|
c46f4069
|
2013-10-15T16:24:21
|
|
[tests] Remove Myanmar micro-font and test
|
|
841e20d0
|
2013-10-14T18:47:51
|
|
Add test suite for shaping results
The new test suite runs tests included under
hb/test/shaping/tests/*.tests, which themselves reference
font files stored by sha1sum under hb/test/shaping/fonts/sha1sum.
The fonts are produced using a subsetter to only include glyphs
needed to run the test.
Four initial tests are added for (Chain)Context matching,
of which three currently fail.
|