|
238b943e
|
2016-02-22T15:31:22
|
|
[coretext] Fix leak!
|
|
e5611228
|
2016-02-22T15:28:37
|
|
[coretext] Move code around
|
|
04c64431
|
2016-02-22T15:12:27
|
|
[coretext] Ignore PPEM in font size selection
|
|
62c27111
|
2016-02-22T15:07:20
|
|
[coretext] Limit grapheme-cluster forming to cluster-level=0
|
|
061105ec
|
2016-02-22T14:59:39
|
|
[coretext] Fix shaping with varying font size
Fixes https://github.com/libass/libass/issues/212
|
|
b87e36f6
|
2016-02-19T14:52:31
|
|
Avoid buffer->move_to() in case of buffer error
Fixes https://github.com/behdad/harfbuzz/issues/223
Right now we cannot test this because it has to be tested using hb-fuzzer.
We should move all fuzzing tests from test/shaping/tests/fuzzed.tests to
test/fuzzing/ and have its own test runner. At that point, should add
test from this issue as well.
|
|
568a0c60
|
2016-02-18T19:31:51
|
|
Remove pointless overflow check in pointer math
Fixes https://github.com/behdad/harfbuzz/issues/227
|
|
aae28470
|
2016-02-18T17:06:25
|
|
Emoji skin tone modifiers need to be treated as combining marks
Fixes https://github.com/behdad/harfbuzz/issues/169
|
|
da41e48f
|
2016-02-16T17:16:33
|
|
[USE] Zero mark advances by GDEF early
This is what Microsoft's implementation does. Marks that need advance
need to add it back using 'dist' or other feature in GPOS. Update tests to
match.
|
|
86c68c7a
|
2016-02-16T16:07:20
|
|
[GPOS] Fix interaction of mark attachments and cursive chaining
Fixes https://github.com/behdad/harfbuzz/issues/211
What happens in that bug is that a mark is attached to base first,
then a second mark is cursive-chained to the first mark. This only
"works" because it's in the Indic shaper where mark advances are
not zeroed.
Before, we didn't allow cursive to run on marks at all. Fix that.
We also where updating mark major offsets at the end of GPOS, such
that changes in advance of base will not change the mark attachment
position. That was superior to the alternative (which is what Uniscribe
does BTW), but made it hard to apply cursive to the mark after it
was positioned. We could track major-direction offset changes and
apply that to cursive in the post process, but that's a much trickier
thing to do than the fix here, which is to immediately apply the
major-direction advance-width offsets... Ie.:
https://github.com/behdad/harfbuzz/issues/211#issuecomment-183194739
If this breaks any fonts, the font should be fixed to do mark attachment
after all the advances are set up first (kerning, etc).
Finally, this, still doesn't make us match Uniscribe, for I explained
in that bug. Looks like Uniscribe applies minor-direction cursive
adjustment immediate as well. We don't, and we like it our way, at
least for now. Eg. the sequence in the test case does this:
- The first subscript attaches with mark-to-base, moving in x only,
- The second subscript attaches with cursive attachment to first subscript
moving in x only,
- A final context rule moves the first subscript up by 104 units.
The way we do, the final shift-up, also shifts up the second subscript
mark because it's cursively-attached. Uniscribe doesn't. We get:
[ttaorya=0+1307|casubscriptorya=0@-242,104+-231|casubscriptnarroworya=0@20,104+507]
while Uniscribe gets:
[ttaorya=0+1307|casubscriptorya=0@-242,104+-211|casubscriptnarroworya=0+487]
note the different y-offset of the last glyph. In our view, after cursive,
things move together, period.
|
|
80c8855c
|
2016-02-12T12:50:17
|
|
Minor
|
|
6ab92022
|
2016-02-11T16:57:52
|
|
[GPOS] Minor
No effect.
|
|
cbc3a76c
|
2016-02-11T16:48:13
|
|
[GPOS] Merge fixing of offsets for cursive and mark attachments
Part of fixing https://github.com/behdad/harfbuzz/issues/211
|
|
7d8d58ac
|
2016-02-11T16:34:28
|
|
[GPOS] Divide position_finish() into two phases, for advances and offsets
Right now the position_finish_advances() is empty. To be used for
spacing attachments proposal later.
|
|
84742315
|
2016-02-11T16:27:41
|
|
[ot] Minor shuffling code around
|
|
b0b11614
|
2016-02-11T15:28:55
|
|
[GPOS] Add harmless recursion in fix_mark_attachment()
Will do nothing. Just useful for merging two functions.
|
|
686567ba
|
2016-02-11T15:25:28
|
|
[GPOS] Merge attach_chain() and cursive_chain()
Differentiate, using new attach_type().
|
|
806ad8dc
|
2016-02-11T14:53:11
|
|
[GPOS] Minor shuffling
|
|
0f6278d1
|
2016-02-11T14:49:10
|
|
[GPOS] Negate sign of attach_lookback(), and rename it to attach_chain()
No behavior change. Preparing to unify how cursive and mark attachments
work.
|
|
660c9d3f
|
2016-02-11T12:14:27
|
|
Remove font-dependent ASCII-only perf hack
Is confusing. I already hit it myself. Remove. We can optimize
ASCII based on Unicode properties. But should not do based on
assumptions on the font.
|
|
eaadcbbc
|
2016-02-10T18:29:54
|
|
Remove now-unused mark zeroing BY_UNICODE
|
|
b3582a8e
|
2016-02-10T18:10:15
|
|
Change default mark advance zeroing behavior from Unicode to GDEF
See thread at:
https://lists.freedesktop.org/archives/harfbuzz/2016-February/005462.html
|
|
c6792854
|
2016-02-03T18:31:23
|
|
build: Build the DirectWrite sources if requested
This adds to the autotools build system so that the (experimental)
DirectWrite support for HarfBuzz is built (and dist'ed).
|
|
35ded3af
|
2015-11-03T16:56:27
|
|
build: Move source listings into separate Makefile snippets
This moves all the source listings in src/Makefile.am,
src/hb-ucdn/Makefile.am and util/Makefile.am into separate Makefile
snippets, so that they may be shared between different Makefile-based
build systems, such as NMake for Visual Studio.
|
|
b894a85a
|
2016-02-02T16:39:19
|
|
Fix more hangs in case of buffer allocation errors
Hopefully
fixes https://github.com/behdad/harfbuzz/issues/214
|
|
9a6a33cc
|
2016-01-18T12:47:18
|
|
Merge pull request #216 from mhosken/master
Refactor graphite2 to make ovleraps into negative width spaces
|
|
146fe252
|
2016-01-16T17:24:00
|
|
Refactor graphite2 to make ovleraps into negative width spaces
|
|
d05b7833
|
2016-01-12T16:17:21
|
|
Fix compiler warning
Fixes https://github.com/behdad/harfbuzz/issues/212
|
|
d163dc18
|
2016-01-12T13:05:01
|
|
Minor
|
|
3e704521
|
2016-01-11T17:38:41
|
|
[OT] Get list of lookup subtables once and loop through them
This speeds up shaping the Amiri font by over 15%.
This was primarily needed for my work on OpenType GX, since
we will be collecting only sublookups that are "active" for
current font instance; but it's a nice boost in general as
well.
We might, in the future, collect subtables in the lookup_accel.
That would also allow us to do a per-subtbale set-digest, which
should speed things up some more, specially for ContextChainFormat3
lookups... Amiri, for example, contains one lookup with 53
subtables!
|
|
97624d92
|
2016-01-11T12:58:45
|
|
[docs] Minor fixes.
|
|
a39ff95f
|
2016-01-11T12:28:37
|
|
[coretext] Speed up CoreText font fallback
Fixes https://code.google.com/p/chromium/issues/detail?id=547912
|
|
25671466
|
2016-01-07T19:11:41
|
|
Add 9 reserved entries to hb_font_extents_t
Might add italic-angle, underline/strikethrough-position/thickness
in the future. Do this before new struct goes into a release.
|
|
e6d5e4c3
|
2016-01-06T12:29:50
|
|
[uniscribe] Fix negative advance
This happens with at least one test font I have.
|
|
53c47c85
|
2016-01-05T13:26:20
|
|
Increase sanitize edit count from 8 to 32
See previous commit.
|
|
da2fcfdc
|
2016-01-05T13:23:45
|
|
Don't count fixing-up FeatureParams offset as error
The font Garamond Premier Pro Caption (and possibly many other
Adobe fonts), have many FeatureParamsSize tables with the old
wrong offset. We handle fixing those up, but they were still
contributing to edit_count, and when I reduced HB_SANITIZE_MAX_EDIT
from 100 to 8 in 14c2de321826c36037adde859ccca3e2011325a9, these
fonts were now getting GPOS dropped and hence kerning disabled.
Fix, by not counting edits made towareds offset fix-up. I'll
also increase edit count again, in the next commit.
|
|
d0adc809
|
2016-01-02T13:25:18
|
|
Check magicNumber in head table during sanitize
|
|
9ab9f974
|
2016-01-01T20:38:21
|
|
[docs] More buffers documentation
|
|
bfdf684f
|
2015-12-30T22:20:14
|
|
Merge pull request #205 from khaledhosny/more-docs
More docs
|
|
a7f0e25d
|
2015-12-30T16:05:52
|
|
Remove unused HB_SHAPER_DATA_ENSURE_DECLARE lines.
The coretext_aat shaper delegates to the regular coretext_..._ensure() functions, so coretext_aat_..._ensure() functions defined by these macros are unused. The compiler warns about them, which in turn can confuse people to think that the coretext_aat_..._ensure() functions weren't called by accident.
|
|
9cffe329
|
2015-12-30T22:50:08
|
|
[docs] Typo
|
|
b758e5ea
|
2015-12-30T16:44:19
|
|
Merge pull request #203 from nico/patch-1
Remove unused `retry:` label.
|
|
fb192c26
|
2015-12-30T15:05:50
|
|
[docs] A bit more buffers documentation
|
|
8ab797c5
|
2015-12-29T17:42:16
|
|
[docs] A bit more buffers documentation
|
|
f18d2226
|
2015-12-29T15:21:20
|
|
[docs] Some documentation on buffers
Some of it (create, reference, destroy) are adapted from Cairo docs.
|
|
d7bf9d05
|
2015-12-29T02:23:24
|
|
[docs] Fix comment syntax
To lower the number of gtk-doc warnings.
|
|
8b1224f0
|
2015-12-28T21:31:28
|
|
Remove unused `retry:` label.
Fixes a -Wunused-label warning when building harfbuzz with clang -Wall.
|
|
fc38e603
|
2015-12-23T14:50:53
|
|
[layout] Collect coverage glyphs in PairPos
Apparently class=0 is used for ClassDef1. See:
https://github.com/adobe-type-tools/afdko/issues/90
|
|
8718dae8
|
2015-12-18T19:53:40
|
|
[python] Hook up sample debugger
|
|
0475ef2f
|
2015-12-18T18:17:07
|
|
[buffer] Add debugging, aka, message, API
Currently just announces lookup applications. Message-API *will* change.
hb-shape / hb-view are updated to print-out messages to stder if --debug
is specified.
|
|
9ea0aa43
|
2015-12-18T17:30:18
|
|
Don't deserialize positions if buffer has no positions
|
|
862b1644
|
2015-12-18T13:54:06
|
|
[use] Only set syllable-based topographical features if not Arabic-joining
|
|
45b7ec36
|
2015-12-18T13:47:16
|
|
[indic] Followup fix for Malayalam context matching
We regeressed Malayalam in 508cc3d3cfcfb0383df0fe795cc28db4e0fd5729
This brings down the failures to 198 (from 750).
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: 1048136 out of 1048334 tests passed. 198 failed (0.0188871%)
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%)
MYANMAR: 1123865 out of 1123883 tests passed. 18 failed (0.00160159%)
|
|
2813e304
|
2015-12-18T11:05:11
|
|
[indic] Update data tables to Unicode 8.0
Test stats remain unchanged, except for Malayalam, which we investigate:
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: 1047584 out of 1048334 tests passed. 750 failed (0.0715421%)
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%)
Myanmar, compared to Windows 10 mmrtext.ttf:
MYANMAR: 1123865 out of 1123883 tests passed. 18 failed (0.00160159%)
|
|
fc06cff4
|
2015-12-17T17:47:35
|
|
Remove HB_OT_SHAPE_ZERO_WIDTH_MARKS_DEFAULT
The DEFAULT naming wasn't helpful, so just remove it.
|
|
508cc3d3
|
2015-12-17T17:31:17
|
|
[indic] Allow context when matching for Malayalam new-spec
Test sequence:
U+0995,U+09CD,U+09B0
With Nirmala shipped on Windows 10, this failed to form the below form.
Works now.
Reported by Sairus.
|
|
eaf1e93e
|
2015-12-17T16:57:47
|
|
[uniscribe] Handle E_NOT_SUFFICIENT_BUFFER as well as E_OUTOFMEMORY
On Windows 10 we are seeing that other error message...
Test sequence: U+0995,U+-9CD,U+09B0
With Nirmala shipped on Windows 10, this failed to form the below form.
Works now.
Reported by Sairus.
|
|
100fbeaf
|
2015-12-17T15:23:09
|
|
Fix ligature component of a mark happening after a ligature within a ligature!
Say, if we are ligating "A B_C m D", then previously 'm' was being
attached to 'B' in the combined A_B_C_D ligature. Now we attach it
to 'C'. No test for this though :(.
|
|
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
|
|
86bcbd65
|
2015-12-17T11:04:33
|
|
[arabic] Use glyph advance width in apply_stch() instead of extents
That seems to be what Windows is doing, and makes more sense.
|
|
f11c11a1
|
2015-12-16T17:08:36
|
|
Fix Since: tags for new API
https://github.com/behdad/harfbuzz/commit/e1d4d0f1dbd8518b5672245c05d73f22a9ed03ea#commitcomment-15006653
|
|
a13b023d
|
2015-12-11T10:21:27
|
|
AIX fixes
- use '-w' instead of '\<...\>' for check-header-guards
grep manpage says these are the same
- put '-q' first in the grep options
- move VAR into hb-private.hh
- hb-font-private.hh - use [VAR] instead of [] for variable array
|
|
49e72634
|
2015-12-10T17:44:19
|
|
Limit use of AIX intrinsics to IBM's compiler
|
|
e1d4d0f1
|
2015-12-10T16:56:07
|
|
Merge branch 'font-extents'
Fixes https://github.com/behdad/harfbuzz/pull/165
|
|
31fa3892
|
2015-12-10T16:38:29
|
|
[ft] Use ftface->size->metrics for font extent info
|
|
3ad16048
|
2015-12-10T16:37:49
|
|
[ot-font] Respect OS/2 fsSelection USE_TYPO_METRICS bit
|
|
70b33eda
|
2015-12-10T15:54:42
|
|
Add atomic ops for AIX
Patch from Volker Simonis.
|
|
98460779
|
2015-12-07T21:38:47
|
|
Remove final pause from Arabic shaper
Back in the old days, we used to apply 'calt' and 'cswh' in Arabic shaper,
with a pause in between. Then we disabled the 'cswh' because Microsoft
disabled it, but forgot to remove the unnecessary pause. Do that now.
This has the benefit that it fixes shaping with monbaiti from Windows 10.
In that version of that font, the lookups from 'calt' are duplicated in
'rclt', and Mongolian was changed to go through Universal Shaping Engine.
We still use the Arabic shaper for Mongolian. With a pause after 'calt',
we were applying the duplicate lookups from 'calt' and 'rclt' twice. It
happened to be the case that these lookups were NOT idempotent. So we
were getting wrong shaping. See thread "Windows 10 monbaiti.ttf upgrade
(5.01 -> 5.51) caused loss of diacritical marks when shaped with harfbuz"
on the mailing list. This fixes that.
|
|
dee0fbf9
|
2015-12-07T10:44:08
|
|
Merge pull request #192 from behdad/jfkthame-stch
[issue 191] Make apply_stch() give a more precise fit
|
|
255df680
|
2015-12-07T10:34:47
|
|
Fix undefined behavior in cmp function
Fixes https://bugs.freedesktop.org/show_bug.cgi?id=93274
|
|
fcf9e61b
|
2015-12-07T10:30:43
|
|
Fix sorting order of ot_languages array
Looks like the original sort was wrongly done.
Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=93275
|
|
70952ddb
|
2015-12-07T10:28:46
|
|
Add test to make sure ot-languages array is sorted
Currently fails. Part of
https://bugs.freedesktop.org/show_bug.cgi?id=93275
|
|
8c37556f
|
2015-12-07T09:34:58
|
|
Merge pull request #134 from ebraminio/dwrite
Add working but less prefect DirectWrite backend
|
|
a7ffe353
|
2015-12-05T17:47:37
|
|
Make apply_stch() give a more precise fit
This aims to make Syriac Abbr Mark sizing more accurate when repeating segments are used, by adding an extra repeat and tightening up the spacing slightly rather than leaving a shortfall corresponding to a partial repeat-width.
|
|
8e5f9026
|
2015-11-30T16:53:21
|
|
src/test.cc: wrong field printed
Fixes https://github.com/behdad/harfbuzz/issues/188
Fixes https://bugs.freedesktop.org/show_bug.cgi?id=93182
|
|
6f2e6de1
|
2015-10-26T16:23:22
|
|
Get font ascender and descender metrics from OS/2 table.
|
|
097c998a
|
2015-10-26T16:22:38
|
|
Parse the OS/2 table.
|
|
35d18585
|
2015-11-26T19:30:37
|
|
Fix a few docs blocks
|
|
0e38c918
|
2015-11-26T19:26:26
|
|
[introspection] Make scanner happy with HB_EXTERN
|
|
ea512f71
|
2015-11-26T19:22:22
|
|
Use C-style casts instead of compare to 0, to convert hb_bool_t to bool
|
|
67a36a72
|
2015-11-26T18:48:42
|
|
Fix vertical GPOS
This was brorken earlier, though, it's really hard to notice it.
Unlike the glyph_h_origin(), an unset glyph_v_origin() does NOT
mean that the vertical origin is at 0,0.
Related to https://github.com/behdad/harfbuzz/issues/187
|
|
c41c145c
|
2015-11-26T18:43:15
|
|
Make nil glyph_h_origin() function return true
Fixes https://github.com/behdad/harfbuzz/issues/187
Funcs implementations that have a non-zero horizontal origin must
implement the glyph_h_origin() callback, nothing new here.
Other implementations (all I know of!) can simply not set
glyph_h_origin() now. I did that for hb-ot and hb-ft in
44f82750807475aa5b16099ccccd917d488df703, though that broke the
fallback shaper because the default was returning false...
|
|
766963ad
|
2015-11-24T15:38:43
|
|
Merge pull request #114 from ThePhD/vc++-fixes
Fix all VC++ warnings and errors
|
|
b344af80
|
2015-11-24T15:30:27
|
|
Merge pull request #177 from fanc999/exporting
Enable use of compiler directives to export symbols
|
|
1979f6fe
|
2015-11-23T10:03:56
|
|
Fix y_scale problems in hb-gr
|
|
835bbdc7
|
2015-11-19T18:34:12
|
|
Public headers: Decorate public symbols with HB_EXTERN
This prepares the headers for exporting symbols using visibility
attributes or __declspec(dllexport), so that we do not need to maintain
symbols listing files, as this is what was and is done in GLib and GTK+.
|
|
f798b8e2
|
2015-11-21T16:57:26
|
|
c-style cast
|
|
a6991813
|
2015-11-20T13:28:42
|
|
Merge pull request #176 from behdad/missing-braces
Add braces for subobject initializer in _hb_font_funcs_nil
|
|
1dc32ea4
|
2015-11-20T13:24:19
|
|
Whitespace
|
|
f94c0ecb
|
2015-11-20T13:21:29
|
|
Define HB_MARK_AS_FLAG_T as a macro instead of using templates
The generic template operator overloading was causing more problems than it
solved. Eg:
https://github.com/behdad/harfbuzz/pull/163
https://github.com/behdad/harfbuzz/issues/175
So, just use macros.
Fixes https://github.com/behdad/harfbuzz/issues/175
Fixes https://github.com/behdad/harfbuzz/pull/178
|
|
f19c6db1
|
2015-11-20T08:43:49
|
|
Add braces for subobject initializer in _hb_font_funcs_nil
To avoid triggering -Wmissing-braces; see https://bugzilla.mozilla.org/show_bug.cgi?id=1226175#c8
|
|
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
|
|
13188cba
|
2015-11-19T11:59:03
|
|
Revert "Fix hang in OOM situations"
This reverts commit f0599db761d7fc2d585d86e757a797f75ebc7499.
Commit abadc1717d997b69f987fdf1be9e12156d2d13d6 provides a better
fix for this.
|
|
18e1c6b6
|
2015-11-19T11:50:58
|
|
Revert "Make sure we make progress in OOM situations"
This reverts commit 68b507a3c3c62c28c38e13fee733702bb703b6ca.
Commit abadc1717d997b69f987fdf1be9e12156d2d13d6 provides a better
fix for this.
|
|
63fe05c8
|
2015-11-18T23:52:34
|
|
Fix make distcheck
|
|
37b40cd8
|
2015-11-18T23:04:45
|
|
Fix another move_to assertion failure
If buf->idx is at end, don't set end past it...
Fixes https://github.com/behdad/harfbuzz/issues/173
|
|
abadc171
|
2015-11-18T17:52:08
|
|
Try to better handle OOM situations
Fixes assert fail in https://github.com/behdad/harfbuzz/issues/161
with libharfbuzz-fuzzing.
|
|
ff16ef33
|
2015-11-18T16:27:32
|
|
Enable building a bounded version of the library for fuzzing
test/fuzzing/hb-fuzzer links against libharfbuzz-fuzzing.so now.
|
|
e0082ae6
|
2015-11-17T18:42:13
|
|
Move things around
|