platform/upstream/libHarfBuzzSharp.git
8 years agoFix previous commit
Khaled Hosny [Sat, 26 Dec 2015 02:45:51 +0000 (06:45 +0400)]
Fix previous commit

8 years ago[travis] Build docs only on tagged revisions
Khaled Hosny [Sat, 26 Dec 2015 02:35:08 +0000 (06:35 +0400)]
[travis] Build docs only on tagged revisions

Lets see if it works…

8 years ago[travis] Remove secure var
Behdad Esfahbod [Fri, 25 Dec 2015 17:41:41 +0000 (18:41 +0100)]
[travis] Remove secure var

I've set up a secure var for behdad/harfbuzz through Travis web interface, no need
to set the var here.

8 years agoMerge pull request #199 from behdad/travis-docs
Behdad Esfahbod [Fri, 25 Dec 2015 17:21:08 +0000 (18:21 +0100)]
Merge pull request #199 from behdad/travis-docs

Deploy docs to gh-pages branch from Travis builds

8 years agoFix flaky test
Behdad Esfahbod [Fri, 25 Dec 2015 17:18:23 +0000 (18:18 +0100)]
Fix flaky test

This test font had a upem of 769, which results in rounding-related errors with
the FreeType font funcs.  Change the upem to 1024 to fix that.

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

8 years ago[tests] Add --reference, for re-recording tests
Behdad Esfahbod [Fri, 25 Dec 2015 17:18:02 +0000 (18:18 +0100)]
[tests] Add --reference, for re-recording tests

8 years agoMove more docs from FreeDesktop page
Khaled Hosny [Tue, 22 Dec 2015 21:29:48 +0000 (01:29 +0400)]
Move more docs from FreeDesktop page

8 years agoRename user manual files
Khaled Hosny [Tue, 22 Dec 2015 20:33:41 +0000 (00:33 +0400)]
Rename user manual files

Use chapter ids instead of numbers, so that we can reorder them,
introduce new ones etc. without the numbers becoming out of date.

8 years agoIntro from freedesktop.org/wiki/Software/HarfBuzz/
Khaled Hosny [Tue, 22 Dec 2015 20:26:20 +0000 (00:26 +0400)]
Intro from freedesktop.org/wiki/Software/HarfBuzz/

8 years agoDeploy docs to gh-pages branch from Travis builds
Khaled Hosny [Mon, 14 Dec 2015 19:33:51 +0000 (23:33 +0400)]
Deploy docs to gh-pages branch from Travis builds

Build docs in Travis and push them to the gh-pages branch, which makes
them available at http://behdad.github.io/harfbuzz/

8 years ago[layout] Collect coverage glyphs in PairPos
Behdad Esfahbod [Wed, 23 Dec 2015 13:50:53 +0000 (14:50 +0100)]
[layout] Collect coverage glyphs in PairPos

Apparently class=0 is used for ClassDef1.  See:
https://github.com/adobe-type-tools/afdko/issues/90

8 years ago[python] Hook up sample debugger
Behdad Esfahbod [Fri, 18 Dec 2015 19:53:40 +0000 (19:53 +0000)]
[python] Hook up sample debugger

8 years ago[buffer] Add debugging, aka, message, API
Behdad Esfahbod [Fri, 18 Dec 2015 18:17:07 +0000 (18:17 +0000)]
[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.

8 years agoDon't deserialize positions if buffer has no positions
Behdad Esfahbod [Fri, 18 Dec 2015 17:30:18 +0000 (17:30 +0000)]
Don't deserialize positions if buffer has no positions

8 years ago[use] Only set syllable-based topographical features if not Arabic-joining
Behdad Esfahbod [Fri, 18 Dec 2015 13:54:06 +0000 (13:54 +0000)]
[use] Only set syllable-based topographical features if not Arabic-joining

8 years ago[indic] Followup fix for Malayalam context matching
Behdad Esfahbod [Fri, 18 Dec 2015 13:47:16 +0000 (13:47 +0000)]
[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%)

8 years ago[indic] Update data tables to Unicode 8.0
Behdad Esfahbod [Fri, 18 Dec 2015 11:05:11 +0000 (11:05 +0000)]
[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%)

8 years agoRemove HB_OT_SHAPE_ZERO_WIDTH_MARKS_DEFAULT
Behdad Esfahbod [Thu, 17 Dec 2015 17:47:35 +0000 (17:47 +0000)]
Remove HB_OT_SHAPE_ZERO_WIDTH_MARKS_DEFAULT

The DEFAULT naming wasn't helpful, so just remove it.

8 years ago[indic] Allow context when matching for Malayalam new-spec
Behdad Esfahbod [Thu, 17 Dec 2015 17:31:17 +0000 (17:31 +0000)]
[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.

8 years ago[uniscribe] Handle E_NOT_SUFFICIENT_BUFFER as well as E_OUTOFMEMORY
Behdad Esfahbod [Thu, 17 Dec 2015 16:57:47 +0000 (16:57 +0000)]
[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.

8 years ago[util] Use O_BINARY instead of _O_BINARY
Behdad Esfahbod [Thu, 17 Dec 2015 16:28:38 +0000 (16:28 +0000)]
[util] Use O_BINARY instead of _O_BINARY

The latter doesn't seem to be available in Cygwin.  I'm surprised it
compiled before...

8 years agoFix ligature component of a mark happening after a ligature within a ligature!
Behdad Esfahbod [Thu, 17 Dec 2015 15:23:09 +0000 (15:23 +0000)]
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 :(.

8 years agoImprove ligature-component handling
Behdad Esfahbod [Thu, 17 Dec 2015 15:21:14 +0000 (15:21 +0000)]
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

8 years ago[use] Fix halant detection
Behdad Esfahbod [Thu, 17 Dec 2015 11:59:15 +0000 (11:59 +0000)]
[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

8 years ago[arabic] Use glyph advance width in apply_stch() instead of extents
Behdad Esfahbod [Thu, 17 Dec 2015 11:04:33 +0000 (11:04 +0000)]
[arabic] Use glyph advance width in apply_stch() instead of extents

That seems to be what Windows is doing, and makes more sense.

8 years agoFix Since: tags for new API
Behdad Esfahbod [Wed, 16 Dec 2015 16:08:36 +0000 (17:08 +0100)]
Fix Since: tags for new API

https://github.com/behdad/harfbuzz/commit/e1d4d0f1dbd8518b5672245c05d73f22a9ed03ea#commitcomment-15006653

8 years agoMerge pull request #196 from srl295/aix
Behdad Esfahbod [Mon, 14 Dec 2015 13:19:03 +0000 (14:19 +0100)]
Merge pull request #196 from srl295/aix

AIX fixes

8 years agoAIX fixes
Steven R. Loomis [Fri, 11 Dec 2015 18:21:27 +0000 (10:21 -0800)]
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

8 years agoLimit use of AIX intrinsics to IBM's compiler
Behdad Esfahbod [Thu, 10 Dec 2015 16:44:19 +0000 (17:44 +0100)]
Limit use of AIX intrinsics to IBM's compiler

8 years agoMerge branch 'font-extents'
Behdad Esfahbod [Thu, 10 Dec 2015 15:56:07 +0000 (16:56 +0100)]
Merge branch 'font-extents'

Fixes https://github.com/behdad/harfbuzz/pull/165

8 years ago[util] Port hb-view to use font metrics from HarfBuzz instead of cairo
Behdad Esfahbod [Thu, 10 Dec 2015 15:55:16 +0000 (16:55 +0100)]
[util] Port hb-view to use font metrics from HarfBuzz instead of cairo

8 years ago[ft] Use ftface->size->metrics for font extent info
Behdad Esfahbod [Thu, 10 Dec 2015 15:38:29 +0000 (16:38 +0100)]
[ft] Use ftface->size->metrics for font extent info

8 years ago[ot-font] Respect OS/2 fsSelection USE_TYPO_METRICS bit
Behdad Esfahbod [Thu, 10 Dec 2015 15:37:49 +0000 (16:37 +0100)]
[ot-font] Respect OS/2 fsSelection USE_TYPO_METRICS bit

8 years agoAdd atomic ops for AIX
Behdad Esfahbod [Thu, 10 Dec 2015 14:54:42 +0000 (15:54 +0100)]
Add atomic ops for AIX

Patch from Volker Simonis.

8 years agoRemove final pause from Arabic shaper
Behdad Esfahbod [Mon, 7 Dec 2015 20:38:47 +0000 (21:38 +0100)]
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.

8 years agoMerge pull request #192 from behdad/jfkthame-stch
Behdad Esfahbod [Mon, 7 Dec 2015 09:44:08 +0000 (10:44 +0100)]
Merge pull request #192 from behdad/jfkthame-stch

[issue 191] Make apply_stch() give a more precise fit

8 years agoFix undefined behavior in cmp function
Behdad Esfahbod [Mon, 7 Dec 2015 09:34:47 +0000 (10:34 +0100)]
Fix undefined behavior in cmp function

Fixes https://bugs.freedesktop.org/show_bug.cgi?id=93274

8 years agoFix sorting order of ot_languages array
Behdad Esfahbod [Mon, 7 Dec 2015 09:30:43 +0000 (10:30 +0100)]
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

8 years agoAdd test to make sure ot-languages array is sorted
Behdad Esfahbod [Mon, 7 Dec 2015 09:28:46 +0000 (10:28 +0100)]
Add test to make sure ot-languages array is sorted

Currently fails.  Part of
https://bugs.freedesktop.org/show_bug.cgi?id=93275

8 years agoMerge pull request #134 from ebraminio/dwrite
Behdad Esfahbod [Mon, 7 Dec 2015 08:34:58 +0000 (09:34 +0100)]
Merge pull request #134 from ebraminio/dwrite

Add working but less prefect DirectWrite backend

8 years agoMake apply_stch() give a more precise fit
jfkthame [Sat, 5 Dec 2015 17:47:37 +0000 (17:47 +0000)]
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.

8 years agosrc/test.cc: wrong field printed
Behdad Esfahbod [Tue, 1 Dec 2015 00:53:21 +0000 (16:53 -0800)]
src/test.cc: wrong field printed

Fixes https://github.com/behdad/harfbuzz/issues/188
Fixes https://bugs.freedesktop.org/show_bug.cgi?id=93182

8 years agoGet font ascender and descender metrics from OS/2 table.
Simon Cozens [Mon, 26 Oct 2015 07:23:22 +0000 (16:23 +0900)]
Get font ascender and descender metrics from OS/2 table.

8 years agoParse the OS/2 table.
Simon Cozens [Mon, 26 Oct 2015 07:22:38 +0000 (16:22 +0900)]
Parse the OS/2 table.

8 years ago1.1.2
Behdad Esfahbod [Fri, 27 Nov 2015 00:35:43 +0000 (19:35 -0500)]
1.1.2

8 years agoFix a few docs blocks
Behdad Esfahbod [Fri, 27 Nov 2015 00:30:37 +0000 (19:30 -0500)]
Fix a few docs blocks

8 years ago[introspection] Make scanner happy with HB_EXTERN
Behdad Esfahbod [Fri, 27 Nov 2015 00:26:26 +0000 (19:26 -0500)]
[introspection] Make scanner happy with HB_EXTERN

8 years agoUse C-style casts instead of compare to 0, to convert hb_bool_t to bool
Behdad Esfahbod [Fri, 27 Nov 2015 00:22:22 +0000 (19:22 -0500)]
Use C-style casts instead of compare to 0, to convert hb_bool_t to bool

8 years agoFix vertical GPOS
Behdad Esfahbod [Thu, 26 Nov 2015 23:48:42 +0000 (18:48 -0500)]
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

8 years agoAdd tests for previous commit
Behdad Esfahbod [Thu, 26 Nov 2015 23:48:30 +0000 (18:48 -0500)]
Add tests for previous commit

8 years agoMake nil glyph_h_origin() function return true
Behdad Esfahbod [Thu, 26 Nov 2015 23:43:15 +0000 (18:43 -0500)]
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...

8 years agoMerge pull request #114 from ThePhD/vc++-fixes
Behdad Esfahbod [Tue, 24 Nov 2015 21:38:43 +0000 (15:38 -0600)]
Merge pull request #114 from ThePhD/vc++-fixes

Fix all VC++ warnings and errors

8 years agoMerge pull request #177 from fanc999/exporting
Behdad Esfahbod [Tue, 24 Nov 2015 21:30:27 +0000 (15:30 -0600)]
Merge pull request #177 from fanc999/exporting

Enable use of compiler directives to export symbols

8 years agoMerge pull request #181 from mhosken/master
Behdad Esfahbod [Tue, 24 Nov 2015 21:29:44 +0000 (15:29 -0600)]
Merge pull request #181 from mhosken/master

Fix y_scale problems in hb-gr

8 years ago1.1.1
Behdad Esfahbod [Tue, 24 Nov 2015 19:18:20 +0000 (13:18 -0600)]
1.1.1

8 years agoMerge pull request #185 from khaledhosny/travis-osx
Khaled Hosny [Tue, 24 Nov 2015 14:37:35 +0000 (18:37 +0400)]
Merge pull request #185 from khaledhosny/travis-osx

[travis] Enable Mac OS X support

8 years ago[travis] Enable Mac OS X support
Khaled Hosny [Tue, 24 Nov 2015 08:46:35 +0000 (12:46 +0400)]
[travis] Enable Mac OS X support

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

8 years ago[travis] Remove coverity scan
Behdad Esfahbod [Mon, 23 Nov 2015 22:46:14 +0000 (16:46 -0600)]
[travis] Remove coverity scan

I never could get it to work, and it's a proprietary platform.

8 years agoFix y_scale problems in hb-gr
Martin Hosken [Mon, 23 Nov 2015 03:03:56 +0000 (10:03 +0700)]
Fix y_scale problems in hb-gr

8 years agoPublic headers: Decorate public symbols with HB_EXTERN
Chun-wei Fan [Thu, 19 Nov 2015 10:34:12 +0000 (18:34 +0800)]
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+.

8 years agoc-style cast
ThePhD [Sat, 21 Nov 2015 21:57:26 +0000 (16:57 -0500)]
c-style cast

8 years agoMerge pull request #176 from behdad/missing-braces
Behdad Esfahbod [Fri, 20 Nov 2015 21:28:42 +0000 (13:28 -0800)]
Merge pull request #176 from behdad/missing-braces

Add braces for subobject initializer in _hb_font_funcs_nil

8 years agoWhitespace
Behdad Esfahbod [Fri, 20 Nov 2015 21:24:19 +0000 (13:24 -0800)]
Whitespace

8 years agoDefine HB_MARK_AS_FLAG_T as a macro instead of using templates
Behdad Esfahbod [Fri, 20 Nov 2015 21:21:29 +0000 (13:21 -0800)]
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

8 years agoAdd braces for subobject initializer in _hb_font_funcs_nil
jfkthame [Fri, 20 Nov 2015 08:43:49 +0000 (08:43 +0000)]
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

8 years agoDo not allow recursiving to same position and same lookup
Behdad Esfahbod [Thu, 19 Nov 2015 20:39:09 +0000 (12:39 -0800)]
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

8 years ago[fuzzing] Run fuzzing tests using hb-fuzzer as well
Behdad Esfahbod [Thu, 19 Nov 2015 20:03:04 +0000 (12:03 -0800)]
[fuzzing] Run fuzzing tests using hb-fuzzer as well

8 years agoRevert "Fix hang in OOM situations"
Behdad Esfahbod [Thu, 19 Nov 2015 19:59:03 +0000 (11:59 -0800)]
Revert "Fix hang in OOM situations"

This reverts commit f0599db761d7fc2d585d86e757a797f75ebc7499.

Commit abadc1717d997b69f987fdf1be9e12156d2d13d6 provides a better
fix for this.

8 years agoRevert "Make sure we make progress in OOM situations"
Behdad Esfahbod [Thu, 19 Nov 2015 19:50:58 +0000 (11:50 -0800)]
Revert "Make sure we make progress in OOM situations"

This reverts commit 68b507a3c3c62c28c38e13fee733702bb703b6ca.

Commit abadc1717d997b69f987fdf1be9e12156d2d13d6 provides a better
fix for this.

8 years ago1.1.0
Behdad Esfahbod [Thu, 19 Nov 2015 07:40:47 +0000 (23:40 -0800)]
1.1.0

8 years agoFix make distcheck
Behdad Esfahbod [Thu, 19 Nov 2015 07:52:34 +0000 (23:52 -0800)]
Fix make distcheck

8 years ago[travis] Only coverity-scan the coverity_scan branch
Behdad Esfahbod [Thu, 19 Nov 2015 07:23:35 +0000 (23:23 -0800)]
[travis] Only coverity-scan the coverity_scan branch

This essentially disables coverity-scan right now, until we find
a pattern to continuously submit branches there.

For background reasoning, see:
Fixes https://github.com/behdad/harfbuzz/issues/171

8 years agoAdd tests for previous two commits
Behdad Esfahbod [Thu, 19 Nov 2015 07:09:13 +0000 (23:09 -0800)]
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.

8 years agoFix another move_to assertion failure
Behdad Esfahbod [Thu, 19 Nov 2015 07:04:45 +0000 (23:04 -0800)]
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

8 years agoTry to better handle OOM situations
Behdad Esfahbod [Thu, 19 Nov 2015 01:52:08 +0000 (17:52 -0800)]
Try to better handle OOM situations

Fixes assert fail in https://github.com/behdad/harfbuzz/issues/161
with libharfbuzz-fuzzing.

8 years agoTry to fix gnome-continuous build fail
Behdad Esfahbod [Thu, 19 Nov 2015 00:37:59 +0000 (16:37 -0800)]
Try to fix gnome-continuous build fail

8 years agoEnable building a bounded version of the library for fuzzing
Behdad Esfahbod [Thu, 19 Nov 2015 00:27:32 +0000 (16:27 -0800)]
Enable building a bounded version of the library for fuzzing

test/fuzzing/hb-fuzzer links against libharfbuzz-fuzzing.so now.

8 years agoMove things around
Behdad Esfahbod [Wed, 18 Nov 2015 02:42:13 +0000 (18:42 -0800)]
Move things around

8 years agoMerge pull request #163 from fanc999/msvc.src
Behdad Esfahbod [Wed, 18 Nov 2015 02:40:10 +0000 (18:40 -0800)]
Merge pull request #163 from fanc999/msvc.src

Update the sources so they will compile under Visual Studio

8 years agoFix build on MSVC >= 2012
Chun-wei Fan [Mon, 9 Nov 2015 09:17:56 +0000 (17:17 +0800)]
Fix build on MSVC >= 2012

Use the DEFINE_ENUM_FLAG_OPERATORS macro in winnt.h on Visual Studio,
which defines the bitwise operators for the enumerations that we want to
mark as hb_mark_as_flags_t, which will take care of the situation on newer
Visual Studio (>= 2012), where the build breaks with C2057 errors as the
underlying types of the enumerations is not clear to the compiler when we
do a bitwise op within the declaration of the enumerations themselves.

Also disable the C4200 (nonstandard extension used : zero-sized array in
struct/union) and C4800 ('type' : forcing value to bool 'true' or 'false'
(performance warning)) warnings as the C4200 is the intended scenario and
C4800 is harmless but is so far an unavoidable side effect of using
DEFINE_ENUM_FLAG_OPERATORS.

8 years agohb-ot-shape-complex-arabic.cc: Fix build on Visual Studio
Chun-wei Fan [Fri, 6 Nov 2015 06:28:30 +0000 (14:28 +0800)]
hb-ot-shape-complex-arabic.cc: Fix build on Visual Studio

Visual Studio does not like declaring a enum variable within a for
statement, so fix the build by declaring the enum before doing the for
loop.

8 years agoMSVC builds: Add fallback implementation for pre-2013 MSVC
Chun-wei Fan [Tue, 3 Nov 2015 10:49:34 +0000 (18:49 +0800)]
MSVC builds: Add fallback implementation for pre-2013 MSVC

Pre-2013 MSVC does not have scalbn() and scalbnf(), which are used in the
utility programs.  Add  fallback implementations for these, which can be
used when necessary.

8 years agoutil: Fix build on Visual Studio
Chun-wei Fan [Mon, 2 Nov 2015 08:55:29 +0000 (16:55 +0800)]
util: Fix build on Visual Studio

Use the fallback implementation for lround() only on pre-2013 Visual
Studio, and ensure we are clear about the types of the parameters for
lround() and scalbnf(), since Visual Studio can be quite picky on
ambiguous parameter types.  Also, use g_ascii_strcasecmp() rather than
strcasecmp() as we are already using GLib for this code and we are
assured that g_ascii_strcasemp() is available.

For scalbnf() on pre-2013 Visaul Studio, a fallback implementation is
needed, but use another forced-included header for those compilers, which
will be added later.

Also use (char)27 on Visual Studio builds as '\e' is not a recognized
escape sequence, which will do the same thing.

8 years ago[util] Fix crash when --output-file is specified but not --output-format
Behdad Esfahbod [Tue, 10 Nov 2015 19:37:01 +0000 (11:37 -0800)]
[util] Fix crash when --output-file is specified but not --output-format

8 years agoMerge pull request #167 from KonstantinRitt/unicode_cp_opt
Behdad Esfahbod [Sat, 7 Nov 2015 15:50:58 +0000 (07:50 -0800)]
Merge pull request #167 from KonstantinRitt/unicode_cp_opt

Micro optimizations to UTF-16 and UTF-32 codecs

8 years ago[arabic] Improve stretch length calculation
Behdad Esfahbod [Sat, 7 Nov 2015 00:29:44 +0000 (16:29 -0800)]
[arabic] Improve stretch length calculation

Err on the side of being too short, than too wide.  Reduces chance
of overlaps with neighboring glyphs.

8 years ago[arabic] Don't stretch over cased letters
Behdad Esfahbod [Sat, 7 Nov 2015 00:27:44 +0000 (16:27 -0800)]
[arabic] Don't stretch over cased letters

Addresses
https://github.com/behdad/harfbuzz/commit/6e6f82b6f3dde0fc6c3c7d991d9ec6cfff57823d#commitcomment-14248516

8 years agoRevert "Don't process lookups if buffer is in error"
Behdad Esfahbod [Sat, 7 Nov 2015 00:18:09 +0000 (16:18 -0800)]
Revert "Don't process lookups if buffer is in error"

This reverts commit f92bd86cc8c11d262d1830c631cb7c63fc9d4bc8.

We don't want to be like cairo, where as soon as there's an error,
nothing works anymore.  So, lets process lookups as long as there's
no new memory needed.  That's also a model that hides fewer bugs.

8 years agoMicro optimization to hb_utf16_t and hb_utf32_t ::prev()
Konstantin Ritt [Fri, 6 Nov 2015 22:00:04 +0000 (02:00 +0400)]
Micro optimization to hb_utf16_t and hb_utf32_t ::prev()

Implement reverse lookup instead of re-using next()

8 years agoNano optimization to hb_utf16_t and hb_utf32_t ::next()
Konstantin Ritt [Fri, 6 Nov 2015 21:58:38 +0000 (01:58 +0400)]
Nano optimization to hb_utf16_t and hb_utf32_t ::next()

8 years ago[fuzzing] Cap max buffer len at 128
Behdad Esfahbod [Fri, 6 Nov 2015 17:46:54 +0000 (09:46 -0800)]
[fuzzing] Cap max buffer len at 128

8 years agoFix typo
Behdad Esfahbod [Fri, 6 Nov 2015 17:46:05 +0000 (09:46 -0800)]
Fix typo

8 years agoMake sure we make progress in OOM situations
Behdad Esfahbod [Fri, 6 Nov 2015 08:09:26 +0000 (00:09 -0800)]
Make sure we make progress in OOM situations

8 years ago[fuzzing] Add test case for OOM
Behdad Esfahbod [Fri, 6 Nov 2015 08:01:24 +0000 (00:01 -0800)]
[fuzzing] Add test case for OOM

From https://github.com/behdad/harfbuzz/issues/161

8 years agoFix hang in OOM situations
Behdad Esfahbod [Fri, 6 Nov 2015 07:52:41 +0000 (23:52 -0800)]
Fix hang in OOM situations

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

8 years agoDon't process lookups if buffer is in error
Behdad Esfahbod [Fri, 6 Nov 2015 07:52:29 +0000 (23:52 -0800)]
Don't process lookups if buffer is in error

8 years agoLimit buffer max size growth
Behdad Esfahbod [Fri, 6 Nov 2015 07:44:59 +0000 (23:44 -0800)]
Limit buffer max size growth

https://github.com/behdad/harfbuzz/issues/161

8 years ago[fuzzing] Add build system
Behdad Esfahbod [Fri, 6 Nov 2015 07:08:50 +0000 (23:08 -0800)]
[fuzzing] Add build system

8 years ago[fuzzer] Add README
Behdad Esfahbod [Fri, 6 Nov 2015 06:50:52 +0000 (22:50 -0800)]
[fuzzer] Add README

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

8 years agoImplement SYRIAC ABBREVIATION MARK with 'stch' feature
Behdad Esfahbod [Fri, 6 Nov 2015 01:29:03 +0000 (17:29 -0800)]
Implement SYRIAC ABBREVIATION MARK with 'stch' feature

The feature is enabled for any character in the Arabic shaper.
We should experiment with using it for Arabic subtending marks.
Though, that has a directionality problem as well, since those
are used with digits...

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