platform/upstream/libHarfBuzzSharp.git
6 years ago[khmer] Rewrite most of shaper to better follow spec
Behdad Esfahbod [Tue, 31 Jul 2018 18:45:32 +0000 (11:45 -0700)]
[khmer] Rewrite most of shaper to better follow spec

Khmer spec has only one reordering phase, and only simple prebase
matra and Coeng-Ro reordering.  Implement that.  Specifically,
this was done to address recognizing different orders of the matra
and Coeng-Ro sequence.  That said, some combinations are now
reordered differently from Uniscribe.  Not clear if that's intended
or a bug in Uniscribe.  The following two sequences render the same
in Uniscribe whereas we reorder them differently:

  U+17A0,U+17D2,U+179A,U+17C2
  U+17A0,U+17C2,U+17D2,U+179A

For that reason, our test suite numbers regressed slightly.  Used
to be at 34 for fails, now at:

KHMER: 299080 out of 299124 tests passed. 44 failed (0.0147096%)

But generally a good change, and removed lots of code.

Fixes https://github.com/harfbuzz/harfbuzz/issues/1026

6 years ago[shaper] Move code around
Behdad Esfahbod [Tue, 31 Jul 2018 08:27:04 +0000 (01:27 -0700)]
[shaper] Move code around

6 years ago[shaper] Remove a macro
Behdad Esfahbod [Tue, 31 Jul 2018 08:15:04 +0000 (01:15 -0700)]
[shaper] Remove a macro

6 years ago[atomic] Make pointer get op relaxed instead of acquire
Behdad Esfahbod [Tue, 31 Jul 2018 08:02:31 +0000 (01:02 -0700)]
[atomic] Make pointer get op relaxed instead of acquire

We only use it before cmpexch, so relaxed is fine and faster for
common case.

6 years ago[serialize] Increase stage count from 8 to 32
Behdad Esfahbod [Tue, 31 Jul 2018 00:03:06 +0000 (17:03 -0700)]
[serialize] Increase stage count from 8 to 32

Indic shaper uses many stages.  Now we are provably not limiting
functionality whereas the previous limit of 8 was assuming real-world
practices.

6 years ago[serialize] Remove unused truncate() method
Behdad Esfahbod [Mon, 30 Jul 2018 23:59:41 +0000 (16:59 -0700)]
[serialize] Remove unused truncate() method

6 years ago[subset] During lookup collection remember the features we've already processed.
Garret Rieger [Fri, 27 Jul 2018 00:42:02 +0000 (17:42 -0700)]
[subset] During lookup collection remember the features we've already processed.

6 years agoMinor
Behdad Esfahbod [Fri, 27 Jul 2018 21:55:29 +0000 (14:55 -0700)]
Minor

6 years ago[serialize] Allocate for markFilteringSet
Behdad Esfahbod [Thu, 26 Jul 2018 00:37:38 +0000 (17:37 -0700)]
[serialize] Allocate for markFilteringSet

6 years agoMinor
Behdad Esfahbod [Thu, 26 Jul 2018 00:22:05 +0000 (17:22 -0700)]
Minor

6 years agoFix unlikely leaks
prrace [Fri, 27 Jul 2018 20:58:27 +0000 (13:58 -0700)]
Fix unlikely leaks

6 years agoAdd hb-iter-private.hh
Behdad Esfahbod [Thu, 26 Jul 2018 00:07:17 +0000 (17:07 -0700)]
Add hb-iter-private.hh

Unused so far.

6 years agoMove some code from hb-open-type-private.hh to hb-machinery-private.hh
Behdad Esfahbod [Wed, 25 Jul 2018 23:58:47 +0000 (16:58 -0700)]
Move some code from hb-open-type-private.hh to hb-machinery-private.hh

6 years ago[closure] Allocate out set on the stack
Behdad Esfahbod [Wed, 25 Jul 2018 23:01:37 +0000 (16:01 -0700)]
[closure] Allocate out set on the stack

6 years agoFix compile
Behdad Esfahbod [Wed, 25 Jul 2018 21:30:07 +0000 (14:30 -0700)]
Fix compile

6 years ago[coretext] Add note
Behdad Esfahbod [Wed, 25 Jul 2018 01:00:14 +0000 (18:00 -0700)]
[coretext] Add note

6 years ago[subset] Only used reachable lookups for gsub closure.
Garret Rieger [Wed, 25 Jul 2018 20:39:17 +0000 (13:39 -0700)]
[subset] Only used reachable lookups for gsub closure.

6 years ago[closure] Separate in and out glyphs
Behdad Esfahbod [Tue, 24 Jul 2018 16:43:27 +0000 (09:43 -0700)]
[closure] Separate in and out glyphs

Fixes https://github.com/harfbuzz/harfbuzz/issues/1107

6 years ago[subset] Limit the iterations of the closure algorithm.
Garret Rieger [Mon, 23 Jul 2018 22:37:18 +0000 (15:37 -0700)]
[subset] Limit the iterations of the closure algorithm.
Prevents O(n^2) run times.

6 years agoFix visibility on mingw32
Behdad Esfahbod [Mon, 23 Jul 2018 22:01:39 +0000 (15:01 -0700)]
Fix visibility on mingw32

Should fix bots again.

6 years agoFix infinite loop in loading num_glyphs within sanitizer
Behdad Esfahbod [Mon, 23 Jul 2018 21:44:10 +0000 (14:44 -0700)]
Fix infinite loop in loading num_glyphs within sanitizer

6 years agoOne more visibility trick
Behdad Esfahbod [Mon, 23 Jul 2018 20:24:26 +0000 (13:24 -0700)]
One more visibility trick

Should fix Windows build again.

6 years agoOne more
Behdad Esfahbod [Mon, 23 Jul 2018 19:00:02 +0000 (12:00 -0700)]
One more

6 years agoRemove unnecessary OT:: namespace specifiers
Behdad Esfahbod [Mon, 23 Jul 2018 18:57:45 +0000 (11:57 -0700)]
Remove unnecessary OT:: namespace specifiers

6 years agoSet num glyphs on sanitizer reference_table()
Behdad Esfahbod [Mon, 23 Jul 2018 18:46:46 +0000 (11:46 -0700)]
Set num glyphs on sanitizer reference_table()

Move out-of-class definitions of two methods to hb-static so they
are accessible in libharfbuzz-subset.

6 years agoRemove Sanitizer<>
Behdad Esfahbod [Mon, 23 Jul 2018 05:50:58 +0000 (22:50 -0700)]
Remove Sanitizer<>

6 years agoPort rest of code away from Sanitizer<>
Behdad Esfahbod [Mon, 23 Jul 2018 05:49:26 +0000 (22:49 -0700)]
Port rest of code away from Sanitizer<>

6 years agoPort dump-emoji away from Sanitizer<>
Behdad Esfahbod [Mon, 23 Jul 2018 05:47:19 +0000 (22:47 -0700)]
Port dump-emoji away from Sanitizer<>

6 years ago.
Behdad Esfahbod [Mon, 23 Jul 2018 05:45:26 +0000 (22:45 -0700)]
.

6 years agoMinor
Behdad Esfahbod [Mon, 23 Jul 2018 05:44:22 +0000 (22:44 -0700)]
Minor

6 years agoPort sbix off of Sanitizer<>
Behdad Esfahbod [Mon, 23 Jul 2018 05:40:56 +0000 (22:40 -0700)]
Port sbix off of Sanitizer<>

6 years agoPort more off of Sanitizer<>
Behdad Esfahbod [Mon, 23 Jul 2018 05:40:32 +0000 (22:40 -0700)]
Port more off of Sanitizer<>

6 years agoAdd sanitizer reference_table, also fix clang build
Behdad Esfahbod [Mon, 23 Jul 2018 05:24:31 +0000 (22:24 -0700)]
Add sanitizer reference_table, also fix clang build

Clang is being really peculiar.  Fix with:

-  inline hb_blob_t *sanitize (hb_blob_t *blob) { return c->sanitize<Type> (blob); }
+  inline hb_blob_t *sanitize (hb_blob_t *blob) { return c[0].template/*clang idiosyncrasy*/sanitize_blob<Type> (blob); }

6 years agoOrder Chakma split vowels in accordance with NFC
David Corbett [Fri, 13 Apr 2018 22:45:37 +0000 (18:45 -0400)]
Order Chakma split vowels in accordance with NFC

Fixes #1105.

6 years agoAdd a new API, hb_ot_layout_get_feature_name_ids (#976)
Ebrahim Byagowi [Sat, 21 Jul 2018 16:44:48 +0000 (21:14 +0430)]
Add a new API, hb_ot_layout_get_feature_name_ids (#976)

This new API returns cvXX and ssXX related NameId, things like
featUiLabelNameId, featUiTooltipTextNameId, sampleTextNameId, ... of cvXX
and UINameId of ssXX, in a unified way.

However HarfBuzz currently doesn't expose an API for retrieving the actual
information associated with NameId from the `name` table and that should be
done separately.

6 years agoRemove dump-fon (#1100)
Ebrahim Byagowi [Tue, 17 Jul 2018 18:59:16 +0000 (23:29 +0430)]
Remove dump-fon (#1100)

It had interesting stuffs like EXE parsing and
big-endian parsers but added in an attempt to find
a solution for #681 which later found not related.

6 years agoRemove AAT's gcid/fmtx (#1099)
Ebrahim Byagowi [Tue, 17 Jul 2018 18:02:37 +0000 (22:32 +0430)]
Remove AAT's gcid/fmtx (#1099)

We are not going to use them, at least in the foreseeable future

6 years agoFix hb_face_count() sanitize referencing
Behdad Esfahbod [Tue, 17 Jul 2018 17:17:59 +0000 (19:17 +0200)]
Fix hb_face_count() sanitize referencing

6 years agoRemove TODO that is not gonna be done
Behdad Esfahbod [Tue, 17 Jul 2018 17:09:03 +0000 (19:09 +0200)]
Remove TODO that is not gonna be done

Previously the idea was to cache sanitize results externally (think,
in Fontconfig) and avoid resanitizing every time.  That's, not a good
idea.

6 years agoMove sanitizer code around a bit
Behdad Esfahbod [Tue, 17 Jul 2018 16:45:25 +0000 (18:45 +0200)]
Move sanitizer code around a bit

6 years ago[aat] Update for blob changes
Behdad Esfahbod [Tue, 17 Jul 2018 16:14:45 +0000 (18:14 +0200)]
[aat] Update for blob changes

Also, uncomment code again, just "if (0)" it out, so it doesn't get stale again.

6 years ago1.8.4
Behdad Esfahbod [Tue, 17 Jul 2018 11:20:40 +0000 (13:20 +0200)]
1.8.4

6 years agoReland "Implement C++11-style GCC builtin atomic ops"
Behdad Esfahbod [Tue, 17 Jul 2018 08:57:01 +0000 (10:57 +0200)]
Reland "Implement C++11-style GCC builtin atomic ops"

Fixed the crasher in it.

6 years agoMinor
Behdad Esfahbod [Tue, 17 Jul 2018 08:59:19 +0000 (10:59 +0200)]
Minor

6 years agoRevert "Implement C++11-style GCC builtin atomic ops"
Behdad Esfahbod [Tue, 17 Jul 2018 08:50:01 +0000 (10:50 +0200)]
Revert "Implement C++11-style GCC builtin atomic ops"

This reverts commit 21fa170f0bfb0109c506ed17f5aff8b062564ffa.

Is crashing.  Oops.

6 years agoImplement C++11-style GCC builtin atomic ops
Behdad Esfahbod [Mon, 16 Jul 2018 15:58:02 +0000 (17:58 +0200)]
Implement C++11-style GCC builtin atomic ops

Hopefully fixes bots.

6 years agoRelax C++11 atomic ops memory order to acquire-release
Behdad Esfahbod [Mon, 16 Jul 2018 13:44:58 +0000 (15:44 +0200)]
Relax C++11 atomic ops memory order to acquire-release

6 years agoImplement C++11 <atomic> operations
Behdad Esfahbod [Mon, 16 Jul 2018 13:41:09 +0000 (15:41 +0200)]
Implement C++11 <atomic> operations

Fixes https://github.com/harfbuzz/harfbuzz/issues/345

6 years agoMerge pull request #1094 from anthrotype/fix-appveyor-msys2
Cosimo Lupo [Mon, 16 Jul 2018 12:42:43 +0000 (14:42 +0200)]
Merge pull request #1094 from anthrotype/fix-appveyor-msys2

appveyor.yml: try updating msys2 to fix failing mingw-w64-x86_64 build

6 years agoappveyor.yml: try only updating msys2 core, not the rest of the packages
Cosimo Lupo [Mon, 16 Jul 2018 12:14:42 +0000 (14:14 +0200)]
appveyor.yml: try only updating msys2 core, not the rest of the packages

maybe it'll get a bit faster

6 years agoappveyor.yml: pass --needed option to pacman
Cosimo Lupo [Mon, 16 Jul 2018 10:57:27 +0000 (12:57 +0200)]
appveyor.yml: pass --needed option to pacman

so it won't attempt reinstalling packages which are already installed

6 years agoappveyor.yml: try updating msys2 to fix failing mingw-w64-x86_64 build
Cosimo Lupo [Mon, 16 Jul 2018 10:41:59 +0000 (12:41 +0200)]
appveyor.yml: try updating msys2 to fix failing mingw-w64-x86_64 build

https://github.com/harfbuzz/harfbuzz/pull/1093#issuecomment-405201903
https://ci.appveyor.com/project/harfbuzz/harfbuzz/build/job/ky7lao1ii1bi7ew4#L71

6 years agoMove _hb_alignof later again
Behdad Esfahbod [Wed, 11 Jul 2018 15:27:23 +0000 (17:27 +0200)]
Move _hb_alignof later again

It uses constexpr...

6 years agoMake hb_vector_t 8 bytes smaller
Behdad Esfahbod [Wed, 11 Jul 2018 15:23:53 +0000 (17:23 +0200)]
Make hb_vector_t 8 bytes smaller

6 years agoAlign NullPool and CrapPool to HB_VECTOR_SIZE
Behdad Esfahbod [Wed, 11 Jul 2018 15:00:59 +0000 (17:00 +0200)]
Align NullPool and CrapPool to HB_VECTOR_SIZE

6 years agoFix return type of alignof() fallback
Behdad Esfahbod [Wed, 11 Jul 2018 15:00:13 +0000 (17:00 +0200)]
Fix return type of alignof() fallback

6 years agoMinor
Behdad Esfahbod [Wed, 11 Jul 2018 14:44:21 +0000 (16:44 +0200)]
Minor

6 years agoMinor
Behdad Esfahbod [Wed, 11 Jul 2018 13:27:37 +0000 (15:27 +0200)]
Minor

6 years ago1.8.3
Behdad Esfahbod [Wed, 11 Jul 2018 13:27:13 +0000 (15:27 +0200)]
1.8.3

6 years agoFix shift
Behdad Esfahbod [Tue, 10 Jul 2018 14:34:31 +0000 (16:34 +0200)]
Fix shift

6 years agoPut back include dependencies
Behdad Esfahbod [Tue, 10 Jul 2018 14:05:03 +0000 (16:05 +0200)]
Put back include dependencies

6 years agoMove more stuff from hb-private.hh to hb-dsalgs.hh
Behdad Esfahbod [Tue, 10 Jul 2018 14:03:31 +0000 (16:03 +0200)]
Move more stuff from hb-private.hh to hb-dsalgs.hh

6 years agoMove more stuff to hb-dsalgs.hh
Behdad Esfahbod [Tue, 10 Jul 2018 13:49:05 +0000 (15:49 +0200)]
Move more stuff to hb-dsalgs.hh

6 years agoMove hb_bytes_t to hb-dsalgs.hh
Behdad Esfahbod [Tue, 10 Jul 2018 13:23:08 +0000 (15:23 +0200)]
Move hb_bytes_t to hb-dsalgs.hh

6 years agoRemove hb_auto_array_t
Behdad Esfahbod [Tue, 10 Jul 2018 12:42:10 +0000 (14:42 +0200)]
Remove hb_auto_array_t

6 years agoInclude more basic internal headers from hb-private.hh
Behdad Esfahbod [Tue, 10 Jul 2018 12:41:04 +0000 (14:41 +0200)]
Include more basic internal headers from hb-private.hh

6 years agoMinor renamings of internal inline functions
Behdad Esfahbod [Tue, 10 Jul 2018 12:12:37 +0000 (14:12 +0200)]
Minor renamings of internal inline functions

6 years agoMove hb_vector_t and hb_lockable_set_t to hb-dsalgs.hh
Behdad Esfahbod [Tue, 10 Jul 2018 12:05:00 +0000 (14:05 +0200)]
Move hb_vector_t and hb_lockable_set_t to hb-dsalgs.hh

6 years agoMove hb_stable_sort to hb-dsalgs.hh
Behdad Esfahbod [Tue, 10 Jul 2018 12:03:58 +0000 (14:03 +0200)]
Move hb_stable_sort to hb-dsalgs.hh

Also, include hb-dsalgs.hh from end of hb-pricate.hh

6 years agoMinor
Behdad Esfahbod [Tue, 10 Jul 2018 12:01:39 +0000 (14:01 +0200)]
Minor

6 years agoFix syntax
Behdad Esfahbod [Tue, 10 Jul 2018 11:47:41 +0000 (13:47 +0200)]
Fix syntax

Oops.

6 years agoAdd posix_memalign() fallback
Behdad Esfahbod [Tue, 10 Jul 2018 11:17:27 +0000 (13:17 +0200)]
Add posix_memalign() fallback

6 years agoAlways compile (but not use) alignof() and round() fallback codes
Behdad Esfahbod [Tue, 10 Jul 2018 11:16:52 +0000 (13:16 +0200)]
Always compile (but not use) alignof() and round() fallback codes

Catches compile-errors in them better.

6 years agoFix alignof impl
Behdad Esfahbod [Tue, 10 Jul 2018 11:03:42 +0000 (13:03 +0200)]
Fix alignof impl

6 years agoAdd fallback implementation for constexpr and alignof
Behdad Esfahbod [Tue, 10 Jul 2018 10:58:13 +0000 (12:58 +0200)]
Add fallback implementation for constexpr and alignof

6 years agoMinor
Behdad Esfahbod [Tue, 10 Jul 2018 10:51:29 +0000 (12:51 +0200)]
Minor

6 years agoMerge pull request #1091 from anthrotype/fix-gen-def-py
Cosimo Lupo [Mon, 9 Jul 2018 18:24:22 +0000 (20:24 +0200)]
Merge pull request #1091 from anthrotype/fix-gen-def-py

gen-def.py: pass headers as arguments so that msys2 can convert posix paths

6 years agoCMakeLists.txt: don't pass header args as single space-separated string
Cosimo Lupo [Mon, 9 Jul 2018 17:54:23 +0000 (18:54 +0100)]
CMakeLists.txt: don't pass header args as single space-separated string

let python's parse command-line args as usual

6 years agoCMakeLists.txt: pass headers as arguments to gen-def.py; call using PYTHON_EXECUTABLE
Cosimo Lupo [Mon, 9 Jul 2018 17:48:20 +0000 (18:48 +0100)]
CMakeLists.txt: pass headers as arguments to gen-def.py; call using PYTHON_EXECUTABLE

6 years agosrc/Makefile.am: pass headers to gen-def.py as arguments, not env vars
Cosimo Lupo [Mon, 9 Jul 2018 17:26:44 +0000 (18:26 +0100)]
src/Makefile.am: pass headers to gen-def.py as arguments, not env vars

6 years agogen-def.py: pass headers as arguments so that msys2 can convert posix paths
Cosimo Lupo [Mon, 9 Jul 2018 17:11:29 +0000 (18:11 +0100)]
gen-def.py: pass headers as arguments so that msys2 can convert posix paths

When one is not using the msys2 python, the header files that are passed in as environment
variable cannot be found.

https://ci.appveyor.com/project/fonttools/ttfautohint-py/build/1.0.65/job/rkremny4jjid9nl2#L803

This is because msys2 shell and make use POSIX paths (e.g. /c/Users/clupo/...)
whereas non-msys2 python.exe uses native Windows paths (e.g. C:\Users\clupo\...).

Msys2 will automatically convert command line arguments (but not environment variables) from
POSIX to Windows paths when calling a native win32 executable, so we pass the header paths
as arguments instead of environment variables.

This way the gen-def.py script can support both mingw python running in an MSYS2 shell, and
native win32 python.

6 years agoDo not enforce a native direction of LTR for Runic
David Corbett [Fri, 6 Jul 2018 19:47:03 +0000 (15:47 -0400)]
Do not enforce a native direction of LTR for Runic

Fixes #481

6 years agoRegenerate the USE table for Grantha and Bhaiksuki (#1090)
David Corbett [Sat, 7 Jul 2018 15:08:17 +0000 (11:08 -0400)]
Regenerate the USE table for Grantha and Bhaiksuki (#1090)

Completes #1037 and fixes #1035.

6 years agoDisable vectorization
Behdad Esfahbod [Thu, 5 Jul 2018 09:34:13 +0000 (14:04 +0430)]
Disable vectorization

Disable vectorization for now.  To correctly use them, we should
use posix_memalign() to allocate them.  Otherwise, can cause
misaligned access.

https://bugs.chromium.org/p/chromium/issues/detail?id=860184

6 years agoFix warning
Behdad Esfahbod [Thu, 5 Jul 2018 09:33:48 +0000 (14:03 +0430)]
Fix warning

../../src/hb-ot-layout-gsubgpos-private.hh:391:18: warning: missed loop optimization, the loop counter may overflow [-Wunsafe-loop-optimizations]

6 years agoAllow disabling vector_size use
Behdad Esfahbod [Thu, 5 Jul 2018 08:46:00 +0000 (13:16 +0430)]
Allow disabling vector_size use

6 years agoUse CreateFileW explicitly and pass wchar_t to it (#1087)
Ebrahim Byagowi [Wed, 4 Jul 2018 11:03:39 +0000 (15:33 +0430)]
Use CreateFileW explicitly and pass wchar_t to it (#1087)

6 years ago[indic] Adjust left-matra repositioning and Halant,ZWJ sequence
Behdad Esfahbod [Tue, 3 Jul 2018 09:59:25 +0000 (14:29 +0430)]
[indic] Adjust left-matra repositioning and Halant,ZWJ sequence

From the new code (first paragraph is from the OT Devanagari spec.):

  /*   o Reorder matras:
   *
   *     If a pre-base matra character had been reordered before applying basic
   *     features, the glyph can be moved closer to the main consonant based on
   *     whether half-forms had been formed. Actual position for the matra is
   *     defined as “after last standalone halant glyph, after initial matra
   *     position and before the main consonant”. If ZWJ or ZWNJ follow this
   *     halant, position is moved after it.
   *
   * IMPLEMENTATION NOTES:
   *
   * It looks like the last sentence is wrong.  Testing, with Windows 7 Uniscribe
   * and Devanagari shows that the behavior is best described as:
   *
   * "If ZWJ follows this halant, matra is NOT repositioned after this halant.
   *  If ZWNJ follows this halant, position is moved after it."
   *
   * Test case, with Adobe Devanagari or Nirmala UI:
   *
   *   U+091F,U+094D,U+200C,U+092F,U+093F
   *   (Matra moves to the middle, after ZWNJ.)
   *
   *   U+091F,U+094D,U+200D,U+092F,U+093F
   *   (Matra does NOT move, stays to the left.)

Fixes https://github.com/harfbuzz/harfbuzz/issues/1070

Test case added with Adobe Devanagari.

6 years agoFix unused function '_hb_mapped_file_destroy' if no mmap
Behdad Esfahbod [Tue, 3 Jul 2018 08:34:05 +0000 (13:04 +0430)]
Fix unused function '_hb_mapped_file_destroy' if no mmap

6 years ago1.8.2
Behdad Esfahbod [Tue, 3 Jul 2018 08:13:59 +0000 (12:43 +0430)]
1.8.2

6 years agoDisable .dfont code for now
Behdad Esfahbod [Tue, 3 Jul 2018 08:08:21 +0000 (12:38 +0430)]
Disable .dfont code for now

The get_table imple was wrong, as table offsets in a dfont are
relative to the resource.  We were treating them as relative to
the big blob itself.  To be fixed.

Part of https://github.com/harfbuzz/harfbuzz/pull/1085

6 years agoFix trak table apply logic
Ebrahim Byagowi [Sun, 1 Jul 2018 11:02:43 +0000 (15:32 +0430)]
Fix trak table apply logic

In collaboration with Behdad

6 years agoSupport dfont font files (#949)
Ebrahim Byagowi [Sun, 1 Jul 2018 10:02:00 +0000 (14:32 +0430)]
Support dfont font files (#949)

6 years agoImprove nommap naming and use C style comments on create_from_file (#1084)
Ebrahim Byagowi [Sat, 30 Jun 2018 21:24:14 +0000 (01:54 +0430)]
Improve nommap naming and use C style comments on create_from_file (#1084)

6 years agoAdjust MarkBasePos heuristic in presence of MultipleSubst
Behdad Esfahbod [Sat, 30 Jun 2018 11:29:25 +0000 (15:59 +0430)]
Adjust MarkBasePos heuristic in presence of MultipleSubst

From the issue:
"In this font, the virama,ya first forms a ligature, then decomposes back to
virama,ya. This causes those two to be marked parts of a MultipleSubst
sequence. When attaching the matra, we look for the first of the MultipleSubst
sequence because that's where we attach to (because of eg #740). In this case,
the first glyph in the MultipleSubst sequence is a mark, so we skip it and
attach to the base char before it."

Font in question is Nirmala UI from Windows 10. Test sequence:

  U+0926,U+094D,U+092F,U+0941

Fixes https://github.com/harfbuzz/harfbuzz/issues/1020

6 years ago[indic] Tweak for old-spec Bengali and halant-ya-halant
Behdad Esfahbod [Sat, 30 Jun 2018 07:58:03 +0000 (12:28 +0430)]
[indic] Tweak for old-spec Bengali and halant-ya-halant

Fixes https://github.com/harfbuzz/harfbuzz/issues/1073

6 years agoRebase and update USE overrides for Bhaiksuki Gap Fillers and Grantha Anusvara
punchcutter [Mon, 25 Jun 2018 05:54:57 +0000 (22:54 -0700)]
Rebase and update USE overrides for Bhaiksuki Gap Fillers and Grantha Anusvara

6 years ago[khmer] Fix infinite-loop in cluster merging
Behdad Esfahbod [Sat, 30 Jun 2018 04:46:54 +0000 (09:16 +0430)]
[khmer] Fix infinite-loop in cluster merging

Indic shaper already had this check.  We removed it when forking
Khmer shaper by mistake.

Fixes https://bugzilla.mozilla.org/show_bug.cgi?id=1464623

6 years agoarmcc compatibility, don't use EINTR if doesn't exist
Ebrahim Byagowi [Thu, 28 Jun 2018 10:02:36 +0000 (14:32 +0430)]
armcc compatibility, don't use EINTR if doesn't exist

Fixes #1081

6 years agoMinor on hb_blob_create_from_file, reuse ferror result
Ebrahim Byagowi [Thu, 28 Jun 2018 08:52:21 +0000 (13:22 +0430)]
Minor on hb_blob_create_from_file, reuse ferror result

Oops