texlive[51283] Build/source/libs: harfbuzz-2.5.1

commits+kakuto at tug.org commits+kakuto at tug.org
Sat Jun 1 10:54:42 CEST 2019


Revision: 51283
          http://tug.org/svn/texlive?view=revision&revision=51283
Author:   kakuto
Date:     2019-06-01 10:54:42 +0200 (Sat, 01 Jun 2019)
Log Message:
-----------
harfbuzz-2.5.1

Modified Paths:
--------------
    trunk/Build/source/libs/README
    trunk/Build/source/libs/harfbuzz/ChangeLog
    trunk/Build/source/libs/harfbuzz/TLpatches/ChangeLog
    trunk/Build/source/libs/harfbuzz/TLpatches/TL-Changes
    trunk/Build/source/libs/harfbuzz/configure
    trunk/Build/source/libs/harfbuzz/harfbuzz-src/ChangeLog
    trunk/Build/source/libs/harfbuzz/harfbuzz-src/Makefile.am
    trunk/Build/source/libs/harfbuzz/harfbuzz-src/NEWS
    trunk/Build/source/libs/harfbuzz/harfbuzz-src/RELEASING.md
    trunk/Build/source/libs/harfbuzz/harfbuzz-src/configure.ac
    trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/gen-ucd-table.py
    trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/gen-use-table.py
    trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-algs.hh
    trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-atomic.hh
    trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-mutex.hh
    trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-open-type.hh
    trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-deprecated.h
    trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-glyf-table.hh
    trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-layout-common.hh
    trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-layout-gdef-table.hh
    trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-layout-gsub-table.hh
    trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-layout-gsubgpos.hh
    trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-math-table.hh
    trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-math.h
    trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-name-table.hh
    trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-shape-complex-use-machine.hh
    trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-shape-complex-use-machine.rl
    trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-shape-complex-use-table.cc
    trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-shape-complex-use.cc
    trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-shape-complex-use.hh
    trunk/Build/source/libs/harfbuzz/version.ac

Added Paths:
-----------
    trunk/Build/source/libs/harfbuzz/harfbuzz-src/README.md
    trunk/Build/source/libs/harfbuzz/harfbuzz-src/README.mingw.md
    trunk/Build/source/libs/harfbuzz/harfbuzz-src/TESTING.md
    trunk/Build/source/libs/harfbuzz/harfbuzz-src/mingw-configure.sh
    trunk/Build/source/libs/harfbuzz/harfbuzz-src/mingw-ldd.py
    trunk/Build/source/libs/harfbuzz/harfbuzz-src/mingw32.sh
    trunk/Build/source/libs/harfbuzz/harfbuzz-src/mingw64.sh

Removed Paths:
-------------
    trunk/Build/source/libs/harfbuzz/harfbuzz-src/README.wine.md

Modified: trunk/Build/source/libs/README
===================================================================
--- trunk/Build/source/libs/README	2019-05-31 23:32:35 UTC (rev 51282)
+++ trunk/Build/source/libs/README	2019-06-01 08:54:42 UTC (rev 51283)
@@ -25,7 +25,7 @@
   http://sourceforge.net/projects/silgraphite/files/graphite2/
   (requires C++11)
 
-harfbuzz 2.5.0 - checked 25may19
+harfbuzz 2.5.1 - checked 01jun19
   http://www.freedesktop.org/software/harfbuzz/release/
 
 icu 63.1 - checked 8jan19

Modified: trunk/Build/source/libs/harfbuzz/ChangeLog
===================================================================
--- trunk/Build/source/libs/harfbuzz/ChangeLog	2019-05-31 23:32:35 UTC (rev 51282)
+++ trunk/Build/source/libs/harfbuzz/ChangeLog	2019-06-01 08:54:42 UTC (rev 51283)
@@ -1,3 +1,8 @@
+2019-06-01  Akira Kakuto  <kakuto at w32tex.org>
+
+	Import harfbuzz-2.5.1.
+	* version.ac: Adjusted.
+
 2019-05-30  Khaled Hosny  <dr.khaled.hosny at gmail.com>
 
 	* Makefile.am: Fix missing Unicode functions with

Modified: trunk/Build/source/libs/harfbuzz/TLpatches/ChangeLog
===================================================================
--- trunk/Build/source/libs/harfbuzz/TLpatches/ChangeLog	2019-05-31 23:32:35 UTC (rev 51282)
+++ trunk/Build/source/libs/harfbuzz/TLpatches/ChangeLog	2019-06-01 08:54:42 UTC (rev 51283)
@@ -1,3 +1,8 @@
+2019-06-01  Akira Kakuto  <kakuto at w32tex.org>
+
+	Imported harfbuzz-2.5.1 source tree from:
+	  http://www.freedesktop.org/software/harfbuzz/release/
+
 2019-05-25  Akira Kakuto  <kakuto at w32tex.org>
 
 	Imported harfbuzz-2.5.0 source tree from:

Modified: trunk/Build/source/libs/harfbuzz/TLpatches/TL-Changes
===================================================================
--- trunk/Build/source/libs/harfbuzz/TLpatches/TL-Changes	2019-05-31 23:32:35 UTC (rev 51282)
+++ trunk/Build/source/libs/harfbuzz/TLpatches/TL-Changes	2019-06-01 08:54:42 UTC (rev 51283)
@@ -1,4 +1,4 @@
-Changes applied to the harfbuzz-2.5.0/ tree as obtained from:
+Changes applied to the harfbuzz-2.5.1/ tree as obtained from:
 	http://www.freedesktop.org/software/harfbuzz/release/
 
 Removed:

Modified: trunk/Build/source/libs/harfbuzz/configure
===================================================================
--- trunk/Build/source/libs/harfbuzz/configure	2019-05-31 23:32:35 UTC (rev 51282)
+++ trunk/Build/source/libs/harfbuzz/configure	2019-06-01 08:54:42 UTC (rev 51283)
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for harfbuzz (TeX Live) 2.5.0.
+# Generated by GNU Autoconf 2.69 for harfbuzz (TeX Live) 2.5.1.
 #
 # Report bugs to <tex-k at tug.org>.
 #
@@ -580,8 +580,8 @@
 # Identity of this package.
 PACKAGE_NAME='harfbuzz (TeX Live)'
 PACKAGE_TARNAME='harfbuzz--tex-live-'
-PACKAGE_VERSION='2.5.0'
-PACKAGE_STRING='harfbuzz (TeX Live) 2.5.0'
+PACKAGE_VERSION='2.5.1'
+PACKAGE_STRING='harfbuzz (TeX Live) 2.5.1'
 PACKAGE_BUGREPORT='tex-k at tug.org'
 PACKAGE_URL=''
 
@@ -1311,7 +1311,7 @@
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures harfbuzz (TeX Live) 2.5.0 to adapt to many kinds of systems.
+\`configure' configures harfbuzz (TeX Live) 2.5.1 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1382,7 +1382,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of harfbuzz (TeX Live) 2.5.0:";;
+     short | recursive ) echo "Configuration of harfbuzz (TeX Live) 2.5.1:";;
    esac
   cat <<\_ACEOF
 
@@ -1487,7 +1487,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-harfbuzz (TeX Live) configure 2.5.0
+harfbuzz (TeX Live) configure 2.5.1
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2123,7 +2123,7 @@
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by harfbuzz (TeX Live) $as_me 2.5.0, which was
+It was created by harfbuzz (TeX Live) $as_me 2.5.1, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -4047,7 +4047,7 @@
 
 # Define the identity of the package.
  PACKAGE='harfbuzz--tex-live-'
- VERSION='2.5.0'
+ VERSION='2.5.1'
 
 
 # Some tools Automake needs.
@@ -4241,8 +4241,8 @@
 
 HB_VERSION_MAJOR=2
 HB_VERSION_MINOR=5
-HB_VERSION_MICRO=0
-HB_VERSION=2.5.0
+HB_VERSION_MICRO=1
+HB_VERSION=2.5.1
 
 ac_ext=c
 ac_cpp='$CPP $CPPFLAGS'
@@ -7919,7 +7919,7 @@
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by harfbuzz (TeX Live) $as_me 2.5.0, which was
+This file was extended by harfbuzz (TeX Live) $as_me 2.5.1, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -7985,7 +7985,7 @@
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-harfbuzz (TeX Live) config.status 2.5.0
+harfbuzz (TeX Live) config.status 2.5.1
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 

Modified: trunk/Build/source/libs/harfbuzz/harfbuzz-src/ChangeLog
===================================================================
--- trunk/Build/source/libs/harfbuzz/harfbuzz-src/ChangeLog	2019-05-31 23:32:35 UTC (rev 51282)
+++ trunk/Build/source/libs/harfbuzz/harfbuzz-src/ChangeLog	2019-06-01 08:54:42 UTC (rev 51283)
@@ -1,3 +1,469 @@
+commit 93c455567fe3d92a7efe65bf0e9ac2af794e2c4f
+Author: Behdad Esfahbod <behdad at behdad.org>
+Date:   Fri May 31 22:53:27 2019 -0700
+
+    2.5.1
+
+ NEWS             | 11 +++++++++++
+ configure.ac     |  2 +-
+ src/hb-version.h |  4 ++--
+ 3 files changed, 14 insertions(+), 3 deletions(-)
+
+commit 10e3cb9246ab3d288af4effe484f4d8beb2243d6
+Author: Behdad Esfahbod <behdad at behdad.org>
+Date:   Fri May 31 22:56:37 2019 -0700
+
+    [docs] Fix dist
+
+ docs/Makefile.am | 1 +
+ 1 file changed, 1 insertion(+)
+
+commit 619f5f1eb9e5e2a4f326f89c9e3e05b01f9c042f
+Author: Behdad Esfahbod <behdad at behdad.org>
+Date:   Fri May 31 22:31:35 2019 -0700
+
+    Fourth try at building VS bots
+    
+    Based on https://github.com/harfbuzz/harfbuzz/issues/1730#issuecomment-497151210
+
+ src/hb-algs.hh | 16 +++++++++++-----
+ 1 file changed, 11 insertions(+), 5 deletions(-)
+
+commit f387a09742bd8e4a7a8da6db954339609839a113
+Author: Behdad Esfahbod <behdad at behdad.org>
+Date:   Fri May 31 22:12:23 2019 -0700
+
+    [ci] Disable VS 2013
+    
+    That one doesn't even understand constexpr.
+
+ appveyor.yml | 12 ++++++------
+ 1 file changed, 6 insertions(+), 6 deletions(-)
+
+commit aba3888d933474a874d2f3ff02397b523846466c
+Author: Behdad Esfahbod <behdad at behdad.org>
+Date:   Fri May 31 22:11:27 2019 -0700
+
+    Third try at fixing VS build
+    
+    https://github.com/harfbuzz/harfbuzz/issues/1730
+
+ src/hb-algs.hh | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 8aaecbb5832568135f6149254ed9e17ac4310341
+Author: Behdad Esfahbod <behdad at behdad.org>
+Date:   Fri May 31 21:41:40 2019 -0700
+
+    Second VS fix try
+    
+    https://github.com/harfbuzz/harfbuzz/issues/1730
+
+ src/hb-algs.hh | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+commit 5a1b5c0a8b91a2291e7327e84acba2406a14414e
+Author: Behdad Esfahbod <behdad at behdad.org>
+Date:   Fri May 31 21:08:39 2019 -0700
+
+    Try fixing VS builds
+    
+    Hopefully fixes https://github.com/harfbuzz/harfbuzz/issues/1730
+
+ src/hb-algs.hh | 7 ++++++-
+ 1 file changed, 6 insertions(+), 1 deletion(-)
+
+commit 66381fb73f21e8e3c1c14b196e64d1004be303c7
+Author: Behdad Esfahbod <behdad at behdad.org>
+Date:   Fri May 31 20:20:43 2019 -0700
+
+    [ci] Enable other versions of Visual Studio
+    
+    https://github.com/harfbuzz/harfbuzz/issues/1730
+
+ appveyor.yml | 44 ++++++++++++++++++++++++--------------------
+ 1 file changed, 24 insertions(+), 20 deletions(-)
+
+commit 92fde3dea282d308fad2b8e93cd638aa813c6f2a
+Author: Behdad Esfahbod <behdad at behdad.org>
+Date:   Fri May 31 20:16:25 2019 -0700
+
+    Whitespace
+
+ src/hb-algs.hh | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+commit 49879adbfc57c3173a25bbc55afc0796ee71b6da
+Author: rsheeter <rsheeter at google.com>
+Date:   Fri May 31 15:14:44 2019 -0700
+
+    [subset] Correct calculation of max offset; fixes bug where loca would erroneously be short
+
+ src/hb-ot-glyf-table.hh | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+commit 2ad4ba7bc04fbbd886a2da6fbc55a4e13468d878
+Author: Behdad Esfahbod <behdad at behdad.org>
+Date:   Fri May 31 15:48:54 2019 -0700
+
+    [gsub] Minor
+
+ src/hb-ot-layout-gsub-table.hh | 40 +++++++++++++++++++++-------------------
+ 1 file changed, 21 insertions(+), 19 deletions(-)
+
+commit 2dbdec66a17af94fffc50949e4712465aada9a68
+Author: Behdad Esfahbod <behdad at behdad.org>
+Date:   Fri May 31 15:38:11 2019 -0700
+
+    [gsub] Porting serialize to iterators
+
+ src/hb-ot-layout-gsub-table.hh | 15 ++++++++++-----
+ 1 file changed, 10 insertions(+), 5 deletions(-)
+
+commit 1834cf86d40abfbb536db1edb366c90318ba49fc
+Author: Behdad Esfahbod <behdad at behdad.org>
+Date:   Fri May 31 14:39:32 2019 -0700
+
+    [serialize] Pass offset to serialize_subset()
+
+ src/hb-open-type.hh            | 14 +++++++++-----
+ src/hb-ot-layout-common.hh     |  4 ++--
+ src/hb-ot-layout-gdef-table.hh | 12 ++++++------
+ src/hb-ot-layout-gsubgpos.hh   |  7 ++++---
+ 4 files changed, 21 insertions(+), 16 deletions(-)
+
+commit 926044162472aeca8f5032b11b544d38be587110
+Author: Behdad Esfahbod <behdad at behdad.org>
+Date:   Fri May 31 14:34:34 2019 -0700
+
+    [serialize] Pass offset to serialize_copy()
+
+ src/hb-open-type.hh          | 12 ++++++++----
+ src/hb-ot-layout-common.hh   |  4 ++--
+ src/hb-ot-layout-gsubgpos.hh |  2 +-
+ src/hb-ot-name-table.hh      |  2 +-
+ 4 files changed, 12 insertions(+), 8 deletions(-)
+
+commit 87dd4bff1c42f1845fb3d11477e5de210121d48e
+Author: Behdad Esfahbod <behdad at behdad.org>
+Date:   Thu May 30 11:26:17 2019 -0400
+
+    [math] Rename HB_MATH_GLYPH_PART_FLAG_EXTENDER
+    
+    To HB_OT_MATH_GLYPH_PART_FLAG_EXTENDER.  Added a deprecated macro.
+    
+    Fixes https://github.com/harfbuzz/harfbuzz/issues/1734
+
+ src/hb-ot-deprecated.h  |  4 ++++
+ src/hb-ot-math-table.hh |  2 +-
+ src/hb-ot-math.h        |  2 +-
+ test/api/test-ot-math.c | 16 ++++++++--------
+ 4 files changed, 14 insertions(+), 10 deletions(-)
+
+commit 88f9dab366491af144da316384991e74af443226
+Author: Ebrahim Byagowi <ebrahim at gnu.org>
+Date:   Wed May 29 01:55:31 2019 +0430
+
+    [ci] Clean up and add disabled bots of other msvc versions (#1733)
+
+ appveyor.yml | 41 ++++++++++++++++++++++++++++++-----------
+ 1 file changed, 30 insertions(+), 11 deletions(-)
+
+commit da9d43171ba4ae0a78c92e9de83498fd2f513c8b
+Author: Bruce Mitchener <bruce.mitchener at gmail.com>
+Date:   Tue May 28 21:50:17 2019 +0700
+
+    Fix some typos.
+
+ docs/usermanual-clusters.xml        | 4 ++--
+ docs/usermanual-fonts-and-faces.xml | 2 +-
+ src/hb-ot-math.h                    | 2 +-
+ 3 files changed, 4 insertions(+), 4 deletions(-)
+
+commit 8a133718472d152fa1f69ec52862b019b71b371f
+Author: Ebrahim Byagowi <ebrahim at gnu.org>
+Date:   Tue May 28 13:54:45 2019 +0430
+
+    [test] minor, fix copyright
+    
+    nothing important, fixing a copy paste error inconsistency
+
+ test/api/test-aat-layout.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 13316ac5d435f11c2c65fd2d762841a819afb639
+Author: Ebrahim Byagowi <ebrahim at gnu.org>
+Date:   Tue May 28 13:48:39 2019 +0430
+
+    [test] minor style improve
+
+ test/subset/run-tests.py | 38 +++++++++++++++++++-------------------
+ 1 file changed, 19 insertions(+), 19 deletions(-)
+
+commit d64fb9db520d77eb7bb40ceda4e20be5e602bf91
+Author: David Corbett <corbett.dav at husky.neu.edu>
+Date:   Sun May 26 11:05:54 2019 -0400
+
+    [use] Allow U+1A60 TAI THAM SIGN SAKOT after vowel
+
+ src/gen-use-table.py                               |   7 +-
+ src/hb-ot-shape-complex-use-machine.hh             | 609 +++++++++++----------
+ src/hb-ot-shape-complex-use-machine.rl             |  20 +-
+ src/hb-ot-shape-complex-use-table.cc               |   4 +-
+ src/hb-ot-shape-complex-use.cc                     |   3 +
+ src/hb-ot-shape-complex-use.hh                     |   2 +
+ .../3cc01fede4debd4b7794ccb1b16cdb9987ea7571.ttf   | Bin 0 -> 1144 bytes
+ .../fd565cabd5208d345d0ed4fda7ae742917d846a5.ttf   | Bin 1056 -> 0 bytes
+ .../shaping/data/in-house/tests/use-syllable.tests |   5 +-
+ 9 files changed, 351 insertions(+), 299 deletions(-)
+
+commit 179570d4cae9aefcd91d540b8865a81d569b3358
+Author: Behdad Esfahbod <behdad at behdad.org>
+Date:   Mon May 27 13:08:07 2019 -0400
+
+    [atomic] Fix warning, second time
+    
+    Fixes https://bugzilla.mozilla.org/show_bug.cgi?id=1554306
+
+ src/hb-atomic.hh | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit ad17a8bdd571c7b275f9735e3602a8068f12934f
+Author: Behdad Esfahbod <behdad at behdad.org>
+Date:   Sat May 25 16:33:21 2019 -0400
+
+    [ucd] Update for latest packTab
+
+ src/gen-ucd-table.py | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+commit 771712b3ca97035ba5690e65bd7e63a852286159
+Author: Behdad Esfahbod <behdad at behdad.org>
+Date:   Sat May 25 15:58:45 2019 -0400
+
+    [ucd] Update for recent packTab
+    
+    No need for separate youseedy package.
+
+ src/gen-ucd-table.py | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+commit 52aa6c57c5a4b18807a1329549dface90b148f22
+Author: Ebrahim Byagowi <ebrahim at gnu.org>
+Date:   Sat May 25 22:55:06 2019 +0430
+
+    [ci] minor
+
+ .circleci/config.yml | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+commit 9b75da4299adb5487519ddf96e99949b1dad2d5c
+Author: Ebrahim Byagowi <ebrahim at gnu.org>
+Date:   Sat May 25 22:46:10 2019 +0430
+
+    [ci] minor
+
+ .circleci/config.yml | 2 ++
+ 1 file changed, 2 insertions(+)
+
+commit 9158cab3f9f9e1a4941c1dbf0aa71455ceb00da6
+Author: Ebrahim Byagowi <ebrahim at gnu.org>
+Date:   Sat May 25 22:33:02 2019 +0430
+
+    [ci] Store dist-win result instead
+
+ .circleci/config.yml | 11 +++++------
+ 1 file changed, 5 insertions(+), 6 deletions(-)
+
+commit 85b68a42af541bc91f2851389ac09b012a6d3aa1
+Author: Behdad Esfahbod <behdad at behdad.org>
+Date:   Sat May 25 12:59:01 2019 -0400
+
+    [atomic] Fix warnings
+    
+    https://bugzilla.mozilla.org/show_bug.cgi?id=1554306
+
+ src/hb-atomic.hh | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 941c1b6d711b8528d0f5faa5655b09ea74f7dfb4
+Author: Behdad Esfahbod <behdad at behdad.org>
+Date:   Sat May 25 12:52:16 2019 -0400
+
+    [mingw] Update instructions
+    
+    https://github.com/harfbuzz/harfbuzz/issues/1728
+
+ RELEASING.md | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 210f93c143d0fa2a7b293a6ffd138b3e01cab7c0
+Author: Behdad Esfahbod <behdad at behdad.org>
+Date:   Sat May 25 12:49:20 2019 -0400
+
+    [mutex] Prefer pthread over windows
+    
+    https://github.com/harfbuzz/harfbuzz/issues/1728
+
+ src/hb-mutex.hh | 22 +++++++++++-----------
+ 1 file changed, 11 insertions(+), 11 deletions(-)
+
+commit a5d1b0bdaa0183e2bd310640f5867426096e0b18
+Author: Behdad Esfahbod <behdad at behdad.org>
+Date:   Sat May 25 12:45:40 2019 -0400
+
+    Look for pthread even if win32
+    
+    https://github.com/harfbuzz/harfbuzz/issues/1728
+
+ configure.ac | 4 +---
+ 1 file changed, 1 insertion(+), 3 deletions(-)
+
+commit f3b132187fc734cbb3705b405361c8bad9a72582
+Author: Behdad Esfahbod <behdad at behdad.org>
+Date:   Sat May 25 12:42:38 2019 -0400
+
+    [mingw] Some more tweaks
+    
+    It now survives ./config.status --recheck as well.
+    
+    https://github.com/harfbuzz/harfbuzz/issues/1728
+
+ mingw-configure.sh | 37 ++++++++++++++++++-------------------
+ mingw32.sh         |  2 +-
+ mingw64.sh         |  2 +-
+ 3 files changed, 20 insertions(+), 21 deletions(-)
+
+commit c41ed54b169c16fb9862e88ddf127ae68c1561e9
+Author: Behdad Esfahbod <behdad at behdad.org>
+Date:   Sat May 25 12:35:09 2019 -0400
+
+    [mingw] Add "make dist-win" to toplevel Makefile
+
+ Makefile.am | 16 +++++++++++++---
+ 1 file changed, 13 insertions(+), 3 deletions(-)
+
+commit a0a75a7c701932f4533b104eeb3c6087d01aa2ae
+Author: Behdad Esfahbod <behdad at behdad.org>
+Date:   Sat May 25 12:16:28 2019 -0400
+
+    [mingw] More
+
+ Makefile.am        |  8 +++++++-
+ mingw-configure.sh | 29 +++++++++++++++++++++++++++++
+ mingw32.sh         | 25 ++-----------------------
+ mingw64.sh         | 25 ++-----------------------
+ 4 files changed, 40 insertions(+), 47 deletions(-)
+
+commit 309a9d8ffb499f89738864acef596685ca495150
+Author: Ebrahim Byagowi <ebrahim at gnu.org>
+Date:   Sat May 25 20:40:03 2019 +0430
+
+    [ci] Remove --without-icu now that we have it in ./mingw{32,64} scripts
+
+ .circleci/config.yml | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+commit ccfe642c0cdc9fbc8280669e3e8b01dc5eb682d8
+Author: Behdad Esfahbod <behdad at behdad.org>
+Date:   Sat May 25 12:08:05 2019 -0400
+
+    [mingw] Force off ICU
+    
+    If cross-compiled ICU is not available, we might end up finding the
+    native ICU via icu-config.  That's distracting.
+
+ mingw32.sh | 2 +-
+ mingw64.sh | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+commit 0e6b7f7cd51d7376f21a422881cb4eb542360b0b
+Author: Ebrahim Byagowi <ebrahim at gnu.org>
+Date:   Sat May 25 20:27:29 2019 +0430
+
+    [ci] Build mingw on Fedora and store .exe outputs
+
+ .circleci/config.yml | 16 ++++++++++++----
+ 1 file changed, 12 insertions(+), 4 deletions(-)
+
+commit 7b716cbbe6de2902ca6b1f67024b3f8cdb41340c
+Author: Behdad Esfahbod <behdad at behdad.org>
+Date:   Sat May 25 11:37:23 2019 -0400
+
+    [ming2] Update instructions
+    
+    Part of https://github.com/harfbuzz/harfbuzz/issues/1728
+    
+    Only left to write how to create a win32 bundle.
+
+ README.mingw.md | 44 ++++++++++++++++++++++++++------------------
+ RELEASING.md    | 54 ++++++------------------------------------------------
+ 2 files changed, 32 insertions(+), 66 deletions(-)
+
+commit 77a1b6b7c3bd5490ffa5bb48a8b52d9c4c18e669
+Author: Behdad Esfahbod <behdad at behdad.org>
+Date:   Sat May 25 11:18:40 2019 -0400
+
+    [mingw] Rename README.wine
+
+ Makefile.am                       | 2 +-
+ README.wine.md => README.mingw.md | 0
+ 2 files changed, 1 insertion(+), 1 deletion(-)
+
+commit c68b4264880c0f99bcb579345e51ce54e799655b
+Author: Behdad Esfahbod <behdad at behdad.org>
+Date:   Sat May 25 11:17:56 2019 -0400
+
+    [mingw] Update for recent change
+
+ README.wine.md | 2 +-
+ RELEASING.md   | 4 ++--
+ 2 files changed, 3 insertions(+), 3 deletions(-)
+
+commit 5cf2e648a67e1af20a23e010c86e8812a74ff7a4
+Author: Behdad Esfahbod <behdad at behdad.org>
+Date:   Sat May 25 11:15:15 2019 -0400
+
+    [mingw] Update for Fedora mingw installation location
+    
+    Also adds --with-uniscribe by default.
+    
+    Part of https://github.com/harfbuzz/harfbuzz/issues/1728
+
+ mingw32.sh | 9 +++++----
+ mingw64.sh | 9 +++++----
+ 2 files changed, 10 insertions(+), 8 deletions(-)
+
+commit e7ed85de95d3ccdb674ec5a30ae66d53cea74b3a
+Merge: f93a5e6a 97ba206b
+Author: n8willis <n8willis at users.noreply.github.com>
+Date:   Sat May 25 16:05:07 2019 +0100
+
+    Merge pull request #1691 from n8willis/usermanual-shaping
+    
+    Usermanual: Add new chapters.
+
+commit 97ba206bed341dc7c915a86531512b1e0617303d
+Author: Nathan Willis <nwillis at glyphography.com>
+Date:   Sat May 25 12:26:50 2019 +0100
+
+    Usermanual; minor.
+
+ ...usermanual-buffers-language-script-and-direction.xml |  2 +-
+ docs/usermanual-opentype-features.xml                   | 17 ++++++++++-------
+ 2 files changed, 11 insertions(+), 8 deletions(-)
+
+commit f93a5e6a7dad4fde2bf61c241bf32da678525c8b
+Author: Behdad Esfahbod <behdad at behdad.org>
+Date:   Fri May 24 17:02:38 2019 -0400
+
+    [win] Add mingw-ldd.py
+    
+    Part of https://github.com/harfbuzz/harfbuzz/issues/1728
+
+ mingw-ldd.py | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 1 file changed, 58 insertions(+)
+
 commit 5fd3ece5237ac6a4ee95b2665b5e20102ed176bb
 Author: Behdad Esfahbod <behdad at behdad.org>
 Date:   Fri May 24 15:56:15 2019 -0400
@@ -19,6 +485,15 @@
  src/hb-common.cc | 8 ++++----
  1 file changed, 4 insertions(+), 4 deletions(-)
 
+commit dd5ad6b6b5aed3db62bc03b89acf90c68795edb4
+Author: Nathan Willis <nwillis at glyphography.com>
+Date:   Fri May 24 20:30:22 2019 +0100
+
+    Usermanual-buffers-chapter: trim out fallback-of-ufuncs talk and just mention that stuff exists if you care to go find it.
+
+ docs/usermanual-buffers-language-script-and-direction.xml | 13 +++++++------
+ 1 file changed, 7 insertions(+), 6 deletions(-)
+
 commit e1a5ce6aa661251e998df7b3612a1d5d39e28827
 Author: Qunxin Liu <qxliu at google.com>
 Date:   Fri May 24 10:58:52 2019 -0700
@@ -33,6 +508,15 @@
  ...estcase-minimized-hb-subset-fuzzer-5761434614497280 | Bin 0 -> 532 bytes
  3 files changed, 1 insertion(+), 1 deletion(-)
 
+commit 240540ff9a463cf386ae5755471a5621b94290df
+Author: Nathan Willis <nwillis at glyphography.com>
+Date:   Fri May 24 20:13:35 2019 +0100
+
+    Usermanual-buffers-chapter: explain ICU fallback for Ufuncs.
+
+ docs/usermanual-buffers-language-script-and-direction.xml | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
 commit d100ccad02b038719472b2cc733940ffb0374cd1
 Author: David Corbett <corbett.dav at husky.neu.edu>
 Date:   Sun May 19 10:01:20 2019 -0400
@@ -1750,6 +2234,24 @@
  test/fuzzing/main.cc | 3 ++-
  1 file changed, 2 insertions(+), 1 deletion(-)
 
+commit a29b1de55abca2e90733caff7423e5251d72e03c
+Author: Nathan Willis <nwillis at glyphography.com>
+Date:   Sat May 11 20:56:55 2019 +0100
+
+    Usermanual, fix up userfeatures example code in OpenType features section of shaping chapter.
+
+ docs/usermanual-opentype-features.xml | 15 +++++++++++----
+ 1 file changed, 11 insertions(+), 4 deletions(-)
+
+commit 78fcb14db9041af0e0d5ea209cf0cb1977f6dcc3
+Author: Nathan Willis <nwillis at glyphography.com>
+Date:   Sat May 11 20:56:02 2019 +0100
+
+    Usermanual, minor: flesh out invisible-glyph discussion in buffers chapter.
+
+ ...ermanual-buffers-language-script-and-direction.xml | 19 +++++++++++++++----
+ 1 file changed, 15 insertions(+), 4 deletions(-)
+
 commit 25531a30394c451a7a2aee77928e0a550015b803
 Author: Ebrahim Byagowi <ebrahim at gnu.org>
 Date:   Sat May 11 19:50:42 2019 +0000
@@ -4265,6 +4767,52 @@
  src/hb-ot-shape-complex-myanmar.hh | 2 +-
  3 files changed, 5 insertions(+), 5 deletions(-)
 
+commit 68749e996aedbae9b1c4553f5672f74e1727b850
+Author: Nathan Willis <nwillis at glyphography.com>
+Date:   Tue Apr 30 17:23:55 2019 +0100
+
+    [Docs] Usermanual; update XML manifest for new chapters.
+
+ docs/Makefile.am       | 4 ++--
+ docs/harfbuzz-docs.xml | 4 ++--
+ 2 files changed, 4 insertions(+), 4 deletions(-)
+
+commit 30d7d1064ee339ca216699851030f9bae8c07c68
+Author: Nathan Willis <nwillis at glyphography.com>
+Date:   Tue Apr 30 17:23:19 2019 +0100
+
+    [Docs] Usermanual; add Utilities chapter.
+
+ docs/usermanual-utilities.xml | 244 ++++++++++++++++++++++++++++++++++++++++++
+ 1 file changed, 244 insertions(+)
+
+commit d0f5a05aef73293fe21ddb022084166a7a095862
+Author: Nathan Willis <nwillis at glyphography.com>
+Date:   Tue Apr 30 17:22:54 2019 +0100
+
+    [Docs] Usermanual; add Shaping, Features, and Plans.
+
+ docs/usermanual-opentype-features.xml | 279 +++++++++++++++++++++++++++++++++-
+ 1 file changed, 277 insertions(+), 2 deletions(-)
+
+commit 8354c99fbee2887cb71440f4e25ad1e6f46b2592
+Author: Nathan Willis <nwillis at glyphography.com>
+Date:   Tue Apr 30 17:22:08 2019 +0100
+
+    [Docs] Usermanual; add Fonts And Faces chapter.
+
+ docs/usermanual-fonts-and-faces.xml | 445 +++++++++++++++++++++++++++++++++++-
+ 1 file changed, 437 insertions(+), 8 deletions(-)
+
+commit 3b301c5ac6b15728f858cb6f5de8dfc6a77209fa
+Author: Nathan Willis <nwillis at glyphography.com>
+Date:   Tue Apr 30 17:21:33 2019 +0100
+
+    [Docs] Usermanual; fill out Buffers chapter.
+
+ ...anual-buffers-language-script-and-direction.xml | 358 +++++++++++++++++++--
+ 1 file changed, 335 insertions(+), 23 deletions(-)
+
 commit 6d9a86ae7535ea8e3c108a49c6da877a78cdac26
 Author: Nathan Willis <nwillis at glyphography.com>
 Date:   Tue Apr 30 16:09:01 2019 +0100

Modified: trunk/Build/source/libs/harfbuzz/harfbuzz-src/Makefile.am
===================================================================
--- trunk/Build/source/libs/harfbuzz/harfbuzz-src/Makefile.am	2019-05-31 23:32:35 UTC (rev 51282)
+++ trunk/Build/source/libs/harfbuzz/harfbuzz-src/Makefile.am	2019-06-01 08:54:42 UTC (rev 51283)
@@ -9,12 +9,18 @@
 EXTRA_DIST = \
 	autogen.sh \
 	harfbuzz.doap \
+	README.md \
+	README.mingw.md \
 	README.python.md \
-	README.wine.md \
 	BUILD.md \
 	RELEASING.md \
+	TESTING.md \
 	CMakeLists.txt \
 	replace-enum-strings.cmake \
+	mingw-configure.sh \
+	mingw-ldd.py \
+	mingw32.sh \
+	mingw64.sh \
 	$(NULL)
 
 MAINTAINERCLEANFILES = \
@@ -60,8 +66,6 @@
 	--enable-introspection \
 	$(NULL)
 
-# TODO: Copy infrastructure from cairo
-
 # TAR_OPTIONS is not set as env var for 'make dist'.  How to fix that?
 TAR_OPTIONS = --owner=0 --group=0
 
@@ -70,7 +74,6 @@
 dist-clear-sticky-bits:
 	chmod -R a-s $(distdir)
 
-
 tar_file = $(PACKAGE_TARNAME)-$(VERSION).tar.xz
 sha256_file = $(tar_file).sha256
 gpg_file = $(sha256_file).asc
@@ -82,5 +85,18 @@
 
 release-files: $(tar_file) $(sha256_file) $(gpg_file)
 
+dist-win:
+	@case $(host_triplet) in *-w64-mingw32) ;; *) echo "Error: Requires mingw build. See README.mingw.md.">&2; exit 1 ;; esac
+	@DIR=$(PACKAGE_TARNAME)-$(VERSION)-win`case $(host_triplet) in i686-*) echo 32 ;; x86_64-*) echo 64 ;; esac`; \
+	$(RM) -r $$DIR; $(MKDIR_P) $$DIR || exit 1; \
+	cp util/.libs/hb-{shape,view,subset}.exe $$DIR && \
+	$(top_srcdir)/mingw-ldd.py $$DIR/hb-view.exe | grep -v 'not found' | cut -d '>' -f 2 | xargs cp -t $$DIR && \
+	cp src/.libs/libharfbuzz{,-subset}-0.dll $$DIR && \
+	chmod a+x $$DIR/*.{exe,dll} && \
+	$(STRIP) $$DIR/*.{exe,dll} && \
+	zip -r $$DIR.zip $$DIR && \
+	$(RM) -r $$DIR && \
+	echo "$$DIR.zip is ready."
 
+
 -include $(top_srcdir)/git.mk

Modified: trunk/Build/source/libs/harfbuzz/harfbuzz-src/NEWS
===================================================================
--- trunk/Build/source/libs/harfbuzz/harfbuzz-src/NEWS	2019-05-31 23:32:35 UTC (rev 51282)
+++ trunk/Build/source/libs/harfbuzz/harfbuzz-src/NEWS	2019-06-01 08:54:42 UTC (rev 51283)
@@ -1,3 +1,14 @@
+Overview of changes leading to 2.5.1
+Friday, May 31, 2019
+====================================
+- Fix build with various versions of Visual Studio.
+- Improved documentation, thanks to Nathan Willis.
+- Bugfix in subsetting glyf table.
+- Improved scripts for cross-compiling for Windows using mingw.
+- Rename HB_MATH_GLYPH_PART_FLAG_EXTENDER to HB_OT_MATH_GLYPH_PART_FLAG_EXTENDER.
+  A deprecated macro is added for backwards-compatibility.
+
+
 Overview of changes leading to 2.5.0
 Friday, May 24, 2019
 ====================================

Added: trunk/Build/source/libs/harfbuzz/harfbuzz-src/README.md
===================================================================
--- trunk/Build/source/libs/harfbuzz/harfbuzz-src/README.md	                        (rev 0)
+++ trunk/Build/source/libs/harfbuzz/harfbuzz-src/README.md	2019-06-01 08:54:42 UTC (rev 51283)
@@ -0,0 +1,22 @@
+[![Travis Build Status](https://travis-ci.org/harfbuzz/harfbuzz.svg?branch=master)](https://travis-ci.org/harfbuzz/harfbuzz)
+[![AppVeyor Build Status](https://ci.appveyor.com/api/projects/status/0t0flrxpstj9lb9w?svg=true&branch=master)](https://ci.appveyor.com/project/harfbuzz/harfbuzz)
+[![CircleCI Build Status](https://circleci.com/gh/harfbuzz/harfbuzz/tree/master.svg?style=svg)](https://circleci.com/gh/harfbuzz/harfbuzz/tree/master)
+[![Coverity Code Health](https://img.shields.io/coverity/scan/5450.svg)](https://scan.coverity.com/projects/behdad-harfbuzz)
+[![Codacy Code Health](https://api.codacy.com/project/badge/Grade/f17f1708783c447488bc8dd317150eaa)](https://app.codacy.com/app/behdad/harfbuzz)
+[![Codecov Code Coverage](https://codecov.io/gh/harfbuzz/harfbuzz/branch/master/graph/badge.svg)](https://codecov.io/gh/harfbuzz/harfbuzz)
+[![Coverals Code Coverage](https://img.shields.io/coveralls/harfbuzz/harfbuzz.svg)](https://coveralls.io/r/harfbuzz/harfbuzz)
+[ABI Tracker](http://abi-laboratory.pro/tracker/timeline/harfbuzz/)
+
+This is HarfBuzz, a text shaping library.
+
+For bug reports, mailing list, and other information please visit:
+
+  http://harfbuzz.org/
+
+For license information, see [COPYING](COPYING).
+
+For build information, see [BUILD.md](BUILD.md).
+
+For test execution, see [TESTING.md](TESTING.md).
+
+Documentation: https://harfbuzz.github.io

Added: trunk/Build/source/libs/harfbuzz/harfbuzz-src/README.mingw.md
===================================================================
--- trunk/Build/source/libs/harfbuzz/harfbuzz-src/README.mingw.md	                        (rev 0)
+++ trunk/Build/source/libs/harfbuzz/harfbuzz-src/README.mingw.md	2019-06-01 08:54:42 UTC (rev 51283)
@@ -0,0 +1,48 @@
+For the development of HarfBuzz, the Microsoft shaping technology, Uniscribe,
+as a widely used and tested shaper is used as more-or-less OpenType reference
+implementation and that specially is important where OpenType specification
+is or wasn't that clear. For having access to Uniscribe on Linux/macOS these
+steps are recommended:
+
+1. Install Wine from your favorite package manager.  On Fedora that's `dnf install wine`.
+
+2. And `mingw-w64` compiler.
+   With `brew` on macOS, you can have it like `brew install mingw-w64`.
+   On Fedora, with `dnf install mingw32-gcc-c++`, or `dnf install mingw64-gcc-c++` for the
+   64-bit Windows.
+
+3. Install cross-compiled dependency packages.  Alternatively see [^1] below.
+   On Fedora that would be `dnf install mingw32-glib2 mingw32-cairo mingw32-freetype`
+   for 32-bit, or `dnf install mingw64-glib2 mingw64-cairo mingw64-freetype` for 64-bit.
+
+5. `NOCONFIGURE=1 ./autogen.sh && mkdir winbuild && cd winbuild`
+
+6. Run `../mingw32.sh` for 32-bit build, or `../mingw64.sh` for 64-bit.  This configures
+   HarfBuzz for cross-compiling.  It enables Uniscribe backend as well.
+
+7. `make`
+
+Now you can use hb-shape using `wine util/hb-shape.exe` but if you like to shape with
+the Microsoft Uniscribe,
+
+8. Bring a 32bit version of `usp10.dll` for yourself from `C:\Windows\SysWOW64\usp10.dll` of your
+   Windows installation (assuming you have a 64-bit installation, otherwise
+   `C:\Windows\System32\usp10.dll`) that it is not a DirectWrite proxy
+   ([for more info](https://en.wikipedia.org/wiki/Uniscribe)).
+   Rule of thumb, your `usp10.dll` should have a size more than 500kb, otherwise
+   it is designed to work with DirectWrite which Wine can't work with its original one.
+   You want a Uniscribe from Windows 7 or older.
+
+   Put the DLL in the folder you are going to run the next command,
+
+9. `WINEDLLOVERRIDES="usp10=n" wine util/hb-shape.exe fontname.ttf -u 0061,0062,0063 --shaper=uniscribe`
+
+(`0061,0062,0063` means `abc`, use test/shaping/hb-unicode-decode to generate ones you need)
+
+
+[^1] Download and put [this](https://drive.google.com/open?id=0B3_fQkxDZZXXbWltRGd5bjVrUDQ)
+     in your `~/.local/i686-w64-mingw32`.  Then replace all the instances of
+     `/home/behdad/.local/i586-mingw32msvc` and `/home/behdad/.local/i686-w64-mingw32`
+     with `<$HOME>/.local/i686-w64-mingw32` on that folder.
+     (`<$HOME>` replace it with `/home/XXX` or `/Users/XXX` on macOS)
+     You shouldn't replace the instances of those inside binary files.

Deleted: trunk/Build/source/libs/harfbuzz/harfbuzz-src/README.wine.md
===================================================================
--- trunk/Build/source/libs/harfbuzz/harfbuzz-src/README.wine.md	2019-05-31 23:32:35 UTC (rev 51282)
+++ trunk/Build/source/libs/harfbuzz/harfbuzz-src/README.wine.md	2019-06-01 08:54:42 UTC (rev 51283)
@@ -1,40 +0,0 @@
-For the development of HarfBuzz, the Microsoft shaping technology, Uniscribe,
-as a widely used and tested shaper is used as more-or-less OpenType reference
-implementation and that specially is important where OpenType specification
-is or wasn't that clear. For having access to Uniscribe on Linux/macOS these
-steps are recommended:
-
-1. Install Wine from your favorite package manager.
-
-2. And `mingw-w64` compiler.
-   With `brew` on macOS, you can have it like `brew install mingw-w64`
-
-3. Download and put [this](https://drive.google.com/open?id=0B3_fQkxDZZXXbWltRGd5bjVrUDQ)
-   on your `~/.local/i686-w64-mingw32`.
-
-4. Replace all the instances of `/home/behdad/.local/i586-mingw32msvc`
-   and `/home/behdad/.local/i686-w64-mingw32` with `<$HOME>/.local/i686-w64-mingw32`
-   on that folder. (`<$HOME>` replace it with `/home/XXX` or `/Users/XXX` on macOS)
-
-   Probably you shouldn't replace the ones are inside binaries.
-
-5. `NOCONFIGURE=1 ./autogen.sh && mkdir winbuild && cd winbuild`
-
-6. `../mingw32.sh --with-uniscribe && cd ..`
-
-7. `make -Cwinbuild`
-
-Now you can use hb-shape using `wine winbuild/util/hb-shape.exe` but if you like to
-to use the original Uniscribe,
-
-8. Bring a 32bit version of `usp10.dll` for yourself from `C:\Windows\SysWOW64\usp10.dll` of your
-   Windows installation (assuming you have a 64-bit installation, otherwise `C:\Windows\System32\usp10.dll`)
-   that it is not a DirectWrite proxy ([for more info](https://en.wikipedia.org/wiki/Uniscribe)).
-   Rule of thumb, your `usp10.dll` should have a size more than 500kb, otherwise
-   it is designed to work with DirectWrite which Wine can't work with its original one.
-
-   Put the dll on the folder you are going to run the next command,
-
-9. `WINEDLLOVERRIDES="usp10=n" wine winbuild/util/hb-shape.exe fontname.ttf -u 0061,0062,0063 --shaper=uniscribe`
-
-(`0061,0062,0063` means `abc`, use test/shaping/hb-unicode-decode to generate ones you need)

Modified: trunk/Build/source/libs/harfbuzz/harfbuzz-src/RELEASING.md
===================================================================
--- trunk/Build/source/libs/harfbuzz/harfbuzz-src/RELEASING.md	2019-05-31 23:32:35 UTC (rev 51282)
+++ trunk/Build/source/libs/harfbuzz/harfbuzz-src/RELEASING.md	2019-06-01 08:54:42 UTC (rev 51283)
@@ -46,27 +46,21 @@
 
 10. Build win32 bundle.
 
-   a. Put contents of [this](https://drive.google.com/open?id=0B3_fQkxDZZXXbWltRGd5bjVrUDQ) on your `~/.local/i686-w64-mingw32`,
+   a. Build Win32 binaries.  See [README.mingw.md](README.mingw.md).
 
-   b. Run `../mingw32.sh --with-uniscribe` script to configure harfbuzz with mingw
-   in a subdirector (eg. winbuild/),
+   b. Run "make dist-win" to build Win32 bundle.
 
-   c. make
-
-   d. Back in the parent directory, run `./UPDATE.sh`(available below) to build win32
-      bundle.
-
 11. Copy all artefacts to users.freedesktop.org and move them into
     `/srv/www.freedesktop.org/www/software/harfbuzz/release` There should be four
     files.  Eg.:
  ```
--rw-r--r--  1 behdad eng 1592693 Jul 18 11:25 harfbuzz-1.4.7.tar.bz2
--rw-r--r--  1 behdad eng      89 Jul 18 11:34 harfbuzz-1.4.7.tar.bz2.sha256
--rw-r--r--  1 behdad eng     339 Jul 18 11:34 harfbuzz-1.4.7.tar.bz2.sha256.asc
+-rw-r--r--  1 behdad eng 1592693 Jul 18 11:25 harfbuzz-1.4.7.tar.xz
+-rw-r--r--  1 behdad eng      89 Jul 18 11:34 harfbuzz-1.4.7.tar.xz.sha256
+-rw-r--r--  1 behdad eng     339 Jul 18 11:34 harfbuzz-1.4.7.tar.xz.sha256.asc
 -rw-r--r--  1 behdad eng 2895619 Jul 18 11:34 harfbuzz-1.4.7-win32.zip
 ```
 
-12. While doing that, quickly double-check the size of the .tar.bz2 and .zip
+12. While doing that, quickly double-check the size of the .tar.xz and .zip
     files against their previous releases to make sure nothing bad happened.
     They should be in the ballpark, perhaps slightly larger.  Sometimes they
     do shrink, that's not by itself a stopper.
@@ -76,39 +70,3 @@
 
 14. Go to GitHub release page [here](https://github.com/harfbuzz/harfbuzz/releases),
     edit the tag, upload artefacts and NEWS entry and save.
-
-
-## UPDATE.sh
-```bash
-#!/bin/bash
-
-v=$1
-
-if test "x$v" = x; then
-	echo "usage: UPDATE.sh micro-version"
-	exit 1
-fi
-
-dir_prefix=harfbuzz-1.4.
-dir_suffix=-win32
-dir=$dir_prefix$v$dir_suffix
-dir_old=$dir_prefix$((v-1))$dir_suffix
-if test -d "$dir"; then
-	echo "New dir $dir exists; not overwriting"
-	exit 1
-fi
-if ! test -d "$dir_old"; then
-	echo "Old dir $dir_old does NOT exist; aborting"
-	exit 1
-fi
-set -ex
-cp -a "$dir_old" "$dir.tmp"
-rm -f "$dir.tmp"/GDX32.dll
-rm -f "$dir.tmp"/usp10.dll
-cp ../winbuild/src/.libs/libharfbuzz-0.dll{,.def} $dir.tmp/
-cp ../winbuild/util/.libs/hb-{shape,view}.exe $dir.tmp/
-i686-w64-mingw32-strip $dir.tmp/{hb-shape.exe,hb-view.exe,libharfbuzz-0.dll}
-mv $dir.tmp $dir
-zip -r $dir.zip $dir
-echo Bundle $dir.zip ready
-```

Added: trunk/Build/source/libs/harfbuzz/harfbuzz-src/TESTING.md
===================================================================
--- trunk/Build/source/libs/harfbuzz/harfbuzz-src/TESTING.md	                        (rev 0)
+++ trunk/Build/source/libs/harfbuzz/harfbuzz-src/TESTING.md	2019-06-01 08:54:42 UTC (rev 51283)
@@ -0,0 +1,75 @@
+## Build & Run
+
+Depending on what area you are working in change or add `HB_DEBUG_<whatever>`.
+Values defined in `hb-debug.hh`.
+
+```shell
+# quick sanity check
+time (make -j4 CPPFLAGS='-DHB_DEBUG_SUBSET=100' \
+  && (make -j4 -C test/api check || cat test/api/test-suite.log))
+
+# slower sanity check
+time (make -j4 CPPFLAGS='-DHB_DEBUG_SUBSET=100' \
+   && make -j4 -C src check \
+   && make -j4 -C test/api check \
+   && make -j4 -C test/subset check)
+
+# confirm you didn't break anything else
+time (make -j4 CPPFLAGS='-DHB_DEBUG_SUBSET=100' \
+  && make -j4 check)
+
+# often catches files you didn't add, e.g. test fonts to EXTRA_DIST
+make distcheck
+```
+
+### Run tests with asan
+
+**NOTE**: this sometimes yields harder to read results than the full fuzzer
+
+```shell
+# For nice symbols tell asan how to symoblize. Note that it doesn't like versioned copies like llvm-symbolizer-3.8
+# export ASAN_SYMBOLIZER_PATH=path to version-less llvm-symbolizer
+# ex
+export ASAN_SYMBOLIZER_PATH=/usr/lib/llvm-3.8/bin/llvm-symbolizer
+
+./configure CC=clang CXX=clang++ CPPFLAGS=-fsanitize=address LDFLAGS=-fsanitize=address
+# make/run tests as usual
+```
+
+### Debug with GDB
+
+```
+cd ./util
+../libtool --mode=execute gdb --args ./hb-subset ...
+```
+
+### Enable Debug Logging
+
+```shell
+# make clean if you previously build w/o debug logging
+make CPPFLAGS=-DHB_DEBUG_SUBSET=100
+```
+
+## Build and Test via CMake
+
+Note: You'll need to first install ninja-build via apt-get.
+
+```shell
+cd harfbuzz
+mkdir buid
+cmake -DHB_CHECK=ON -Bbuild -H. -GNinja && ninja -Cbuild && CTEST_OUTPUT_ON_FAILURE=1 ninja -Cbuild test
+```
+## Test with the Fuzzer
+
+```shell
+# push your changs to a branch on googlefonts/harfbuzz
+# In a local copy of oss-fuzz, edit projects/harfbuzz/Dockerfile
+# Change the git clone to pull your branch
+
+# Do this periodically
+sudo python infra/helper.py build_image harfbuzz
+
+# Do these to update/run
+sudo python infra/helper.py build_fuzzers --sanitizer address harfbuzz
+sudo python infra/helper.py run_fuzzer harfbuzz hb-subset-fuzzer
+```

Modified: trunk/Build/source/libs/harfbuzz/harfbuzz-src/configure.ac
===================================================================
--- trunk/Build/source/libs/harfbuzz/harfbuzz-src/configure.ac	2019-05-31 23:32:35 UTC (rev 51282)
+++ trunk/Build/source/libs/harfbuzz/harfbuzz-src/configure.ac	2019-06-01 08:54:42 UTC (rev 51283)
@@ -1,6 +1,6 @@
 AC_PREREQ([2.64])
 AC_INIT([HarfBuzz],
-        [2.5.0],
+        [2.5.1],
         [https://github.com/harfbuzz/harfbuzz/issues/new],
         [harfbuzz],
         [http://harfbuzz.org/])
@@ -134,9 +134,7 @@
 AM_CONDITIONAL(OS_WIN32, test "$hb_os_win32" = "yes")
 
 have_pthread=false
-if test "$hb_os_win32" = no; then
-	AX_PTHREAD([have_pthread=true])
-fi
+AX_PTHREAD([have_pthread=true])
 if $have_pthread; then
 	AC_DEFINE(HAVE_PTHREAD, 1, [Have POSIX threads])
 fi

Added: trunk/Build/source/libs/harfbuzz/harfbuzz-src/mingw-configure.sh
===================================================================
--- trunk/Build/source/libs/harfbuzz/harfbuzz-src/mingw-configure.sh	                        (rev 0)
+++ trunk/Build/source/libs/harfbuzz/harfbuzz-src/mingw-configure.sh	2019-06-01 08:54:42 UTC (rev 51283)
@@ -0,0 +1,28 @@
+#!/bin/sh
+
+case $1 in
+	i686 | x86_64) ;;
+	*) echo "Usage: $0 i686|x86_64" >&2; exit 1 ;;
+esac
+
+target=$1-w64-mingw32
+shift
+
+exec "$(dirname "$0")"/configure \
+	--build=`../config.guess` \
+	--host=$target \
+	--prefix=$HOME/.local/$target \
+	CC= \
+	CXX= \
+	CPP= \
+	LD= \
+	CFLAGS="-static-libgcc" \
+	CXXFLAGS="-static-libgcc -static-libstdc++" \
+	CPPFLAGS="-I$HOME/.local/$target/include" \
+	LDFLAGS=-L$HOME/.local/$target/lib \
+	PKG_CONFIG_LIBDIR=$HOME/.local/$target/lib/pkgconfig:/usr/$target/sys-root/mingw/lib/pkgconfig/ \
+	PKG_CONFIG_PATH=$HOME/.local/$target/share/pkgconfig:/usr/$target/sys-root/mingw/share/pkgconfig/ \
+	PATH=$HOME/.local/$target/bin:/usr/$target/sys-root/mingw/bin:/usr/$target/bin:$PATH \
+	--without-icu \
+	--with-uniscribe \
+	"$@"


Property changes on: trunk/Build/source/libs/harfbuzz/harfbuzz-src/mingw-configure.sh
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+LF
\ No newline at end of property
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/Build/source/libs/harfbuzz/harfbuzz-src/mingw-ldd.py
===================================================================
--- trunk/Build/source/libs/harfbuzz/harfbuzz-src/mingw-ldd.py	                        (rev 0)
+++ trunk/Build/source/libs/harfbuzz/harfbuzz-src/mingw-ldd.py	2019-06-01 08:54:42 UTC (rev 51283)
@@ -0,0 +1,58 @@
+#!/usr/bin/env python
+
+# Copied from https://github.com/xantares/mingw-ldd/blob/master/mingw-ldd.py
+# Modified to point to right prefix location on Fedora.
+
+# WTFPL - Do What the Fuck You Want to Public License
+from __future__ import print_function
+import pefile
+import os
+import sys
+
+
+def get_dependency(filename):
+    deps = []
+    pe = pefile.PE(filename)
+    for imp in pe.DIRECTORY_ENTRY_IMPORT:
+        deps.append(imp.dll.decode())
+    return deps
+
+
+def dep_tree(root, prefix=None):
+    if not prefix:
+        arch = get_arch(root)
+        #print('Arch =', arch)
+        prefix = '/usr/'+arch+'-w64-mingw32/sys-root/mingw/bin'
+        #print('Using default prefix', prefix)
+    dep_dlls = dict()
+
+    def dep_tree_impl(root, prefix):
+        for dll in get_dependency(root):
+            if dll in dep_dlls:
+                continue
+            full_path = os.path.join(prefix, dll)
+            if os.path.exists(full_path):
+                dep_dlls[dll] = full_path
+                dep_tree_impl(full_path, prefix=prefix)
+            else:
+                dep_dlls[dll] = 'not found'
+
+    dep_tree_impl(root, prefix)
+    return (dep_dlls)
+
+
+def get_arch(filename):
+    type2arch= {pefile.OPTIONAL_HEADER_MAGIC_PE: 'i686',
+                pefile.OPTIONAL_HEADER_MAGIC_PE_PLUS: 'x86_64'}
+    pe = pefile.PE(filename)
+    try:
+        return type2arch[pe.PE_TYPE]
+    except KeyError:
+        sys.stderr.write('Error: unknown architecture')
+        sys.exit(1)
+
+if __name__ == '__main__':
+    filename = sys.argv[1]
+    for dll, full_path in dep_tree(filename).items():
+        print(' ' * 7, dll, '=>', full_path)
+

Added: trunk/Build/source/libs/harfbuzz/harfbuzz-src/mingw32.sh
===================================================================
--- trunk/Build/source/libs/harfbuzz/harfbuzz-src/mingw32.sh	                        (rev 0)
+++ trunk/Build/source/libs/harfbuzz/harfbuzz-src/mingw32.sh	2019-06-01 08:54:42 UTC (rev 51283)
@@ -0,0 +1,2 @@
+#!/bin/sh
+exec "$(dirname "$0")"/mingw-configure.sh i686 "$@"


Property changes on: trunk/Build/source/libs/harfbuzz/harfbuzz-src/mingw32.sh
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+LF
\ No newline at end of property
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/Build/source/libs/harfbuzz/harfbuzz-src/mingw64.sh
===================================================================
--- trunk/Build/source/libs/harfbuzz/harfbuzz-src/mingw64.sh	                        (rev 0)
+++ trunk/Build/source/libs/harfbuzz/harfbuzz-src/mingw64.sh	2019-06-01 08:54:42 UTC (rev 51283)
@@ -0,0 +1,2 @@
+#!/bin/sh
+exec "$(dirname "$0")"/mingw-configure.sh x86_64 "$@"


Property changes on: trunk/Build/source/libs/harfbuzz/harfbuzz-src/mingw64.sh
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+LF
\ No newline at end of property
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Modified: trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/gen-ucd-table.py
===================================================================
--- trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/gen-ucd-table.py	2019-05-31 23:32:35 UTC (rev 51282)
+++ trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/gen-ucd-table.py	2019-06-01 08:54:42 UTC (rev 51283)
@@ -10,11 +10,11 @@
 
 
 # https://github.com/harfbuzz/packtab
-# https://github.com/harfbuzz/youseedy
-import youseedy, packTab
+import packTab
+import packTab.ucdxml
 
-ucdxml = youseedy.load_ucdxml(sys.argv[1])
-ucd = youseedy.ucdxml_get_repertoire(ucdxml)
+ucdxml = packTab.ucdxml.load_ucdxml(sys.argv[1])
+ucd = packTab.ucdxml.ucdxml_get_repertoire(ucdxml)
 
 
 gc = [u['gc'] for u in ucd]
@@ -88,9 +88,9 @@
 print()
 
 code = packTab.Code('_hb_ucd')
-sc_array, _, _ = code.addArray('hb_script_t', 'sc_map', sc_array)
-dm1_array, _, _ = code.addArray('hb_codepoint_t', 'dm1_map', dm1_array)
-dm2_array, _, _ = code.addArray('uint64_t', 'dm2_map', dm2_array)
+sc_array, _ = code.addArray('hb_script_t', 'sc_map', sc_array)
+dm1_array, _ = code.addArray('hb_codepoint_t', 'dm1_map', dm1_array)
+dm2_array, _ = code.addArray('uint64_t', 'dm2_map', dm2_array)
 code.print_c(linkage='static inline')
 
 for compression in (DEFAULT, COMPACT):

Modified: trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/gen-use-table.py
===================================================================
--- trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/gen-use-table.py	2019-05-31 23:32:35 UTC (rev 51282)
+++ trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/gen-use-table.py	2019-06-01 08:54:42 UTC (rev 51283)
@@ -214,7 +214,9 @@
 def is_CONS_WITH_STACKER(U, UISC, UGC):
 	return UISC == Consonant_With_Stacker
 def is_HALANT(U, UISC, UGC):
-	return UISC in [Virama, Invisible_Stacker] and not is_HALANT_OR_VOWEL_MODIFIER(U, UISC, UGC)
+	return (UISC in [Virama, Invisible_Stacker]
+		and not is_HALANT_OR_VOWEL_MODIFIER(U, UISC, UGC)
+		and not is_SAKOT(U, UISC, UGC))
 def is_HALANT_OR_VOWEL_MODIFIER(U, UISC, UGC):
 	# https://github.com/harfbuzz/harfbuzz/issues/1102
 	# https://github.com/harfbuzz/harfbuzz/issues/1379
@@ -240,6 +242,8 @@
 	return UGC == 'Cn'
 def is_REPHA(U, UISC, UGC):
 	return UISC in [Consonant_Preceding_Repha, Consonant_Prefixed]
+def is_SAKOT(U, UISC, UGC):
+	return U == 0x1A60
 def is_SYM(U, UISC, UGC):
 	if U == 0x25CC: return False #SPEC-DRAFT
 	#SPEC-DRAFT return UGC in [So, Sc] or UISC == Symbol_Letter
@@ -279,6 +283,7 @@
 	'Rsv':	is_Reserved,
 	'R':	is_REPHA,
 	'S':	is_SYM,
+	'Sk':	is_SAKOT,
 	'SM':	is_SYM_MOD,
 	'VS':	is_VARIATION_SELECTOR,
 	'V':	is_VOWEL,

Modified: trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-algs.hh
===================================================================
--- trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-algs.hh	2019-05-31 23:32:35 UTC (rev 51282)
+++ trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-algs.hh	2019-06-01 08:54:42 UTC (rev 51283)
@@ -167,10 +167,21 @@
 auto hb_partial (Appl&& a, V&& v) HB_AUTO_RETURN
 (( hb_partial_t<Pos, Appl, V> (a, v) ))
 
+/* The following hacky replacement version is to make Visual Stuiod build:. */ \
+/* https://github.com/harfbuzz/harfbuzz/issues/1730 */ \
+#ifdef _MSC_VER
 #define HB_PARTIALIZE(Pos) \
   template <typename _T> \
-  auto operator () (_T&& _v) const HB_AUTO_RETURN (hb_partial<Pos> (this, hb_forward<_T> (_v))) \
+  decltype(auto) operator () (_T&& _v) const \
+  { return hb_partial<Pos> (this, hb_forward<_T> (_v)); } \
   static_assert (true, "")
+#else
+#define HB_PARTIALIZE(Pos) \
+  template <typename _T> \
+  auto operator () (_T&& _v) const HB_AUTO_RETURN \
+  (hb_partial<Pos> (this, hb_forward<_T> (_v))) \
+  static_assert (true, "")
+#endif
 
 
 struct
@@ -807,7 +818,7 @@
   static constexpr bool passthru_left = false;
   static constexpr bool passthru_right = false;
   template <typename T> auto
-   operator () (const T &a, const T &b) const HB_AUTO_RETURN (a & b)
+  operator () (const T &a, const T &b) const HB_AUTO_RETURN (a & b)
 }
 HB_FUNCOBJ (hb_bitwise_and);
 struct hb_bitwise_or
@@ -815,7 +826,7 @@
   static constexpr bool passthru_left = true;
   static constexpr bool passthru_right = true;
   template <typename T> auto
-   operator () (const T &a, const T &b) const HB_AUTO_RETURN (a | b)
+  operator () (const T &a, const T &b) const HB_AUTO_RETURN (a | b)
 }
 HB_FUNCOBJ (hb_bitwise_or);
 struct hb_bitwise_xor
@@ -823,7 +834,7 @@
   static constexpr bool passthru_left = true;
   static constexpr bool passthru_right = true;
   template <typename T> auto
-   operator () (const T &a, const T &b) const HB_AUTO_RETURN (a ^ b)
+  operator () (const T &a, const T &b) const HB_AUTO_RETURN (a ^ b)
 }
 HB_FUNCOBJ (hb_bitwise_xor);
 struct hb_bitwise_sub
@@ -831,7 +842,7 @@
   static constexpr bool passthru_left = true;
   static constexpr bool passthru_right = false;
   template <typename T> auto
-   operator () (const T &a, const T &b) const HB_AUTO_RETURN (a & ~b)
+  operator () (const T &a, const T &b) const HB_AUTO_RETURN (a & ~b)
 }
 HB_FUNCOBJ (hb_bitwise_sub);
 

Modified: trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-atomic.hh
===================================================================
--- trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-atomic.hh	2019-05-31 23:32:35 UTC (rev 51282)
+++ trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-atomic.hh	2019-06-01 08:54:42 UTC (rev 51283)
@@ -216,7 +216,7 @@
 
 #define HB_ATOMIC_INT_NIL 1 /* Warn that fallback implementation is in use. */
 
-#define _hb_memory_barrier()
+#define _hb_memory_barrier()			do {} while (0)
 
 #define hb_atomic_int_impl_add(AI, V)		((*(AI) += (V)) - (V))
 
@@ -227,7 +227,7 @@
 
 #define hb_atomic_int_impl_add(AI, V)		((*(AI) += (V)) - (V))
 
-#define _hb_memory_barrier()
+#define _hb_memory_barrier()			do {} while (0)
 
 #define hb_atomic_ptr_impl_cmpexch(P,O,N)	(* (void **) (P) == (void *) (O) ? (* (void **) (P) = (void *) (N), true) : false)
 

Modified: trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-mutex.hh
===================================================================
--- trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-mutex.hh	2019-05-31 23:32:35 UTC (rev 51282)
+++ trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-mutex.hh	2019-06-01 08:54:42 UTC (rev 51283)
@@ -48,6 +48,17 @@
 /* Defined externally, i.e. in config.h; must have typedef'ed hb_mutex_impl_t as well. */
 
 
+#elif !defined(HB_NO_MT) && (defined(HAVE_PTHREAD) || defined(__APPLE__))
+
+#include <pthread.h>
+typedef pthread_mutex_t hb_mutex_impl_t;
+#define HB_MUTEX_IMPL_INIT	PTHREAD_MUTEX_INITIALIZER
+#define hb_mutex_impl_init(M)	pthread_mutex_init (M, nullptr)
+#define hb_mutex_impl_lock(M)	pthread_mutex_lock (M)
+#define hb_mutex_impl_unlock(M)	pthread_mutex_unlock (M)
+#define hb_mutex_impl_finish(M)	pthread_mutex_destroy (M)
+
+
 #elif !defined(HB_NO_MT) && defined(_WIN32)
 
 #include <windows.h>
@@ -63,17 +74,6 @@
 #define hb_mutex_impl_finish(M)	DeleteCriticalSection (M)
 
 
-#elif !defined(HB_NO_MT) && (defined(HAVE_PTHREAD) || defined(__APPLE__))
-
-#include <pthread.h>
-typedef pthread_mutex_t hb_mutex_impl_t;
-#define HB_MUTEX_IMPL_INIT	PTHREAD_MUTEX_INITIALIZER
-#define hb_mutex_impl_init(M)	pthread_mutex_init (M, nullptr)
-#define hb_mutex_impl_lock(M)	pthread_mutex_lock (M)
-#define hb_mutex_impl_unlock(M)	pthread_mutex_unlock (M)
-#define hb_mutex_impl_finish(M)	pthread_mutex_destroy (M)
-
-
 #elif !defined(HB_NO_MT) && defined(HAVE_INTEL_ATOMIC_PRIMITIVES)
 
 #if defined(HAVE_SCHED_H) && defined(HAVE_SCHED_YIELD)

Modified: trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-open-type.hh
===================================================================
--- trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-open-type.hh	2019-05-31 23:32:35 UTC (rev 51282)
+++ trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-open-type.hh	2019-06-01 08:54:42 UTC (rev 51283)
@@ -298,10 +298,14 @@
   }
 
   template <typename ...Ts>
-  bool serialize_subset (hb_subset_context_t *c, const Type &src, const void *base, Ts&&... ds)
+  bool serialize_subset (hb_subset_context_t *c,
+			 const OffsetTo& src,
+			 const void *src_base,
+			 const void *dst_base,
+			 Ts&&... ds)
   {
     *this = 0;
-    if (has_null && &src == _hb_has_null<Type, has_null>::get_null ())
+    if (src.is_null ())
       return false;
 
     auto *s = c->serializer;
@@ -308,10 +312,10 @@
 
     s->push ();
 
-    bool ret = c->dispatch (src, hb_forward<Ts> (ds)...);
+    bool ret = c->dispatch (src_base+src, hb_forward<Ts> (ds)...);
 
     if (ret || !has_null)
-      s->add_link (*this, s->pop_pack (), base);
+      s->add_link (*this, s->pop_pack (), dst_base);
     else
       s->pop_discard ();
 
@@ -320,17 +324,21 @@
 
   /* TODO: Somehow merge this with previous function into a serialize_dispatch(). */
   template <typename ...Ts>
-  bool serialize_copy (hb_serialize_context_t *c, const Type &src, const void *base, Ts&&... ds)
+  bool serialize_copy (hb_serialize_context_t *c,
+		       const OffsetTo& src,
+		       const void *src_base,
+		       const void *dst_base,
+		       Ts&&... ds)
   {
     *this = 0;
-    if (has_null && &src == _hb_has_null<Type, has_null>::get_null ())
+    if (src.is_null ())
       return false;
 
     c->push ();
 
-    bool ret = c->copy (src, hb_forward<Ts> (ds)...);
+    bool ret = c->copy (src_base+src, hb_forward<Ts> (ds)...);
 
-    c->add_link (*this, c->pop_pack (), base);
+    c->add_link (*this, c->pop_pack (), dst_base);
 
     return ret;
   }
@@ -679,7 +687,7 @@
     if (unlikely (!out)) return_trace (false);
     unsigned int count = this->len;
     for (unsigned int i = 0; i < count; i++)
-      out->arrayZ[i].serialize_subset (c, (*this)[i], out);
+      out->arrayZ[i].serialize_subset (c, this->arrayZ[i], this, out);
     return_trace (true);
   }
 

Modified: trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-deprecated.h
===================================================================
--- trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-deprecated.h	2019-05-31 23:32:35 UTC (rev 51282)
+++ trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-deprecated.h	2019-06-01 08:54:42 UTC (rev 51283)
@@ -40,6 +40,10 @@
 #ifndef HB_DISABLE_DEPRECATED
 
 
+/* https://github.com/harfbuzz/harfbuzz/issues/1734 */
+#define HB_MATH_GLYPH_PART_FLAG_EXTENDER HB_OT_MATH_GLYPH_PART_FLAG_EXTENDER
+
+
 /* Like hb_ot_layout_table_find_script, but takes zero-terminated array of scripts to test */
 HB_EXTERN HB_DEPRECATED_FOR (hb_ot_layout_table_select_script) hb_bool_t
 hb_ot_layout_table_choose_script (hb_face_t      *face,

Modified: trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-glyf-table.hh
===================================================================
--- trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-glyf-table.hh	2019-05-31 23:32:35 UTC (rev 51282)
+++ trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-glyf-table.hh	2019-06-01 08:54:42 UTC (rev 51283)
@@ -85,7 +85,7 @@
   static bool
   _add_loca_and_head (hb_subset_plan_t * plan, Iterator padded_offsets)
   {
-    unsigned int max_offset = + padded_offsets | hb_reduce (hb_max, 0);
+    unsigned max_offset = + padded_offsets | hb_reduce(hb_add, 0);
     unsigned num_offsets = padded_offsets.len () + 1;
     bool use_short_loca = max_offset < 0x1FFFF;
     unsigned entry_size = use_short_loca ? 2 : 4;
@@ -93,6 +93,8 @@
 
     if (unlikely (!loca_prime_data)) return false;
 
+    DEBUG_MSG(SUBSET, nullptr, "loca entry_size %d num_offsets %d max_offset %d size %d", entry_size, num_offsets, max_offset, entry_size * num_offsets);
+
     if (use_short_loca)
       _write_loca (padded_offsets, 1, hb_array ((HBUINT16*) loca_prime_data, num_offsets));
     else
@@ -164,6 +166,7 @@
     | hb_map (&SubsetGlyph::padded_size)
     ;
 
+    if (c->serializer->in_error ()) return_trace (false);
     return_trace (c->serializer->check_success (_add_loca_and_head (c->plan, padded_offsets)));
   }
 

Modified: trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-layout-common.hh
===================================================================
--- trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-layout-common.hh	2019-05-31 23:32:35 UTC (rev 51282)
+++ trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-layout-common.hh	2019-06-01 08:54:42 UTC (rev 51283)
@@ -142,7 +142,7 @@
     if (unlikely (!out)) return_trace (false);
     unsigned int count = this->len;
     for (unsigned int i = 0; i < count; i++)
-      out->get_offset (i).serialize_subset (c, (*this)[i], out);
+      out->get_offset (i).serialize_subset (c, this->get_offset (i), this, out);
     return_trace (true);
   }
 
@@ -279,10 +279,10 @@
     TRACE_SUBSET (this);
     auto *out = c->serializer->embed (*this);
     if (unlikely (!out)) return_trace (false);
-    out->defaultLangSys.serialize_copy (c->serializer, this+defaultLangSys, out);
+    out->defaultLangSys.serialize_copy (c->serializer, defaultLangSys, this, out);
     unsigned int count = langSys.len;
     for (unsigned int i = 0; i < count; i++)
-      out->langSys.arrayZ[i].offset.serialize_copy (c->serializer, this+langSys[i].offset, out);
+      out->langSys.arrayZ[i].offset.serialize_copy (c->serializer, langSys[i].offset, this, out);
     return_trace (true);
   }
 
@@ -732,7 +732,7 @@
     OffsetArrayOf<TSubTable>& out_subtables = out->get_subtables<TSubTable> ();
     unsigned int count = subTable.len;
     for (unsigned int i = 0; i < count; i++)
-      out_subtables[i].serialize_subset (c, this+subtables[i], out, get_type ());
+      out_subtables[i].serialize_subset (c, subtables[i], this, out, get_type ());
 
     return_trace (true);
   }

Modified: trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-layout-gdef-table.hh
===================================================================
--- trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-layout-gdef-table.hh	2019-05-31 23:32:35 UTC (rev 51282)
+++ trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-layout-gdef-table.hh	2019-06-01 08:54:42 UTC (rev 51283)
@@ -442,16 +442,16 @@
     auto *out = c->serializer->embed (*this);
     if (unlikely (!out)) return_trace (false);
 
-    out->glyphClassDef.serialize_subset (c, this+glyphClassDef, out);
-    out->attachList = 0;//TODO(subset) serialize_subset (c, this+attachList, out);
-    out->ligCaretList = 0;//TODO(subset) serialize_subset (c, this+ligCaretList, out);
-    out->markAttachClassDef.serialize_subset (c, this+markAttachClassDef, out);
+    out->glyphClassDef.serialize_subset (c, glyphClassDef, this, out);
+    out->attachList = 0;//TODO(subset) serialize_subset (c, attachList, this, out);
+    out->ligCaretList = 0;//TODO(subset) serialize_subset (c, ligCaretList, this, out);
+    out->markAttachClassDef.serialize_subset (c, markAttachClassDef, this, out);
 
     if (version.to_int () >= 0x00010002u)
-      out->markGlyphSetsDef = 0;// TODO(subset) serialize_subset (c, this+markGlyphSetsDef, out);
+      out->markGlyphSetsDef = 0;// TODO(subset) serialize_subset (c, markGlyphSetsDef, this, out);
 
     if (version.to_int () >= 0x00010003u)
-      out->varStore = 0;// TODO(subset) serialize_subset (c, this+varStore, out);
+      out->varStore = 0;// TODO(subset) serialize_subset (c, varStore, this, out);
 
     return_trace (true);
   }

Modified: trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-layout-gsub-table.hh
===================================================================
--- trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-layout-gsub-table.hh	2019-05-31 23:32:35 UTC (rev 51282)
+++ trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-layout-gsub-table.hh	2019-06-01 08:54:42 UTC (rev 51283)
@@ -87,8 +87,7 @@
   }
 
   template<typename Iterator,
-	   hb_requires (hb_is_sorted_source_of (Iterator,
-						hb_codepoint_t))>
+	   hb_requires (hb_is_sorted_source_of (Iterator, hb_codepoint_t))>
   bool serialize (hb_serialize_context_t *c,
 		  Iterator glyphs,
 		  unsigned delta)
@@ -181,7 +180,7 @@
 
   template<typename Iterator,
 	   hb_requires (hb_is_sorted_source_of (Iterator,
-						const hb_codepoint_pair_t))>
+						hb_codepoint_pair_t))>
   bool serialize (hb_serialize_context_t *c,
 		  Iterator it)
   {
@@ -339,8 +338,10 @@
     return_trace (true);
   }
 
+  template <typename Iterator,
+	    hb_requires (hb_is_source_of (Iterator, hb_codepoint_t))>
   bool serialize (hb_serialize_context_t *c,
-		  hb_array_t<const GlyphID> subst)
+		  Iterator subst)
   {
     TRACE_SERIALIZE (this);
     return_trace (substitute.serialize (c, subst));
@@ -515,8 +516,10 @@
     return_trace (true);
   }
 
+  template <typename Iterator,
+	    hb_requires (hb_is_source_of (Iterator, hb_codepoint_t))>
   bool serialize (hb_serialize_context_t *c,
-		  hb_array_t<const GlyphID> alts)
+		  Iterator alts)
   {
     TRACE_SERIALIZE (this);
     return_trace (alternates.serialize (c, alts));
@@ -729,9 +732,11 @@
     return_trace (true);
   }
 
+  template <typename Iterator,
+	    hb_requires (hb_is_source_of (Iterator, hb_codepoint_t))>
   bool serialize (hb_serialize_context_t *c,
 		  GlyphID ligature,
-		  hb_array_t<const GlyphID> components /* Starting from second */)
+		  Iterator components /* Starting from second */)
   {
     TRACE_SERIALIZE (this);
     if (unlikely (!c->extend_min (*this))) return_trace (false);
@@ -1282,7 +1287,7 @@
   HB_INTERNAL static bool apply_recurse_func (hb_ot_apply_context_t *c, unsigned int lookup_index);
 
   SubTable& serialize_subtable (hb_serialize_context_t *c,
-				       unsigned int i)
+				unsigned int i)
   { return get_subtables<SubTable> ()[i].serialize (c, this); }
 
   bool serialize_single (hb_serialize_context_t *c,
@@ -1292,9 +1297,8 @@
   {
     TRACE_SERIALIZE (this);
     if (unlikely (!Lookup::serialize (c, SubTable::Single, lookup_props, 1))) return_trace (false);
-
-    return_trace (serialize_subtable (c, 0).u.single
-		  .serialize (c, hb_zip (glyphs, substitutes)));
+    return_trace (serialize_subtable (c, 0).u.single.
+		  serialize (c, hb_zip (glyphs, substitutes)));
   }
 
   bool serialize_multiple (hb_serialize_context_t *c,
@@ -1305,10 +1309,11 @@
   {
     TRACE_SERIALIZE (this);
     if (unlikely (!Lookup::serialize (c, SubTable::Multiple, lookup_props, 1))) return_trace (false);
-    return_trace (serialize_subtable (c, 0).u.multiple.serialize (c,
-								  glyphs,
-								  substitute_len_list,
-								  substitute_glyphs_list));
+    return_trace (serialize_subtable (c, 0).u.multiple.
+		  serialize (c,
+			     glyphs,
+			     substitute_len_list,
+			     substitute_glyphs_list));
   }
 
   bool serialize_alternate (hb_serialize_context_t *c,
@@ -1319,10 +1324,11 @@
   {
     TRACE_SERIALIZE (this);
     if (unlikely (!Lookup::serialize (c, SubTable::Alternate, lookup_props, 1))) return_trace (false);
-    return_trace (serialize_subtable (c, 0).u.alternate.serialize (c,
-								   glyphs,
-								   alternate_len_list,
-								   alternate_glyphs_list));
+    return_trace (serialize_subtable (c, 0).u.alternate.
+		  serialize (c,
+			     glyphs,
+			     alternate_len_list,
+			     alternate_glyphs_list));
   }
 
   bool serialize_ligature (hb_serialize_context_t *c,
@@ -1335,12 +1341,13 @@
   {
     TRACE_SERIALIZE (this);
     if (unlikely (!Lookup::serialize (c, SubTable::Ligature, lookup_props, 1))) return_trace (false);
-    return_trace (serialize_subtable (c, 0).u.ligature.serialize (c,
-								  first_glyphs,
-								  ligature_per_first_glyph_count_list,
-								  ligatures_list,
-								  component_count_list,
-								  component_list));
+    return_trace (serialize_subtable (c, 0).u.ligature.
+		  serialize (c,
+			     first_glyphs,
+			     ligature_per_first_glyph_count_list,
+			     ligatures_list,
+			     component_count_list,
+			     component_list));
   }
 
   template <typename context_t>

Modified: trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-layout-gsubgpos.hh
===================================================================
--- trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-layout-gsubgpos.hh	2019-05-31 23:32:35 UTC (rev 51282)
+++ trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-layout-gsubgpos.hh	2019-06-01 08:54:42 UTC (rev 51283)
@@ -2684,18 +2684,19 @@
     auto *out = c->serializer->embed (*this);
     if (unlikely (!out)) return_trace (false);
 
-    out->scriptList.serialize_subset (c, this+scriptList, out);
-    out->featureList.serialize_subset (c, this+featureList, out);
+    out->scriptList.serialize_subset (c, scriptList, this, out);
+    out->featureList.serialize_subset (c, featureList, this, out);
 
     typedef OffsetListOf<TLookup> TLookupList;
     /* TODO Use intersects() to count how many subtables survive? */
     CastR<OffsetTo<TLookupList>> (out->lookupList)
       .serialize_subset (c,
-			 this+CastR<OffsetTo<TLookupList>> (lookupList),
+			 CastR<OffsetTo<TLookupList>> (lookupList),
+			 this,
 			 out);
 
     if (version.to_int () >= 0x00010001u)
-     out->featureVars.serialize_copy (c->serializer, this+featureVars, out);
+     out->featureVars.serialize_copy (c->serializer, featureVars, this, out);
 
     return_trace (true);
   }

Modified: trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-math-table.hh
===================================================================
--- trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-math-table.hh	2019-05-31 23:32:35 UTC (rev 51282)
+++ trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-math-table.hh	2019-06-01 08:54:42 UTC (rev 51283)
@@ -462,7 +462,7 @@
     out.end_connector_length	= font->em_scale (endConnectorLength, scale);
     out.full_advance		= font->em_scale (fullAdvance, scale);
 
-    static_assert ((unsigned int) HB_MATH_GLYPH_PART_FLAG_EXTENDER ==
+    static_assert ((unsigned int) HB_OT_MATH_GLYPH_PART_FLAG_EXTENDER ==
 		   (unsigned int) PartFlags::Extender, "");
 
     out.flags = (hb_ot_math_glyph_part_flags_t)

Modified: trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-math.h
===================================================================
--- trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-math.h	2019-05-31 23:32:35 UTC (rev 51282)
+++ trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-math.h	2019-06-01 08:54:42 UTC (rev 51283)
@@ -151,7 +151,7 @@
  * Since: 1.3.3
  */
 typedef enum { /*< flags >*/
-  HB_MATH_GLYPH_PART_FLAG_EXTENDER	= 0x00000001u  /* Extender glyph */
+  HB_OT_MATH_GLYPH_PART_FLAG_EXTENDER	= 0x00000001u  /* Extender glyph */
 } hb_ot_math_glyph_part_flags_t;
 
 /**
@@ -158,7 +158,7 @@
  * hb_ot_math_glyph_part_t:
  * @glyph: The glyph index of the variant part
  * @start_connector_length: The length of the connector on the starting side of the variant part
- * @end_connection_length: The length of the conector on the ending side of the variant part
+ * @end_connection_length: The length of the connector on the ending side of the variant part
  * @full_advance: The total advance of the part
  * @flags: #hb_ot_math_glyph_part_flags_t flags for the part
  * 

Modified: trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-name-table.hh
===================================================================
--- trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-name-table.hh	2019-05-31 23:32:35 UTC (rev 51282)
+++ trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-name-table.hh	2019-06-01 08:54:42 UTC (rev 51283)
@@ -104,7 +104,7 @@
     TRACE_SERIALIZE (this);
     auto *out = c->embed (this);
     if (unlikely (!out)) return_trace (nullptr);
-    out->offset.serialize_copy (c, src_base + offset, dst_base, length);
+    out->offset.serialize_copy (c, offset, src_base, dst_base, length);
     return_trace (out);
   }
 

Modified: trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-shape-complex-use-machine.hh
===================================================================
--- trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-shape-complex-use-machine.hh	2019-05-31 23:32:35 UTC (rev 51282)
+++ trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-shape-complex-use-machine.hh	2019-06-01 08:54:42 UTC (rev 51283)
@@ -36,39 +36,42 @@
 
 #line 38 "hb-ot-shape-complex-use-machine.hh"
 static const unsigned char _use_syllable_machine_trans_keys[] = {
-	12u, 44u, 1u, 15u, 1u, 1u, 12u, 44u, 0u, 47u, 21u, 21u, 11u, 47u, 11u, 47u, 
-	1u, 15u, 1u, 1u, 11u, 47u, 22u, 47u, 23u, 47u, 24u, 47u, 25u, 47u, 26u, 47u, 
-	45u, 46u, 46u, 46u, 24u, 47u, 24u, 47u, 24u, 47u, 23u, 47u, 23u, 47u, 23u, 47u, 
-	22u, 47u, 22u, 47u, 22u, 47u, 22u, 47u, 11u, 47u, 1u, 47u, 11u, 47u, 13u, 21u, 
-	4u, 4u, 13u, 13u, 11u, 47u, 11u, 47u, 41u, 42u, 42u, 42u, 11u, 47u, 11u, 47u, 
-	22u, 47u, 23u, 47u, 24u, 47u, 25u, 47u, 26u, 47u, 45u, 46u, 46u, 46u, 24u, 47u, 
-	24u, 47u, 24u, 47u, 23u, 47u, 23u, 47u, 23u, 47u, 22u, 47u, 22u, 47u, 22u, 47u, 
-	22u, 47u, 11u, 47u, 1u, 47u, 1u, 15u, 4u, 4u, 13u, 21u, 13u, 13u, 12u, 44u, 
-	1u, 47u, 11u, 47u, 41u, 42u, 42u, 42u, 21u, 42u, 1u, 5u, 0
+	12u, 48u, 1u, 15u, 1u, 1u, 12u, 48u, 1u, 1u, 0u, 48u, 21u, 21u, 11u, 48u, 
+	11u, 48u, 1u, 15u, 1u, 1u, 11u, 48u, 22u, 48u, 23u, 48u, 24u, 47u, 25u, 47u, 
+	26u, 47u, 45u, 46u, 46u, 46u, 24u, 48u, 24u, 48u, 24u, 48u, 1u, 1u, 24u, 48u, 
+	23u, 48u, 23u, 48u, 23u, 48u, 22u, 48u, 22u, 48u, 22u, 48u, 22u, 48u, 11u, 48u, 
+	1u, 48u, 11u, 48u, 13u, 21u, 4u, 4u, 13u, 13u, 11u, 48u, 11u, 48u, 41u, 42u, 
+	42u, 42u, 11u, 48u, 11u, 48u, 22u, 48u, 23u, 48u, 24u, 47u, 25u, 47u, 26u, 47u, 
+	45u, 46u, 46u, 46u, 24u, 48u, 24u, 48u, 24u, 48u, 24u, 48u, 23u, 48u, 23u, 48u, 
+	23u, 48u, 22u, 48u, 22u, 48u, 22u, 48u, 22u, 48u, 11u, 48u, 1u, 48u, 1u, 15u, 
+	4u, 4u, 13u, 21u, 13u, 13u, 12u, 48u, 1u, 48u, 11u, 48u, 41u, 42u, 42u, 42u, 
+	21u, 42u, 1u, 5u, 0
 };
 
 static const char _use_syllable_machine_key_spans[] = {
-	33, 15, 1, 33, 48, 1, 37, 37, 
-	15, 1, 37, 26, 25, 24, 23, 22, 
-	2, 1, 24, 24, 24, 25, 25, 25, 
-	26, 26, 26, 26, 37, 47, 37, 9, 
-	1, 1, 37, 37, 2, 1, 37, 37, 
-	26, 25, 24, 23, 22, 2, 1, 24, 
-	24, 24, 25, 25, 25, 26, 26, 26, 
-	26, 37, 47, 15, 1, 9, 1, 33, 
-	47, 37, 2, 1, 22, 5
+	37, 15, 1, 37, 1, 49, 1, 38, 
+	38, 15, 1, 38, 27, 26, 24, 23, 
+	22, 2, 1, 25, 25, 25, 1, 25, 
+	26, 26, 26, 27, 27, 27, 27, 38, 
+	48, 38, 9, 1, 1, 38, 38, 2, 
+	1, 38, 38, 27, 26, 24, 23, 22, 
+	2, 1, 25, 25, 25, 25, 26, 26, 
+	26, 27, 27, 27, 27, 38, 48, 15, 
+	1, 9, 1, 37, 48, 38, 2, 1, 
+	22, 5
 };
 
 static const short _use_syllable_machine_index_offsets[] = {
-	0, 34, 50, 52, 86, 135, 137, 175, 
-	213, 229, 231, 269, 296, 322, 347, 371, 
-	394, 397, 399, 424, 449, 474, 500, 526, 
-	552, 579, 606, 633, 660, 698, 746, 784, 
-	794, 796, 798, 836, 874, 877, 879, 917, 
-	955, 982, 1008, 1033, 1057, 1080, 1083, 1085, 
-	1110, 1135, 1160, 1186, 1212, 1238, 1265, 1292, 
-	1319, 1346, 1384, 1432, 1448, 1450, 1460, 1462, 
-	1496, 1544, 1582, 1585, 1587, 1610
+	0, 38, 54, 56, 94, 96, 146, 148, 
+	187, 226, 242, 244, 283, 311, 338, 363, 
+	387, 410, 413, 415, 441, 467, 493, 495, 
+	521, 548, 575, 602, 630, 658, 686, 714, 
+	753, 802, 841, 851, 853, 855, 894, 933, 
+	936, 938, 977, 1016, 1044, 1071, 1096, 1120, 
+	1143, 1146, 1148, 1174, 1200, 1226, 1252, 1279, 
+	1306, 1333, 1361, 1389, 1417, 1445, 1484, 1533, 
+	1549, 1551, 1561, 1563, 1601, 1650, 1689, 1692, 
+	1694, 1717
 };
 
 static const char _use_syllable_machine_indicies[] = {
@@ -76,237 +79,252 @@
 	0, 0, 0, 0, 0, 0, 0, 0, 
 	0, 0, 0, 0, 0, 0, 0, 0, 
 	0, 0, 0, 0, 0, 0, 0, 0, 
-	1, 0, 3, 2, 2, 2, 2, 2, 
+	1, 0, 0, 0, 1, 0, 3, 2, 
 	2, 2, 2, 2, 2, 2, 2, 2, 
-	4, 2, 3, 2, 6, 5, 5, 5, 
+	2, 2, 2, 2, 4, 2, 3, 2, 
+	6, 5, 5, 5, 5, 5, 5, 5, 
 	5, 5, 5, 5, 5, 5, 5, 5, 
 	5, 5, 5, 5, 5, 5, 5, 5, 
 	5, 5, 5, 5, 5, 5, 5, 5, 
-	5, 5, 5, 5, 6, 5, 7, 8, 
-	9, 7, 10, 11, 9, 9, 9, 9, 
-	9, 3, 12, 13, 9, 14, 7, 7, 
-	15, 16, 9, 9, 17, 18, 19, 20, 
-	21, 22, 23, 17, 24, 25, 26, 27, 
-	28, 29, 9, 30, 31, 32, 9, 33, 
-	34, 35, 36, 37, 38, 39, 9, 41, 
-	40, 43, 1, 42, 42, 44, 42, 42, 
-	42, 42, 42, 45, 46, 47, 48, 49, 
-	50, 51, 52, 46, 53, 45, 54, 55, 
-	56, 57, 42, 58, 59, 60, 42, 42, 
-	42, 42, 61, 62, 63, 64, 42, 43, 
-	1, 42, 42, 44, 42, 42, 42, 42, 
-	42, 65, 46, 47, 48, 49, 50, 51, 
-	52, 46, 53, 54, 54, 55, 56, 57, 
-	42, 58, 59, 60, 42, 42, 42, 42, 
-	61, 62, 63, 64, 42, 43, 66, 66, 
-	66, 66, 66, 66, 66, 66, 66, 66, 
-	66, 66, 66, 67, 66, 43, 66, 43, 
-	1, 42, 42, 44, 42, 42, 42, 42, 
-	42, 42, 46, 47, 48, 49, 50, 51, 
-	52, 46, 53, 54, 54, 55, 56, 57, 
-	42, 58, 59, 60, 42, 42, 42, 42, 
-	61, 62, 63, 64, 42, 46, 47, 48, 
-	49, 50, 42, 42, 42, 42, 42, 42, 
-	55, 56, 57, 42, 58, 59, 60, 42, 
-	42, 42, 42, 47, 62, 63, 64, 42, 
-	47, 48, 49, 50, 42, 42, 42, 42, 
-	42, 42, 42, 42, 42, 42, 58, 59, 
-	60, 42, 42, 42, 42, 42, 62, 63, 
-	64, 42, 48, 49, 50, 42, 42, 42, 
-	42, 42, 42, 42, 42, 42, 42, 42, 
-	42, 42, 42, 42, 42, 42, 42, 62, 
-	63, 64, 42, 49, 50, 42, 42, 42, 
-	42, 42, 42, 42, 42, 42, 42, 42, 
-	42, 42, 42, 42, 42, 42, 42, 62, 
-	63, 64, 42, 50, 42, 42, 42, 42, 
-	42, 42, 42, 42, 42, 42, 42, 42, 
-	42, 42, 42, 42, 42, 42, 62, 63, 
-	64, 42, 62, 63, 42, 63, 42, 48, 
-	49, 50, 42, 42, 42, 42, 42, 42, 
-	42, 42, 42, 42, 58, 59, 60, 42, 
-	42, 42, 42, 42, 62, 63, 64, 42, 
-	48, 49, 50, 42, 42, 42, 42, 42, 
-	42, 42, 42, 42, 42, 42, 59, 60, 
-	42, 42, 42, 42, 42, 62, 63, 64, 
-	42, 48, 49, 50, 42, 42, 42, 42, 
-	42, 42, 42, 42, 42, 42, 42, 42, 
-	60, 42, 42, 42, 42, 42, 62, 63, 
-	64, 42, 47, 48, 49, 50, 42, 42, 
-	42, 42, 42, 42, 55, 56, 57, 42, 
-	58, 59, 60, 42, 42, 42, 42, 47, 
-	62, 63, 64, 42, 47, 48, 49, 50, 
-	42, 42, 42, 42, 42, 42, 42, 56, 
-	57, 42, 58, 59, 60, 42, 42, 42, 
-	42, 47, 62, 63, 64, 42, 47, 48, 
-	49, 50, 42, 42, 42, 42, 42, 42, 
-	42, 42, 57, 42, 58, 59, 60, 42, 
-	42, 42, 42, 47, 62, 63, 64, 42, 
-	46, 47, 48, 49, 50, 42, 52, 46, 
-	42, 42, 42, 55, 56, 57, 42, 58, 
-	59, 60, 42, 42, 42, 42, 47, 62, 
-	63, 64, 42, 46, 47, 48, 49, 50, 
-	42, 68, 46, 42, 42, 42, 55, 56, 
-	57, 42, 58, 59, 60, 42, 42, 42, 
-	42, 47, 62, 63, 64, 42, 46, 47, 
-	48, 49, 50, 42, 42, 46, 42, 42, 
-	42, 55, 56, 57, 42, 58, 59, 60, 
-	42, 42, 42, 42, 47, 62, 63, 64, 
-	42, 46, 47, 48, 49, 50, 51, 52, 
-	46, 42, 42, 42, 55, 56, 57, 42, 
-	58, 59, 60, 42, 42, 42, 42, 47, 
-	62, 63, 64, 42, 43, 1, 42, 42, 
-	44, 42, 42, 42, 42, 42, 42, 46, 
-	47, 48, 49, 50, 51, 52, 46, 53, 
-	42, 54, 55, 56, 57, 42, 58, 59, 
-	60, 42, 42, 42, 42, 61, 62, 63, 
-	64, 42, 43, 66, 66, 66, 66, 66, 
-	66, 66, 66, 66, 66, 66, 66, 66, 
-	67, 66, 66, 66, 66, 66, 66, 66, 
-	47, 48, 49, 50, 66, 66, 66, 66, 
-	66, 66, 66, 66, 66, 66, 58, 59, 
-	60, 66, 66, 66, 66, 66, 62, 63, 
-	64, 66, 43, 1, 42, 42, 44, 42, 
-	42, 42, 42, 42, 42, 46, 47, 48, 
-	49, 50, 51, 52, 46, 53, 45, 54, 
-	55, 56, 57, 42, 58, 59, 60, 42, 
-	42, 42, 42, 61, 62, 63, 64, 42, 
-	70, 69, 69, 69, 69, 69, 69, 69, 
-	71, 69, 10, 72, 70, 69, 43, 1, 
-	42, 42, 44, 42, 42, 42, 42, 42, 
-	73, 46, 47, 48, 49, 50, 51, 52, 
-	46, 53, 45, 54, 55, 56, 57, 42, 
-	58, 59, 60, 42, 74, 75, 42, 61, 
-	62, 63, 64, 42, 43, 1, 42, 42, 
-	44, 42, 42, 42, 42, 42, 42, 46, 
-	47, 48, 49, 50, 51, 52, 46, 53, 
-	45, 54, 55, 56, 57, 42, 58, 59, 
-	60, 42, 74, 75, 42, 61, 62, 63, 
-	64, 42, 74, 75, 76, 75, 76, 3, 
-	6, 77, 77, 78, 77, 77, 77, 77, 
-	77, 79, 17, 18, 19, 20, 21, 22, 
-	23, 17, 24, 26, 26, 27, 28, 29, 
-	77, 30, 31, 32, 77, 77, 77, 77, 
-	36, 37, 38, 39, 77, 3, 6, 77, 
-	77, 78, 77, 77, 77, 77, 77, 77, 
-	17, 18, 19, 20, 21, 22, 23, 17, 
-	24, 26, 26, 27, 28, 29, 77, 30, 
-	31, 32, 77, 77, 77, 77, 36, 37, 
-	38, 39, 77, 17, 18, 19, 20, 21, 
-	77, 77, 77, 77, 77, 77, 27, 28, 
-	29, 77, 30, 31, 32, 77, 77, 77, 
-	77, 18, 37, 38, 39, 77, 18, 19, 
-	20, 21, 77, 77, 77, 77, 77, 77, 
-	77, 77, 77, 77, 30, 31, 32, 77, 
-	77, 77, 77, 77, 37, 38, 39, 77, 
-	19, 20, 21, 77, 77, 77, 77, 77, 
-	77, 77, 77, 77, 77, 77, 77, 77, 
-	77, 77, 77, 77, 77, 37, 38, 39, 
-	77, 20, 21, 77, 77, 77, 77, 77, 
-	77, 77, 77, 77, 77, 77, 77, 77, 
-	77, 77, 77, 77, 77, 37, 38, 39, 
-	77, 21, 77, 77, 77, 77, 77, 77, 
-	77, 77, 77, 77, 77, 77, 77, 77, 
-	77, 77, 77, 77, 37, 38, 39, 77, 
-	37, 38, 77, 38, 77, 19, 20, 21, 
-	77, 77, 77, 77, 77, 77, 77, 77, 
-	77, 77, 30, 31, 32, 77, 77, 77, 
-	77, 77, 37, 38, 39, 77, 19, 20, 
-	21, 77, 77, 77, 77, 77, 77, 77, 
-	77, 77, 77, 77, 31, 32, 77, 77, 
-	77, 77, 77, 37, 38, 39, 77, 19, 
-	20, 21, 77, 77, 77, 77, 77, 77, 
-	77, 77, 77, 77, 77, 77, 32, 77, 
-	77, 77, 77, 77, 37, 38, 39, 77, 
-	18, 19, 20, 21, 77, 77, 77, 77, 
-	77, 77, 27, 28, 29, 77, 30, 31, 
-	32, 77, 77, 77, 77, 18, 37, 38, 
-	39, 77, 18, 19, 20, 21, 77, 77, 
-	77, 77, 77, 77, 77, 28, 29, 77, 
-	30, 31, 32, 77, 77, 77, 77, 18, 
-	37, 38, 39, 77, 18, 19, 20, 21, 
-	77, 77, 77, 77, 77, 77, 77, 77, 
-	29, 77, 30, 31, 32, 77, 77, 77, 
-	77, 18, 37, 38, 39, 77, 17, 18, 
-	19, 20, 21, 77, 23, 17, 77, 77, 
-	77, 27, 28, 29, 77, 30, 31, 32, 
-	77, 77, 77, 77, 18, 37, 38, 39, 
-	77, 17, 18, 19, 20, 21, 77, 80, 
-	17, 77, 77, 77, 27, 28, 29, 77, 
-	30, 31, 32, 77, 77, 77, 77, 18, 
-	37, 38, 39, 77, 17, 18, 19, 20, 
-	21, 77, 77, 17, 77, 77, 77, 27, 
-	28, 29, 77, 30, 31, 32, 77, 77, 
-	77, 77, 18, 37, 38, 39, 77, 17, 
-	18, 19, 20, 21, 22, 23, 17, 77, 
-	77, 77, 27, 28, 29, 77, 30, 31, 
-	32, 77, 77, 77, 77, 18, 37, 38, 
-	39, 77, 3, 6, 77, 77, 78, 77, 
-	77, 77, 77, 77, 77, 17, 18, 19, 
-	20, 21, 22, 23, 17, 24, 77, 26, 
-	27, 28, 29, 77, 30, 31, 32, 77, 
-	77, 77, 77, 36, 37, 38, 39, 77, 
-	3, 77, 77, 77, 77, 77, 77, 77, 
-	77, 77, 77, 77, 77, 77, 4, 77, 
-	77, 77, 77, 77, 77, 77, 18, 19, 
-	20, 21, 77, 77, 77, 77, 77, 77, 
-	77, 77, 77, 77, 30, 31, 32, 77, 
-	77, 77, 77, 77, 37, 38, 39, 77, 
-	3, 81, 81, 81, 81, 81, 81, 81, 
-	81, 81, 81, 81, 81, 81, 4, 81, 
-	82, 77, 13, 77, 77, 77, 77, 77, 
-	77, 77, 83, 77, 13, 77, 6, 81, 
+	6, 5, 5, 5, 6, 5, 7, 5, 
+	8, 9, 10, 8, 11, 12, 10, 10, 
+	10, 10, 10, 3, 13, 14, 10, 15, 
+	8, 8, 16, 17, 10, 10, 18, 19, 
+	20, 21, 22, 23, 24, 18, 25, 26, 
+	27, 28, 29, 30, 10, 31, 32, 33, 
+	10, 34, 35, 36, 37, 38, 39, 40, 
+	13, 10, 42, 41, 44, 1, 43, 43, 
+	45, 43, 43, 43, 43, 43, 46, 47, 
+	48, 49, 50, 51, 52, 53, 47, 54, 
+	46, 55, 56, 57, 58, 43, 59, 60, 
+	61, 43, 43, 43, 43, 62, 63, 64, 
+	65, 1, 43, 44, 1, 43, 43, 45, 
+	43, 43, 43, 43, 43, 66, 47, 48, 
+	49, 50, 51, 52, 53, 47, 54, 55, 
+	55, 56, 57, 58, 43, 59, 60, 61, 
+	43, 43, 43, 43, 62, 63, 64, 65, 
+	1, 43, 44, 67, 67, 67, 67, 67, 
+	67, 67, 67, 67, 67, 67, 67, 67, 
+	68, 67, 44, 67, 44, 1, 43, 43, 
+	45, 43, 43, 43, 43, 43, 43, 47, 
+	48, 49, 50, 51, 52, 53, 47, 54, 
+	55, 55, 56, 57, 58, 43, 59, 60, 
+	61, 43, 43, 43, 43, 62, 63, 64, 
+	65, 1, 43, 47, 48, 49, 50, 51, 
+	43, 43, 43, 43, 43, 43, 56, 57, 
+	58, 43, 59, 60, 61, 43, 43, 43, 
+	43, 48, 63, 64, 65, 69, 43, 48, 
+	49, 50, 51, 43, 43, 43, 43, 43, 
+	43, 43, 43, 43, 43, 59, 60, 61, 
+	43, 43, 43, 43, 43, 63, 64, 65, 
+	69, 43, 49, 50, 51, 43, 43, 43, 
+	43, 43, 43, 43, 43, 43, 43, 43, 
+	43, 43, 43, 43, 43, 43, 43, 63, 
+	64, 65, 43, 50, 51, 43, 43, 43, 
+	43, 43, 43, 43, 43, 43, 43, 43, 
+	43, 43, 43, 43, 43, 43, 43, 63, 
+	64, 65, 43, 51, 43, 43, 43, 43, 
+	43, 43, 43, 43, 43, 43, 43, 43, 
+	43, 43, 43, 43, 43, 43, 63, 64, 
+	65, 43, 63, 64, 43, 64, 43, 49, 
+	50, 51, 43, 43, 43, 43, 43, 43, 
+	43, 43, 43, 43, 59, 60, 61, 43, 
+	43, 43, 43, 43, 63, 64, 65, 69, 
+	43, 49, 50, 51, 43, 43, 43, 43, 
+	43, 43, 43, 43, 43, 43, 43, 60, 
+	61, 43, 43, 43, 43, 43, 63, 64, 
+	65, 69, 43, 49, 50, 51, 43, 43, 
+	43, 43, 43, 43, 43, 43, 43, 43, 
+	43, 43, 61, 43, 43, 43, 43, 43, 
+	63, 64, 65, 69, 43, 71, 70, 49, 
+	50, 51, 43, 43, 43, 43, 43, 43, 
+	43, 43, 43, 43, 43, 43, 43, 43, 
+	43, 43, 43, 43, 63, 64, 65, 69, 
+	43, 48, 49, 50, 51, 43, 43, 43, 
+	43, 43, 43, 56, 57, 58, 43, 59, 
+	60, 61, 43, 43, 43, 43, 48, 63, 
+	64, 65, 69, 43, 48, 49, 50, 51, 
+	43, 43, 43, 43, 43, 43, 43, 57, 
+	58, 43, 59, 60, 61, 43, 43, 43, 
+	43, 48, 63, 64, 65, 69, 43, 48, 
+	49, 50, 51, 43, 43, 43, 43, 43, 
+	43, 43, 43, 58, 43, 59, 60, 61, 
+	43, 43, 43, 43, 48, 63, 64, 65, 
+	69, 43, 47, 48, 49, 50, 51, 43, 
+	53, 47, 43, 43, 43, 56, 57, 58, 
+	43, 59, 60, 61, 43, 43, 43, 43, 
+	48, 63, 64, 65, 69, 43, 47, 48, 
+	49, 50, 51, 43, 72, 47, 43, 43, 
+	43, 56, 57, 58, 43, 59, 60, 61, 
+	43, 43, 43, 43, 48, 63, 64, 65, 
+	69, 43, 47, 48, 49, 50, 51, 43, 
+	43, 47, 43, 43, 43, 56, 57, 58, 
+	43, 59, 60, 61, 43, 43, 43, 43, 
+	48, 63, 64, 65, 69, 43, 47, 48, 
+	49, 50, 51, 52, 53, 47, 43, 43, 
+	43, 56, 57, 58, 43, 59, 60, 61, 
+	43, 43, 43, 43, 48, 63, 64, 65, 
+	69, 43, 44, 1, 43, 43, 45, 43, 
+	43, 43, 43, 43, 43, 47, 48, 49, 
+	50, 51, 52, 53, 47, 54, 43, 55, 
+	56, 57, 58, 43, 59, 60, 61, 43, 
+	43, 43, 43, 62, 63, 64, 65, 1, 
+	43, 44, 67, 67, 67, 67, 67, 67, 
+	67, 67, 67, 67, 67, 67, 67, 68, 
+	67, 67, 67, 67, 67, 67, 67, 48, 
+	49, 50, 51, 67, 67, 67, 67, 67, 
+	67, 67, 67, 67, 67, 59, 60, 61, 
+	67, 67, 67, 67, 67, 63, 64, 65, 
+	69, 67, 44, 1, 43, 43, 45, 43, 
+	43, 43, 43, 43, 43, 47, 48, 49, 
+	50, 51, 52, 53, 47, 54, 46, 55, 
+	56, 57, 58, 43, 59, 60, 61, 43, 
+	43, 43, 43, 62, 63, 64, 65, 1, 
+	43, 74, 73, 73, 73, 73, 73, 73, 
+	73, 75, 73, 11, 76, 74, 73, 44, 
+	1, 43, 43, 45, 43, 43, 43, 43, 
+	43, 77, 47, 48, 49, 50, 51, 52, 
+	53, 47, 54, 46, 55, 56, 57, 58, 
+	43, 59, 60, 61, 43, 78, 79, 43, 
+	62, 63, 64, 65, 1, 43, 44, 1, 
+	43, 43, 45, 43, 43, 43, 43, 43, 
+	43, 47, 48, 49, 50, 51, 52, 53, 
+	47, 54, 46, 55, 56, 57, 58, 43, 
+	59, 60, 61, 43, 78, 79, 43, 62, 
+	63, 64, 65, 1, 43, 78, 79, 80, 
+	79, 80, 3, 6, 81, 81, 82, 81, 
+	81, 81, 81, 81, 83, 18, 19, 20, 
+	21, 22, 23, 24, 18, 25, 27, 27, 
+	28, 29, 30, 81, 31, 32, 33, 81, 
+	81, 81, 81, 37, 38, 39, 40, 6, 
+	81, 3, 6, 81, 81, 82, 81, 81, 
+	81, 81, 81, 81, 18, 19, 20, 21, 
+	22, 23, 24, 18, 25, 27, 27, 28, 
+	29, 30, 81, 31, 32, 33, 81, 81, 
+	81, 81, 37, 38, 39, 40, 6, 81, 
+	18, 19, 20, 21, 22, 81, 81, 81, 
+	81, 81, 81, 28, 29, 30, 81, 31, 
+	32, 33, 81, 81, 81, 81, 19, 38, 
+	39, 40, 84, 81, 19, 20, 21, 22, 
 	81, 81, 81, 81, 81, 81, 81, 81, 
+	81, 81, 31, 32, 33, 81, 81, 81, 
+	81, 81, 38, 39, 40, 84, 81, 20, 
+	21, 22, 81, 81, 81, 81, 81, 81, 
 	81, 81, 81, 81, 81, 81, 81, 81, 
+	81, 81, 81, 81, 38, 39, 40, 81, 
+	21, 22, 81, 81, 81, 81, 81, 81, 
 	81, 81, 81, 81, 81, 81, 81, 81, 
-	81, 81, 81, 81, 81, 81, 6, 81, 
-	8, 77, 77, 77, 8, 77, 77, 77, 
-	77, 77, 3, 6, 13, 77, 78, 77, 
-	77, 77, 77, 77, 77, 17, 18, 19, 
-	20, 21, 22, 23, 17, 24, 25, 26, 
-	27, 28, 29, 77, 30, 31, 32, 77, 
-	33, 34, 77, 36, 37, 38, 39, 77, 
-	3, 6, 77, 77, 78, 77, 77, 77, 
-	77, 77, 77, 17, 18, 19, 20, 21, 
-	22, 23, 17, 24, 25, 26, 27, 28, 
-	29, 77, 30, 31, 32, 77, 77, 77, 
-	77, 36, 37, 38, 39, 77, 33, 34, 
-	77, 34, 77, 74, 76, 76, 76, 76, 
-	76, 76, 76, 76, 76, 76, 76, 76, 
-	76, 76, 76, 76, 76, 76, 76, 74, 
-	75, 76, 8, 81, 81, 81, 8, 81, 
-	0
+	81, 81, 81, 81, 38, 39, 40, 81, 
+	22, 81, 81, 81, 81, 81, 81, 81, 
+	81, 81, 81, 81, 81, 81, 81, 81, 
+	81, 81, 81, 38, 39, 40, 81, 38, 
+	39, 81, 39, 81, 20, 21, 22, 81, 
+	81, 81, 81, 81, 81, 81, 81, 81, 
+	81, 31, 32, 33, 81, 81, 81, 81, 
+	81, 38, 39, 40, 84, 81, 20, 21, 
+	22, 81, 81, 81, 81, 81, 81, 81, 
+	81, 81, 81, 81, 32, 33, 81, 81, 
+	81, 81, 81, 38, 39, 40, 84, 81, 
+	20, 21, 22, 81, 81, 81, 81, 81, 
+	81, 81, 81, 81, 81, 81, 81, 33, 
+	81, 81, 81, 81, 81, 38, 39, 40, 
+	84, 81, 20, 21, 22, 81, 81, 81, 
+	81, 81, 81, 81, 81, 81, 81, 81, 
+	81, 81, 81, 81, 81, 81, 81, 38, 
+	39, 40, 84, 81, 19, 20, 21, 22, 
+	81, 81, 81, 81, 81, 81, 28, 29, 
+	30, 81, 31, 32, 33, 81, 81, 81, 
+	81, 19, 38, 39, 40, 84, 81, 19, 
+	20, 21, 22, 81, 81, 81, 81, 81, 
+	81, 81, 29, 30, 81, 31, 32, 33, 
+	81, 81, 81, 81, 19, 38, 39, 40, 
+	84, 81, 19, 20, 21, 22, 81, 81, 
+	81, 81, 81, 81, 81, 81, 30, 81, 
+	31, 32, 33, 81, 81, 81, 81, 19, 
+	38, 39, 40, 84, 81, 18, 19, 20, 
+	21, 22, 81, 24, 18, 81, 81, 81, 
+	28, 29, 30, 81, 31, 32, 33, 81, 
+	81, 81, 81, 19, 38, 39, 40, 84, 
+	81, 18, 19, 20, 21, 22, 81, 85, 
+	18, 81, 81, 81, 28, 29, 30, 81, 
+	31, 32, 33, 81, 81, 81, 81, 19, 
+	38, 39, 40, 84, 81, 18, 19, 20, 
+	21, 22, 81, 81, 18, 81, 81, 81, 
+	28, 29, 30, 81, 31, 32, 33, 81, 
+	81, 81, 81, 19, 38, 39, 40, 84, 
+	81, 18, 19, 20, 21, 22, 23, 24, 
+	18, 81, 81, 81, 28, 29, 30, 81, 
+	31, 32, 33, 81, 81, 81, 81, 19, 
+	38, 39, 40, 84, 81, 3, 6, 81, 
+	81, 82, 81, 81, 81, 81, 81, 81, 
+	18, 19, 20, 21, 22, 23, 24, 18, 
+	25, 81, 27, 28, 29, 30, 81, 31, 
+	32, 33, 81, 81, 81, 81, 37, 38, 
+	39, 40, 6, 81, 3, 81, 81, 81, 
+	81, 81, 81, 81, 81, 81, 81, 81, 
+	81, 81, 4, 81, 81, 81, 81, 81, 
+	81, 81, 19, 20, 21, 22, 81, 81, 
+	81, 81, 81, 81, 81, 81, 81, 81, 
+	31, 32, 33, 81, 81, 81, 81, 81, 
+	38, 39, 40, 84, 81, 3, 86, 86, 
+	86, 86, 86, 86, 86, 86, 86, 86, 
+	86, 86, 86, 4, 86, 87, 81, 14, 
+	81, 81, 81, 81, 81, 81, 81, 88, 
+	81, 14, 81, 6, 86, 86, 86, 86, 
+	86, 86, 86, 86, 86, 86, 86, 86, 
+	86, 86, 86, 86, 86, 86, 86, 86, 
+	86, 86, 86, 86, 86, 86, 86, 86, 
+	86, 86, 86, 6, 86, 86, 86, 6, 
+	86, 9, 81, 81, 81, 9, 81, 81, 
+	81, 81, 81, 3, 6, 14, 81, 82, 
+	81, 81, 81, 81, 81, 81, 18, 19, 
+	20, 21, 22, 23, 24, 18, 25, 26, 
+	27, 28, 29, 30, 81, 31, 32, 33, 
+	81, 34, 35, 81, 37, 38, 39, 40, 
+	6, 81, 3, 6, 81, 81, 82, 81, 
+	81, 81, 81, 81, 81, 18, 19, 20, 
+	21, 22, 23, 24, 18, 25, 26, 27, 
+	28, 29, 30, 81, 31, 32, 33, 81, 
+	81, 81, 81, 37, 38, 39, 40, 6, 
+	81, 34, 35, 81, 35, 81, 78, 80, 
+	80, 80, 80, 80, 80, 80, 80, 80, 
+	80, 80, 80, 80, 80, 80, 80, 80, 
+	80, 80, 78, 79, 80, 9, 86, 86, 
+	86, 9, 86, 0
 };
 
 static const char _use_syllable_machine_trans_targs[] = {
-	4, 8, 4, 38, 2, 4, 1, 5, 
-	6, 4, 31, 34, 59, 60, 63, 64, 
-	68, 40, 41, 42, 43, 44, 53, 54, 
-	56, 65, 57, 50, 51, 52, 47, 48, 
-	49, 66, 67, 69, 58, 45, 46, 4, 
-	4, 4, 4, 7, 0, 30, 11, 12, 
-	13, 14, 15, 24, 25, 27, 28, 21, 
-	22, 23, 18, 19, 20, 29, 16, 17, 
-	4, 10, 4, 9, 26, 4, 32, 33, 
-	4, 35, 36, 37, 4, 4, 3, 39, 
-	55, 4, 61, 62
+	5, 9, 5, 41, 2, 5, 1, 53, 
+	6, 7, 5, 34, 37, 63, 64, 67, 
+	68, 72, 43, 44, 45, 46, 47, 57, 
+	58, 60, 69, 61, 54, 55, 56, 50, 
+	51, 52, 70, 71, 73, 62, 48, 49, 
+	5, 5, 5, 5, 8, 0, 33, 12, 
+	13, 14, 15, 16, 27, 28, 30, 31, 
+	24, 25, 26, 19, 20, 21, 32, 17, 
+	18, 5, 11, 5, 10, 22, 5, 23, 
+	29, 5, 35, 36, 5, 38, 39, 40, 
+	5, 5, 3, 42, 4, 59, 5, 65, 
+	66
 };
 
 static const char _use_syllable_machine_trans_actions[] = {
-	1, 0, 2, 3, 0, 4, 0, 0, 
-	7, 8, 0, 7, 9, 0, 9, 3, 
+	1, 0, 2, 3, 0, 4, 0, 5, 
+	0, 5, 8, 0, 5, 9, 0, 9, 
+	3, 0, 5, 5, 0, 0, 0, 5, 
+	5, 5, 3, 3, 5, 5, 5, 5, 
+	5, 5, 0, 0, 0, 3, 0, 0, 
+	10, 11, 12, 13, 5, 0, 5, 0, 
+	0, 0, 0, 0, 0, 0, 0, 5, 
 	0, 0, 0, 0, 0, 0, 0, 0, 
-	0, 3, 3, 0, 0, 0, 0, 0, 
-	0, 0, 0, 0, 3, 0, 0, 10, 
-	11, 12, 13, 7, 0, 7, 0, 0, 
-	0, 0, 0, 0, 0, 0, 7, 0, 
-	0, 0, 0, 0, 0, 0, 0, 0, 
-	14, 7, 15, 0, 0, 16, 0, 0, 
-	17, 7, 0, 0, 18, 19, 0, 3, 
-	0, 20, 0, 0
+	0, 14, 5, 15, 0, 0, 16, 0, 
+	0, 17, 0, 0, 18, 5, 0, 0, 
+	19, 20, 0, 3, 0, 5, 21, 0, 
+	0
 };
 
 static const char _use_syllable_machine_to_state_actions[] = {
-	0, 0, 0, 0, 5, 0, 0, 0, 
+	0, 0, 0, 0, 0, 6, 0, 0, 
 	0, 0, 0, 0, 0, 0, 0, 0, 
 	0, 0, 0, 0, 0, 0, 0, 0, 
 	0, 0, 0, 0, 0, 0, 0, 0, 
@@ -314,11 +332,12 @@
 	0, 0, 0, 0, 0, 0, 0, 0, 
 	0, 0, 0, 0, 0, 0, 0, 0, 
 	0, 0, 0, 0, 0, 0, 0, 0, 
-	0, 0, 0, 0, 0, 0
+	0, 0, 0, 0, 0, 0, 0, 0, 
+	0, 0
 };
 
 static const char _use_syllable_machine_from_state_actions[] = {
-	0, 0, 0, 0, 6, 0, 0, 0, 
+	0, 0, 0, 0, 0, 7, 0, 0, 
 	0, 0, 0, 0, 0, 0, 0, 0, 
 	0, 0, 0, 0, 0, 0, 0, 0, 
 	0, 0, 0, 0, 0, 0, 0, 0, 
@@ -326,26 +345,28 @@
 	0, 0, 0, 0, 0, 0, 0, 0, 
 	0, 0, 0, 0, 0, 0, 0, 0, 
 	0, 0, 0, 0, 0, 0, 0, 0, 
-	0, 0, 0, 0, 0, 0
+	0, 0, 0, 0, 0, 0, 0, 0, 
+	0, 0
 };
 
 static const short _use_syllable_machine_eof_trans[] = {
-	1, 3, 3, 6, 0, 41, 43, 43, 
-	67, 67, 43, 43, 43, 43, 43, 43, 
-	43, 43, 43, 43, 43, 43, 43, 43, 
-	43, 43, 43, 43, 43, 67, 43, 70, 
-	73, 70, 43, 43, 77, 77, 78, 78, 
-	78, 78, 78, 78, 78, 78, 78, 78, 
-	78, 78, 78, 78, 78, 78, 78, 78, 
-	78, 78, 78, 82, 78, 78, 78, 82, 
-	78, 78, 78, 78, 77, 82
+	1, 3, 3, 6, 6, 0, 42, 44, 
+	44, 68, 68, 44, 44, 44, 44, 44, 
+	44, 44, 44, 44, 44, 44, 71, 44, 
+	44, 44, 44, 44, 44, 44, 44, 44, 
+	68, 44, 74, 77, 74, 44, 44, 81, 
+	81, 82, 82, 82, 82, 82, 82, 82, 
+	82, 82, 82, 82, 82, 82, 82, 82, 
+	82, 82, 82, 82, 82, 82, 82, 87, 
+	82, 82, 82, 87, 82, 82, 82, 82, 
+	81, 87
 };
 
-static const int use_syllable_machine_start = 4;
-static const int use_syllable_machine_first_final = 4;
+static const int use_syllable_machine_start = 5;
+static const int use_syllable_machine_first_final = 5;
 static const int use_syllable_machine_error = -1;
 
-static const int use_syllable_machine_en_main = 4;
+static const int use_syllable_machine_en_main = 5;
 
 
 #line 38 "hb-ot-shape-complex-use-machine.rl"
@@ -352,7 +373,7 @@
 
 
 
-#line 150 "hb-ot-shape-complex-use-machine.rl"
+#line 162 "hb-ot-shape-complex-use-machine.rl"
 
 
 #define found_syllable(syllable_type) \
@@ -371,7 +392,7 @@
   int cs;
   hb_glyph_info_t *info = buffer->info;
   
-#line 375 "hb-ot-shape-complex-use-machine.hh"
+#line 396 "hb-ot-shape-complex-use-machine.hh"
 	{
 	cs = use_syllable_machine_start;
 	ts = 0;
@@ -379,7 +400,7 @@
 	act = 0;
 	}
 
-#line 170 "hb-ot-shape-complex-use-machine.rl"
+#line 182 "hb-ot-shape-complex-use-machine.rl"
 
 
   p = 0;
@@ -387,7 +408,7 @@
 
   unsigned int syllable_serial = 1;
   
-#line 391 "hb-ot-shape-complex-use-machine.hh"
+#line 412 "hb-ot-shape-complex-use-machine.hh"
 	{
 	int _slen;
 	int _trans;
@@ -397,11 +418,11 @@
 		goto _test_eof;
 _resume:
 	switch ( _use_syllable_machine_from_state_actions[cs] ) {
-	case 6:
+	case 7:
 #line 1 "NONE"
 	{ts = p;}
 	break;
-#line 405 "hb-ot-shape-complex-use-machine.hh"
+#line 426 "hb-ot-shape-complex-use-machine.hh"
 	}
 
 	_keys = _use_syllable_machine_trans_keys + (cs<<1);
@@ -419,73 +440,77 @@
 		goto _again;
 
 	switch ( _use_syllable_machine_trans_actions[_trans] ) {
-	case 7:
+	case 5:
 #line 1 "NONE"
 	{te = p+1;}
 	break;
 	case 12:
-#line 139 "hb-ot-shape-complex-use-machine.rl"
+#line 150 "hb-ot-shape-complex-use-machine.rl"
 	{te = p+1;{ found_syllable (independent_cluster); }}
 	break;
 	case 14:
-#line 141 "hb-ot-shape-complex-use-machine.rl"
+#line 153 "hb-ot-shape-complex-use-machine.rl"
 	{te = p+1;{ found_syllable (standard_cluster); }}
 	break;
 	case 10:
-#line 145 "hb-ot-shape-complex-use-machine.rl"
+#line 157 "hb-ot-shape-complex-use-machine.rl"
 	{te = p+1;{ found_syllable (broken_cluster); }}
 	break;
 	case 8:
-#line 146 "hb-ot-shape-complex-use-machine.rl"
+#line 158 "hb-ot-shape-complex-use-machine.rl"
 	{te = p+1;{ found_syllable (non_cluster); }}
 	break;
 	case 11:
-#line 139 "hb-ot-shape-complex-use-machine.rl"
+#line 150 "hb-ot-shape-complex-use-machine.rl"
 	{te = p;p--;{ found_syllable (independent_cluster); }}
 	break;
 	case 15:
-#line 140 "hb-ot-shape-complex-use-machine.rl"
+#line 151 "hb-ot-shape-complex-use-machine.rl"
 	{te = p;p--;{ found_syllable (virama_terminated_cluster); }}
 	break;
+	case 16:
+#line 152 "hb-ot-shape-complex-use-machine.rl"
+	{te = p;p--;{ found_syllable (sakot_terminated_cluster); }}
+	break;
 	case 13:
-#line 141 "hb-ot-shape-complex-use-machine.rl"
+#line 153 "hb-ot-shape-complex-use-machine.rl"
 	{te = p;p--;{ found_syllable (standard_cluster); }}
 	break;
-	case 17:
-#line 142 "hb-ot-shape-complex-use-machine.rl"
+	case 18:
+#line 154 "hb-ot-shape-complex-use-machine.rl"
 	{te = p;p--;{ found_syllable (number_joiner_terminated_cluster); }}
 	break;
-	case 16:
-#line 143 "hb-ot-shape-complex-use-machine.rl"
+	case 17:
+#line 155 "hb-ot-shape-complex-use-machine.rl"
 	{te = p;p--;{ found_syllable (numeral_cluster); }}
 	break;
-	case 18:
-#line 144 "hb-ot-shape-complex-use-machine.rl"
+	case 19:
+#line 156 "hb-ot-shape-complex-use-machine.rl"
 	{te = p;p--;{ found_syllable (symbol_cluster); }}
 	break;
-	case 19:
-#line 145 "hb-ot-shape-complex-use-machine.rl"
+	case 20:
+#line 157 "hb-ot-shape-complex-use-machine.rl"
 	{te = p;p--;{ found_syllable (broken_cluster); }}
 	break;
-	case 20:
-#line 146 "hb-ot-shape-complex-use-machine.rl"
+	case 21:
+#line 158 "hb-ot-shape-complex-use-machine.rl"
 	{te = p;p--;{ found_syllable (non_cluster); }}
 	break;
 	case 1:
-#line 141 "hb-ot-shape-complex-use-machine.rl"
+#line 153 "hb-ot-shape-complex-use-machine.rl"
 	{{p = ((te))-1;}{ found_syllable (standard_cluster); }}
 	break;
 	case 4:
-#line 145 "hb-ot-shape-complex-use-machine.rl"
+#line 157 "hb-ot-shape-complex-use-machine.rl"
 	{{p = ((te))-1;}{ found_syllable (broken_cluster); }}
 	break;
 	case 2:
 #line 1 "NONE"
 	{	switch( act ) {
-	case 7:
+	case 8:
 	{{p = ((te))-1;} found_syllable (broken_cluster); }
 	break;
-	case 8:
+	case 9:
 	{{p = ((te))-1;} found_syllable (non_cluster); }
 	break;
 	}
@@ -494,25 +519,25 @@
 	case 3:
 #line 1 "NONE"
 	{te = p+1;}
-#line 145 "hb-ot-shape-complex-use-machine.rl"
-	{act = 7;}
+#line 157 "hb-ot-shape-complex-use-machine.rl"
+	{act = 8;}
 	break;
 	case 9:
 #line 1 "NONE"
 	{te = p+1;}
-#line 146 "hb-ot-shape-complex-use-machine.rl"
-	{act = 8;}
+#line 158 "hb-ot-shape-complex-use-machine.rl"
+	{act = 9;}
 	break;
-#line 507 "hb-ot-shape-complex-use-machine.hh"
+#line 532 "hb-ot-shape-complex-use-machine.hh"
 	}
 
 _again:
 	switch ( _use_syllable_machine_to_state_actions[cs] ) {
-	case 5:
+	case 6:
 #line 1 "NONE"
 	{ts = 0;}
 	break;
-#line 516 "hb-ot-shape-complex-use-machine.hh"
+#line 541 "hb-ot-shape-complex-use-machine.hh"
 	}
 
 	if ( ++p != pe )
@@ -528,7 +553,7 @@
 
 	}
 
-#line 178 "hb-ot-shape-complex-use-machine.rl"
+#line 190 "hb-ot-shape-complex-use-machine.rl"
 
 }
 

Modified: trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-shape-complex-use-machine.rl
===================================================================
--- trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-shape-complex-use-machine.rl	2019-05-31 23:32:35 UTC (rev 51282)
+++ trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-shape-complex-use-machine.rl	2019-06-01 08:54:42 UTC (rev 51283)
@@ -68,6 +68,7 @@
 #VM	= 40; # VOWEL_MOD
 CS	= 43; # CONS_WITH_STACKER
 HVM	= 44; # HALANT_OR_VOWEL_MODIFIER
+Sk	= 48; # SAKOT
 
 FAbv	= 24; # CONS_FINAL_ABOVE
 FBlw	= 25; # CONS_FINAL_BELOW
@@ -92,7 +93,7 @@
 FMBlw	= 46; # CONS_FINAL_MOD	UIPC = Bottom
 FMPst	= 47; # CONS_FINAL_MOD	UIPC = Not_Applicable
 
-h = H | HVM; # https://github.com/harfbuzz/harfbuzz/issues/1102
+h = H | HVM | Sk;
 
 # Override: Adhoc ZWJ placement. https://github.com/harfbuzz/harfbuzz/issues/542#issuecomment-353169729
 consonant_modifiers = CMAbv* CMBlw* ((ZWJ?.h.ZWJ? B | SUB) VS? CMAbv? CMBlw*)*;
@@ -103,11 +104,16 @@
 final_consonants = FAbv* FBlw* FPst*;
 final_modifiers = FMAbv* FMBlw* | FMPst?;
 
-complex_syllable_tail =
+complex_syllable_start = (R | CS)? (B | GB) VS?;
+complex_syllable_middle =
 	consonant_modifiers
 	medial_consonants
 	dependent_vowels
 	vowel_modifiers
+	(Sk B)*
+;
+complex_syllable_tail =
+	complex_syllable_middle
 	final_consonants
 	final_modifiers
 ;
@@ -116,12 +122,17 @@
 symbol_cluster_tail = SMAbv+ SMBlw* | SMBlw+;
 
 virama_terminated_cluster =
-	(R|CS)? (B | GB) VS?
+	complex_syllable_start
 	consonant_modifiers
 	ZWJ?.h.ZWJ?
 ;
+sakot_terminated_cluster =
+	complex_syllable_start
+	complex_syllable_middle
+	Sk
+;
 standard_cluster =
-	(R|CS)? (B | GB) VS?
+	complex_syllable_start
 	complex_syllable_tail
 ;
 broken_cluster =
@@ -138,6 +149,7 @@
 main := |*
 	independent_cluster			=> { found_syllable (independent_cluster); };
 	virama_terminated_cluster		=> { found_syllable (virama_terminated_cluster); };
+	sakot_terminated_cluster		=> { found_syllable (sakot_terminated_cluster); };
 	standard_cluster			=> { found_syllable (standard_cluster); };
 	number_joiner_terminated_cluster	=> { found_syllable (number_joiner_terminated_cluster); };
 	numeral_cluster				=> { found_syllable (numeral_cluster); };

Modified: trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-shape-complex-use-table.cc
===================================================================
--- trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-shape-complex-use-table.cc	2019-05-31 23:32:35 UTC (rev 51282)
+++ trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-shape-complex-use-table.cc	2019-06-01 08:54:42 UTC (rev 51283)
@@ -33,6 +33,7 @@
 #define Rsv	USE_Rsv	/* Reserved */
 #define S	USE_S	/* SYM */
 #define SUB	USE_SUB	/* CONS_SUB */
+#define Sk	USE_Sk	/* SAKOT */
 #define VS	USE_VS	/* VARIATION_SELECTOR */
 #define WJ	USE_WJ	/* Word_Joiner */
 #define ZWJ	USE_ZWJ	/* ZWJ */
@@ -305,7 +306,7 @@
   /* 1A30 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
   /* 1A40 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
   /* 1A50 */     B,     B,     B,     B,     B,  MPre,  MBlw,   SUB,  FAbv,  FAbv,  MAbv,   SUB,   SUB,   SUB,   SUB,     O,
-  /* 1A60 */     H,  VPst,  VAbv,  VPst,  VPst,  VAbv,  VAbv,  VAbv,  VAbv,  VBlw,  VBlw,  VAbv,  VBlw,  VPst,  VPre,  VPre,
+  /* 1A60 */    Sk,  VPst,  VAbv,  VPst,  VPst,  VAbv,  VAbv,  VAbv,  VAbv,  VBlw,  VBlw,  VAbv,  VBlw,  VPst,  VPre,  VPre,
   /* 1A70 */  VPre,  VPre,  VPre,  VAbv, VMAbv, VMAbv, VMAbv, VMAbv, VMAbv, VMAbv,  VAbv, FMAbv, FMAbv,     O,     O, FMBlw,
   /* 1A80 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     O,     O,     O,     O,     O,     O,
   /* 1A90 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     O,     O,     O,     O,     O,     O,
@@ -822,6 +823,7 @@
 #undef Rsv
 #undef S
 #undef SUB
+#undef Sk
 #undef VS
 #undef WJ
 #undef ZWJ

Modified: trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-shape-complex-use.cc
===================================================================
--- trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-shape-complex-use.cc	2019-05-31 23:32:35 UTC (rev 51282)
+++ trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-shape-complex-use.cc	2019-06-01 08:54:42 UTC (rev 51283)
@@ -246,6 +246,7 @@
 enum syllable_type_t {
   independent_cluster,
   virama_terminated_cluster,
+  sakot_terminated_cluster,
   standard_cluster,
   number_joiner_terminated_cluster,
   numeral_cluster,
@@ -337,6 +338,7 @@
 	break;
 
       case virama_terminated_cluster:
+      case sakot_terminated_cluster:
       case standard_cluster:
       case number_joiner_terminated_cluster:
       case numeral_cluster:
@@ -443,6 +445,7 @@
   /* Only a few syllable types need reordering. */
   if (unlikely (!(FLAG_UNSAFE (syllable_type) &
 		  (FLAG (virama_terminated_cluster) |
+		   FLAG (sakot_terminated_cluster) |
 		   FLAG (standard_cluster) |
 		   FLAG (broken_cluster) |
 		   0))))

Modified: trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-shape-complex-use.hh
===================================================================
--- trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-shape-complex-use.hh	2019-05-31 23:32:35 UTC (rev 51282)
+++ trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-shape-complex-use.hh	2019-06-01 08:54:42 UTC (rev 51283)
@@ -73,6 +73,8 @@
   /* https://github.com/harfbuzz/harfbuzz/issues/1102 */
   USE_HVM	= 44,	/* HALANT_OR_VOWEL_MODIFIER */
 
+  USE_Sk	= 48,	/* SAKOT */
+
   USE_FAbv	= 24,	/* CONS_FINAL_ABOVE */
   USE_FBlw	= 25,	/* CONS_FINAL_BELOW */
   USE_FPst	= 26,	/* CONS_FINAL_POST */

Modified: trunk/Build/source/libs/harfbuzz/version.ac
===================================================================
--- trunk/Build/source/libs/harfbuzz/version.ac	2019-05-31 23:32:35 UTC (rev 51282)
+++ trunk/Build/source/libs/harfbuzz/version.ac	2019-06-01 08:54:42 UTC (rev 51283)
@@ -8,4 +8,4 @@
 dnl --------------------------------------------------------
 dnl
 dnl  m4-include this file to define the current harfbuzz version
-m4_define([harfbuzz_version], [2.5.0])
+m4_define([harfbuzz_version], [2.5.1])



More information about the tex-live-commits mailing list