platform/upstream/libHarfBuzzSharp.git
8 years agoBetter glyph offset support
Ebrahim Byagowi [Thu, 31 Mar 2016 12:26:16 +0000 (12:26 +0000)]
Better glyph offset support

8 years agoDon't fail when language is not set
Ebrahim Byagowi [Wed, 30 Mar 2016 20:21:40 +0000 (20:21 +0000)]
Don't fail when language is not set

8 years agoMake DirectWrite backend to work with different font sizes
Ebrahim Byagowi [Wed, 30 Mar 2016 20:15:09 +0000 (20:15 +0000)]
Make DirectWrite backend to work with different font sizes

Actually copyedited same logic from Uniscribe to make it just work

8 years ago1.2.4
Behdad Esfahbod [Thu, 17 Mar 2016 21:37:11 +0000 (14:37 -0700)]
1.2.4

8 years agoSynthesize GDEF glyph class for any glyph that does not have one in GDEF
Behdad Esfahbod [Thu, 17 Mar 2016 18:59:43 +0000 (11:59 -0700)]
Synthesize GDEF glyph class for any glyph that does not have one in GDEF

Previously we only synthesized GDEF glyph classes if the glyphClassDef
array in GDEF was null.  This worked well enough, and is indeed what
OpenType requires: "If the font does not include a GlyphClassDef table,
the client must define and maintain this information when using the
GSUB and GPOS tables."  That sentence does not quite make sense since
one needs Unicode properties as well, but is close enough.

However, looks like Arial Unicode as shipped on WinXP, does have GDEF
glyph class array, but defines no classes for Hebrew.  This results
in Hebrew marks not getting their widths zeroed.  So, with this change,
we synthesize glyph class for any glyph that is not specified in the
GDEF glyph class table.  Since, from our point of view, a glyph not
being listed in that table is a font bug, any unwanted consequence of
this change is a font bug :).

Note that we still don't get the same rendering as Uniscribe, since
Uniscribe seems to do fallback positioning as well, even though the
font does have a GPOS table (which does NOT cover Hebrew!).  We are
not going to try to match that though.

Test string for Arial Unicode:

U+05E9,U+05B8,U+05C1,U+05DC

Before: [gid1166=3+991|gid1142=0+737|gid5798=0+1434]
After: [gid1166=3+991|gid1142=0+0|gid5798=0+1434]
Uniscribe: [gid1166=3+991|gid1142=0@348,0+0|gid5798=0+1434]

Note that our new output matches what we were generating until July
2014, because the Hebrew shaper used to zero mark advances based on
Unicode, NOT GDEF.  That's 9e834e29e0b657f0555df1ab9cea79ff7abcf08d.

Reported by Greg Douglas.

8 years agoMerge pull request #232 from c0nk/wip-icu
Behdad Esfahbod [Sun, 13 Mar 2016 03:15:15 +0000 (19:15 -0800)]
Merge pull request #232 from c0nk/wip-icu

Add --with-icu=builtin option; fix compile error

8 years ago[build] Use tar-ustar instead of tar-pax
Behdad Esfahbod [Sat, 12 Mar 2016 02:50:02 +0000 (18:50 -0800)]
[build] Use tar-ustar instead of tar-pax

The default tar-v7 is not good enough for us (99 char filename
limit), so I have had bumped to tar-pax.  We got one complaint
that someone's tar couldn't handle tar-pax.  Set to tar-ustar
which is ~13 years earlier than tar-pax and is good enough for us.

8 years agoMinor comment
Behdad Esfahbod [Sat, 12 Mar 2016 02:45:19 +0000 (18:45 -0800)]
Minor comment

8 years agoRemove default clause in minor switch statements
Behdad Esfahbod [Tue, 8 Mar 2016 20:16:41 +0000 (12:16 -0800)]
Remove default clause in minor switch statements

Bending to clang warnings...
https://bugs.chromium.org/p/chromium/issues/detail?id=593057

8 years agoMerge pull request #231 from KonstantinRitt/post123buildfix
Behdad Esfahbod [Sat, 5 Mar 2016 01:20:35 +0000 (17:20 -0800)]
Merge pull request #231 from KonstantinRitt/post123buildfix

Fix build with HB_DISABLE_DEPRECATED

8 years agoFix requiredFeature stage handling logic
Behdad Esfahbod [Wed, 2 Mar 2016 21:32:42 +0000 (13:32 -0800)]
Fix requiredFeature stage handling logic

Originally the way Jonathan had written this was correct in
"continue"ing:

https://github.com/jfkthame/harfbuzz/commit/35e28c7a733eaffcd9f062b18d7db9fbb3d990fc#diff-ead86a33a5cc9ad7f6e6381031a0baddR199

When I rewrote his patch, I messed it up:

https://github.com/behdad/harfbuzz/commit/da132937989acb4d8ca9bd41c79f98750e7dda30#diff-ead86a33a5cc9ad7f6e6381031a0baddR209

the intended behavior was NOT to set found=TRUE and NOT to continue.
This was resulting in feature_index[table_index] being left unset.
Oops!

8 years agoAdd F2DOT14 type
Behdad Esfahbod [Tue, 1 Mar 2016 07:41:53 +0000 (16:41 +0900)]
Add F2DOT14 type

8 years agoUse FWORD and UFWORD when it makes sense
Behdad Esfahbod [Tue, 1 Mar 2016 07:41:26 +0000 (16:41 +0900)]
Use FWORD and UFWORD when it makes sense

I had forgotten about those types.

8 years agoFix missing ICU #include
Kal Conley [Thu, 25 Feb 2016 23:36:17 +0000 (00:36 +0100)]
Fix missing ICU #include

Fix compile error in hb-icu.cc when ICU configured with
U_NO_DEFAULT_INCLUDE_UTF_HEADERS=1

8 years agoAdd --with-icu=builtin configure option
Kal Conley [Thu, 25 Feb 2016 23:35:15 +0000 (00:35 +0100)]
Add --with-icu=builtin configure option

8 years agoFix build with HB_DISABLE_DEPRECATED
Konstantin Ritt [Thu, 25 Feb 2016 14:55:28 +0000 (18:55 +0400)]
Fix build with HB_DISABLE_DEPRECATED

When HB_DISABLE_DEPRECATED is defined, no code from hb-deprecated.h
should be used, even from within HB itself.

8 years agoSpeed up buffer variable allocation sanity check
Behdad Esfahbod [Thu, 25 Feb 2016 05:40:09 +0000 (14:40 +0900)]
Speed up buffer variable allocation sanity check

This makes defining HB_NDEBUG much less relevant, to the
point of irrelevance.  Sorry about all the fuss in previous
release!

8 years agoAdd HB_NDEBUG
Behdad Esfahbod [Thu, 25 Feb 2016 04:56:47 +0000 (13:56 +0900)]
Add HB_NDEBUG

API changes:
- If NDEBUG is defined, define HB_NDEBUG
- Disable costlier sanity checks if HB_NDEBUG is defined.

In 1.2.3 introduced some code to disable costly sanity checks if
NDEBUG is defined.  NDEBUG, however, disables all assert()s as
well.  With HB_NDEBUG, one can disable costlier checks but keep
assert()s.

I'll probably add a way to define HB_NDEBUG automatically in
release tarballs.  But for now, production systems that do NOT
define NDEBUG, are encouraged to define HB_NDEBUG for our build.

8 years ago1.2.3
Behdad Esfahbod [Thu, 25 Feb 2016 03:26:26 +0000 (12:26 +0900)]
1.2.3

8 years agoDisable internal buffer variable bookkeeping in NDEBUG builds
Behdad Esfahbod [Thu, 25 Feb 2016 03:23:02 +0000 (12:23 +0900)]
Disable internal buffer variable bookkeeping in NDEBUG builds

Saves some sweet time and binary size!

8 years agoAdd blacklist signature for Times New Roman (Bold) Italic on OS X
Behdad Esfahbod [Thu, 25 Feb 2016 02:31:03 +0000 (11:31 +0900)]
Add blacklist signature for Times New Roman (Bold) Italic on OS X

8 years ago[test] Pass closure to hb_font_set_glyph_func()
Behdad Esfahbod [Thu, 25 Feb 2016 02:20:05 +0000 (11:20 +0900)]
[test] Pass closure to hb_font_set_glyph_func()

Exercises fix in c335fd7986fe360ab8e1c032c9b988d0d30511eb

8 years agoBlacklist GDEF table of timesi.ttf and timesbi.ttf on Win 7
Behdad Esfahbod [Thu, 25 Feb 2016 02:11:15 +0000 (11:11 +0900)]
Blacklist GDEF table of timesi.ttf and timesbi.ttf on Win 7

See discussion:
https://lists.freedesktop.org/archives/harfbuzz/2016-February/005489.html

8 years agoIn trampoline implementation of get_glyph(), don't destroy user data twice!
Behdad Esfahbod [Thu, 25 Feb 2016 00:16:05 +0000 (09:16 +0900)]
In trampoline implementation of get_glyph(), don't destroy user data twice!

8 years ago[ot-font] Accelerate cmap format4 get_glyph
Behdad Esfahbod [Wed, 24 Feb 2016 11:27:13 +0000 (20:27 +0900)]
[ot-font] Accelerate cmap format4 get_glyph

8 years ago[ot-font] Towards accelerating get_glyph()
Behdad Esfahbod [Wed, 24 Feb 2016 10:52:36 +0000 (19:52 +0900)]
[ot-font] Towards accelerating get_glyph()

8 years ago[ot-font] Remove level of indirection in get_glyph_variant
Behdad Esfahbod [Wed, 24 Feb 2016 10:32:43 +0000 (19:32 +0900)]
[ot-font] Remove level of indirection in get_glyph_variant

8 years ago[TODO] Update
Behdad Esfahbod [Wed, 24 Feb 2016 10:10:06 +0000 (19:10 +0900)]
[TODO] Update

This file is rather obsolete.  Still, give it a refresh.

8 years agoAdd get_nominal_glyph() and get_variation_glyph() instead of get_glyph()
Behdad Esfahbod [Wed, 24 Feb 2016 10:05:23 +0000 (19:05 +0900)]
Add get_nominal_glyph() and get_variation_glyph() instead of get_glyph()

New API:
- hb_font_get_nominal_glyph_func_t
- hb_font_get_variation_glyph_func_t
- hb_font_funcs_set_nominal_glyph_func()
- hb_font_funcs_set_variation_glyph_func()
- hb_font_get_nominal_glyph()
- hb_font_get_variation_glyph()

Deprecated API:
- hb_font_get_glyph_func_t
- hb_font_funcs_set_glyph_func()

Clients that implement their own font-funcs are encouraged to replace
their get_glyph() implementation with a get_nominal_glyph() and
get_variation_glyph() pair.  The variation version can assume that
variation_selector argument is not zero.

8 years ago1.2.2
Behdad Esfahbod [Wed, 24 Feb 2016 08:32:22 +0000 (17:32 +0900)]
1.2.2

8 years agoFix recent test
Behdad Esfahbod [Wed, 24 Feb 2016 07:06:40 +0000 (16:06 +0900)]
Fix recent test

Not sure why the FT functions were returning advance 1024.  This
caused failure on drone.io.  Switch to hb-ot-font and disable
glyph names.

8 years ago[tests] Fix for multiple options in test runner scripts
Behdad Esfahbod [Wed, 24 Feb 2016 07:06:23 +0000 (16:06 +0900)]
[tests] Fix for multiple options in test runner scripts

8 years agoPartially revert 86c68c7a2c971efe8e35b1f1bd99401dc8b688d2
Behdad Esfahbod [Wed, 24 Feb 2016 06:53:40 +0000 (15:53 +0900)]
Partially revert 86c68c7a2c971efe8e35b1f1bd99401dc8b688d2

That commit moved the advance adjustment for mark positioning to
be applied immediately, instead of doing late before.  This breaks
if mark advances are zeroed late, like in Arabic.  Also, easier to
hit it in RTL scripts since a single mark with non-zero advance is
enough to hit the bug, whereas in LTR, at least two marks are needed.

This reopens https://github.com/behdad/harfbuzz/issues/211
The cursive+mark interaction is broken again.  To be fixed in a
different way.

8 years agoAdd test for mark positioning in rtl with non-zero mark advance
Behdad Esfahbod [Wed, 24 Feb 2016 06:52:37 +0000 (15:52 +0900)]
Add test for mark positioning in rtl with non-zero mark advance

Apparently I broke this 86c68c7a2c971efe8e35b1f1bd99401dc8b688d2.
Fix coming.

8 years ago[tests] Allow commenting out tests to be skipped
Behdad Esfahbod [Wed, 24 Feb 2016 06:50:33 +0000 (15:50 +0900)]
[tests] Allow commenting out tests to be skipped

8 years ago[Android.mk] Update with warning flags
Behdad Esfahbod [Wed, 24 Feb 2016 03:30:57 +0000 (12:30 +0900)]
[Android.mk] Update with warning flags

8 years ago1.2.1
Behdad Esfahbod [Tue, 23 Feb 2016 06:38:43 +0000 (15:38 +0900)]
1.2.1

8 years agoAdd note re only adding tests with Free Software fonts
Behdad Esfahbod [Tue, 23 Feb 2016 06:19:27 +0000 (15:19 +0900)]
Add note re only adding tests with Free Software fonts

8 years ago[test] Add README about how to add shaping tests
Behdad Esfahbod [Tue, 23 Feb 2016 04:47:16 +0000 (13:47 +0900)]
[test] Add README about how to add shaping tests

8 years agoRemove MANIFEST files
Behdad Esfahbod [Tue, 23 Feb 2016 04:45:38 +0000 (13:45 +0900)]
Remove MANIFEST files

They are unused currently.  We can add later if we hook them up
to anything useful.

8 years agoIn cluster-level=0, group ZWJ/ZWNJ with previous cluster
Behdad Esfahbod [Mon, 22 Feb 2016 09:22:44 +0000 (18:22 +0900)]
In cluster-level=0, group ZWJ/ZWNJ with previous cluster

This better emulates Unicode grapheme clusters.

Note that Uniscribe does NOT do this, but should be harmless with most clients,
and improve fallback with clients that use HarfBuzz cluster as unit of fallback.

Fixes https://github.com/behdad/harfbuzz/issues/217

8 years agoMinor
Behdad Esfahbod [Mon, 22 Feb 2016 07:00:59 +0000 (16:00 +0900)]
Minor

8 years ago[coretext] Move CTFont construction to face_data
Behdad Esfahbod [Mon, 22 Feb 2016 06:56:29 +0000 (15:56 +0900)]
[coretext] Move CTFont construction to face_data

8 years ago[coretext] Move code around
Behdad Esfahbod [Mon, 22 Feb 2016 06:50:12 +0000 (15:50 +0900)]
[coretext] Move code around

8 years ago[coretext] Move code around
Behdad Esfahbod [Mon, 22 Feb 2016 06:42:53 +0000 (15:42 +0900)]
[coretext] Move code around

8 years ago[build] git.mk fix for m4/gtk-doc.m4
Behdad Esfahbod [Mon, 22 Feb 2016 06:37:18 +0000 (15:37 +0900)]
[build] git.mk fix for m4/gtk-doc.m4

8 years ago[win32] Install git.mk
Behdad Esfahbod [Mon, 22 Feb 2016 06:32:52 +0000 (15:32 +0900)]
[win32] Install git.mk

8 years agoMake FixedVersion a template
Behdad Esfahbod [Mon, 22 Feb 2016 02:44:45 +0000 (11:44 +0900)]
Make FixedVersion a template

8 years ago[coretext] Fix leak!
Behdad Esfahbod [Mon, 22 Feb 2016 06:31:22 +0000 (15:31 +0900)]
[coretext] Fix leak!

8 years ago[coretext] Move code around
Behdad Esfahbod [Mon, 22 Feb 2016 06:28:37 +0000 (15:28 +0900)]
[coretext] Move code around

8 years ago[coretext] Ignore PPEM in font size selection
Behdad Esfahbod [Mon, 22 Feb 2016 06:12:27 +0000 (15:12 +0900)]
[coretext] Ignore PPEM in font size selection

8 years ago[coretext] Limit grapheme-cluster forming to cluster-level=0
Behdad Esfahbod [Mon, 22 Feb 2016 06:07:20 +0000 (15:07 +0900)]
[coretext] Limit grapheme-cluster forming to cluster-level=0

8 years ago[coretext] Fix shaping with varying font size
Behdad Esfahbod [Mon, 22 Feb 2016 05:59:39 +0000 (14:59 +0900)]
[coretext] Fix shaping with varying font size

Fixes https://github.com/libass/libass/issues/212

8 years ago1.2.0
Behdad Esfahbod [Fri, 19 Feb 2016 08:56:50 +0000 (15:56 +0700)]
1.2.0

8 years ago[fuzzing] Add test for recent fix
Behdad Esfahbod [Fri, 19 Feb 2016 08:13:07 +0000 (15:13 +0700)]
[fuzzing] Add test for recent fix

Test from https://github.com/behdad/harfbuzz/issues/223

I forgot that we do run hb-fuzzer on tests in shaping/tests/fuzzed.tests.

8 years ago[fuzzing] Make test runner actually work
Behdad Esfahbod [Fri, 19 Feb 2016 08:12:24 +0000 (15:12 +0700)]
[fuzzing] Make test runner actually work

8 years ago[fuzzing] Add TODO item
Behdad Esfahbod [Fri, 19 Feb 2016 08:12:16 +0000 (15:12 +0700)]
[fuzzing] Add TODO item

8 years agoAvoid buffer->move_to() in case of buffer error
Behdad Esfahbod [Fri, 19 Feb 2016 07:52:31 +0000 (14:52 +0700)]
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.

8 years ago[fuzzing] Make "make hb-fuzzer" build lib dependency
Behdad Esfahbod [Fri, 19 Feb 2016 07:43:39 +0000 (14:43 +0700)]
[fuzzing] Make "make hb-fuzzer" build lib dependency

Not going to do with util/, but is convenient here.

8 years agoRemove pointless overflow check in pointer math
Behdad Esfahbod [Thu, 18 Feb 2016 12:31:51 +0000 (19:31 +0700)]
Remove pointless overflow check in pointer math

Fixes https://github.com/behdad/harfbuzz/issues/227

8 years agoEmoji skin tone modifiers need to be treated as combining marks
Behdad Esfahbod [Thu, 18 Feb 2016 10:06:25 +0000 (17:06 +0700)]
Emoji skin tone modifiers need to be treated as combining marks

Fixes https://github.com/behdad/harfbuzz/issues/169

8 years ago[USE] Zero mark advances by GDEF early
Behdad Esfahbod [Tue, 16 Feb 2016 10:16:33 +0000 (17:16 +0700)]
[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.

8 years ago[GPOS] Fix interaction of mark attachments and cursive chaining
Behdad Esfahbod [Tue, 16 Feb 2016 09:07:20 +0000 (16:07 +0700)]
[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.

8 years agoMinor
Behdad Esfahbod [Fri, 12 Feb 2016 05:50:17 +0000 (12:50 +0700)]
Minor

8 years ago[GPOS] Minor
Behdad Esfahbod [Thu, 11 Feb 2016 09:57:52 +0000 (16:57 +0700)]
[GPOS] Minor

No effect.

8 years ago[GPOS] Merge fixing of offsets for cursive and mark attachments
Behdad Esfahbod [Thu, 11 Feb 2016 09:48:13 +0000 (16:48 +0700)]
[GPOS] Merge fixing of offsets for cursive and mark attachments

Part of fixing https://github.com/behdad/harfbuzz/issues/211

8 years ago[GPOS] Divide position_finish() into two phases, for advances and offsets
Behdad Esfahbod [Thu, 11 Feb 2016 09:34:28 +0000 (16:34 +0700)]
[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.

8 years ago[ot] Minor shuffling code around
Behdad Esfahbod [Thu, 11 Feb 2016 09:27:41 +0000 (16:27 +0700)]
[ot] Minor shuffling code around

8 years ago[GPOS] Add harmless recursion in fix_mark_attachment()
Behdad Esfahbod [Thu, 11 Feb 2016 08:28:55 +0000 (15:28 +0700)]
[GPOS] Add harmless recursion in fix_mark_attachment()

Will do nothing.  Just useful for merging two functions.

8 years ago[GPOS] Merge attach_chain() and cursive_chain()
Behdad Esfahbod [Thu, 11 Feb 2016 08:25:28 +0000 (15:25 +0700)]
[GPOS] Merge attach_chain() and cursive_chain()

Differentiate, using new attach_type().

8 years ago[GPOS] Minor shuffling
Behdad Esfahbod [Thu, 11 Feb 2016 07:53:11 +0000 (14:53 +0700)]
[GPOS] Minor shuffling

8 years ago[GPOS] Negate sign of attach_lookback(), and rename it to attach_chain()
Behdad Esfahbod [Thu, 11 Feb 2016 07:49:10 +0000 (14:49 +0700)]
[GPOS] Negate sign of attach_lookback(), and rename it to attach_chain()

No behavior change.  Preparing to unify how cursive and mark attachments
work.

8 years ago[tests] Add test for advance zeroing of an ASCII letter marked as mark in GDEF
Behdad Esfahbod [Thu, 11 Feb 2016 05:15:38 +0000 (12:15 +0700)]
[tests] Add test for advance zeroing of an ASCII letter marked as mark in GDEF

8 years agoRemove font-dependent ASCII-only perf hack
Behdad Esfahbod [Thu, 11 Feb 2016 05:14:27 +0000 (12:14 +0700)]
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.

8 years agoFix previous commit!
Behdad Esfahbod [Wed, 10 Feb 2016 11:43:43 +0000 (18:43 +0700)]
Fix previous commit!

8 years ago[tests] Fix fonts in cc4a78bf22c4a735b84c89b04be3bb531f42135e
Behdad Esfahbod [Wed, 10 Feb 2016 11:39:59 +0000 (18:39 +0700)]
[tests] Fix fonts in cc4a78bf22c4a735b84c89b04be3bb531f42135e

They had an invalid LookupFlag (32).

8 years agoRemove now-unused mark zeroing BY_UNICODE
Behdad Esfahbod [Wed, 10 Feb 2016 11:29:54 +0000 (18:29 +0700)]
Remove now-unused mark zeroing BY_UNICODE

8 years ago[tests] Add tests for Latin mark zeroing
Behdad Esfahbod [Wed, 10 Feb 2016 11:24:08 +0000 (18:24 +0700)]
[tests] Add tests for Latin mark zeroing

8 years ago[tests] Add tests for Thai mark zeroing
Behdad Esfahbod [Wed, 10 Feb 2016 11:20:02 +0000 (18:20 +0700)]
[tests] Add tests for Thai mark zeroing

8 years agoChange default mark advance zeroing behavior from Unicode to GDEF
Behdad Esfahbod [Wed, 10 Feb 2016 11:10:15 +0000 (18:10 +0700)]
Change default mark advance zeroing behavior from Unicode to GDEF

See thread at:
https://lists.freedesktop.org/archives/harfbuzz/2016-February/005462.html

8 years agoMinor
Behdad Esfahbod [Wed, 10 Feb 2016 07:11:43 +0000 (14:11 +0700)]
Minor

8 years agoMerge pull request #164 from fanc999/msvc.build
Behdad Esfahbod [Wed, 10 Feb 2016 04:11:36 +0000 (11:11 +0700)]
Merge pull request #164 from fanc999/msvc.build

Enable Build of HarfBuzz under Visual Studio using NMake Makefiles

8 years ago[README] Add ABI Tracker link
Behdad Esfahbod [Wed, 10 Feb 2016 04:10:08 +0000 (11:10 +0700)]
[README] Add ABI Tracker link

8 years agoMSVC builds: Add support to build DirectWrite shaping backend
Chun-wei Fan [Wed, 9 Dec 2015 06:57:15 +0000 (14:57 +0800)]
MSVC builds: Add support to build DirectWrite shaping backend

Add into the NMake Makefiles to build the DirectWrite shaping backend,
but as PR #134 mentions, this is considered to be in an experimental state,
so don't include this in the build by default for now.  This is most probably
going to replace the Uniscribe backend eventually, since DirectWrite is meant
to be Uniscribe's replacement, and is needed for Windows Store apps if a
system shaping API is to be used.

8 years agobuild: Build the DirectWrite sources if requested
Chun-wei Fan [Wed, 3 Feb 2016 10:31:23 +0000 (18:31 +0800)]
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).

8 years agobuild: Support Visual Studio builds using NMake
Chun-wei Fan [Tue, 3 Nov 2015 11:00:42 +0000 (19:00 +0800)]
build: Support Visual Studio builds using NMake

This adds a set of NMake Makefiles that can be used to build HarfBuzz, from
the standard basic build building the minimal HarfBuzz DLL (consisting
of OpenType, fallback and Uniscribe support only), to a full fledged build
consisting of GLib and FreeType support, as well as building the utilities,
the test programs in src/ and test/api, and HarfBuzz-ICU and
HarfBuzz-GObject, and up to building the introspection files.  This means a
flexible build mechanism is supported here, so anything that is supported
for a Windows build (code-wise), should all be supported by this build
system.

As in an earlier commit, the source listings are shared with the autotools
builds with the various Makefile.sources in src/, src/hb-ucdn and util/, and
this set of NMake Makefiles will transform these lists into the form they
want.

In the current form, all the test programs in test/api pass, and this has
been checked successfully with 'make -j8 distcheck'.

8 years agoMSVC builds: Add a pre-configured config.h(.win32) template
Chun-wei Fan [Tue, 3 Nov 2015 10:52:46 +0000 (18:52 +0800)]
MSVC builds: Add a pre-configured config.h(.win32) template

This adds a pre-configured config.h template that can be used for Visual
Studio builds, where autotools is not normally available.  This has the
configs that are suitable for Visual Studio builds, as well as all the
features used for Windows builds enabled (HAVE_OT, HAVE_FALLBACK and
HAVE_UNISCRIBE).

Note that the optional features are not enabled here, they are enabled by
/D's (or -D's) in the NMake Makefiles as requested.

8 years agobuild: Move source listings into separate Makefile snippets
Chun-wei Fan [Tue, 3 Nov 2015 08:56:27 +0000 (16:56 +0800)]
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.

8 years agoFix more hangs in case of buffer allocation errors
Behdad Esfahbod [Tue, 2 Feb 2016 08:39:19 +0000 (16:39 +0800)]
Fix more hangs in case of buffer allocation errors

Hopefully
fixes https://github.com/behdad/harfbuzz/issues/214

8 years agoMerge pull request #222 from n8willis/master
Behdad Esfahbod [Tue, 2 Feb 2016 04:33:32 +0000 (12:33 +0800)]
Merge pull request #222 from n8willis/master

Add usermanual chapter on cluster levels

8 years agoUpdate Makefile.am
n8willis [Thu, 28 Jan 2016 18:21:32 +0000 (12:21 -0600)]
Update Makefile.am

8 years agoAdded initial usermanual chapter on cluster levels.
n8willis [Thu, 28 Jan 2016 18:14:12 +0000 (12:14 -0600)]
Added initial usermanual chapter on cluster levels.

8 years agoMerge pull request #216 from mhosken/master
Behdad Esfahbod [Mon, 18 Jan 2016 11:47:18 +0000 (12:47 +0100)]
Merge pull request #216 from mhosken/master

Refactor graphite2 to make ovleraps into negative width spaces

8 years agoRefactor graphite2 to make ovleraps into negative width spaces
Martin Hosken [Sat, 16 Jan 2016 23:24:00 +0000 (17:24 -0600)]
Refactor graphite2 to make ovleraps into negative width spaces

8 years agoFix compiler warning
Behdad Esfahbod [Tue, 12 Jan 2016 16:17:21 +0000 (16:17 +0000)]
Fix compiler warning

Fixes https://github.com/behdad/harfbuzz/issues/212

8 years agoMinor
Behdad Esfahbod [Tue, 12 Jan 2016 13:05:01 +0000 (13:05 +0000)]
Minor

8 years ago[fuzzing] Fuzz input text
Behdad Esfahbod [Mon, 11 Jan 2016 18:31:04 +0000 (18:31 +0000)]
[fuzzing] Fuzz input text

Very rudimentary right now, but will get kcc's bot going.

From
https://github.com/behdad/harfbuzz/issues/139#issuecomment-163580783

8 years ago[OT] Get list of lookup subtables once and loop through them
Behdad Esfahbod [Mon, 11 Jan 2016 17:38:41 +0000 (17:38 +0000)]
[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!

8 years ago1.1.3
Behdad Esfahbod [Mon, 11 Jan 2016 13:16:35 +0000 (13:16 +0000)]
1.1.3

8 years ago[docs] Minor fixes.
Behdad Esfahbod [Mon, 11 Jan 2016 12:58:45 +0000 (12:58 +0000)]
[docs] Minor fixes.