summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKhaled Hosny <khaledhosny@eglug.org>2013-01-03 09:48:38 +0000
committerKhaled Hosny <khaledhosny@eglug.org>2013-01-03 09:48:38 +0000
commit56cfeda664bae608ccd21e46d36e867647ec770c (patch)
tree77a1fc0fd1cca97981b9d8c8bbbe836ba8775137
parentf1bd5839458f018b2c34831a49f52dd57dc00164 (diff)
harfbuzz-0.9.10
git-svn-id: svn://tug.org/texlive/trunk@28708 c570f23f-e606-0410-a88d-b1316a301751
-rw-r--r--Build/source/libs/README4
-rw-r--r--Build/source/libs/harfbuzz/ChangeLog5
-rw-r--r--Build/source/libs/harfbuzz/Makefile.in4
-rwxr-xr-xBuild/source/libs/harfbuzz/configure34
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.10-PATCHES/ChangeLog (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.8-PATCHES/ChangeLog)7
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.10-PATCHES/TL-Changes (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.8-PATCHES/TL-Changes)4
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.10/AUTHORS (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.8/AUTHORS)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.10/Android.mk74
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.10/Makefile.am (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.8/Makefile.am)1
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.10/NEWS (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.8/NEWS)32
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.10/README (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.8/README)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.10/THANKS (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.8/THANKS)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.10/TODO (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.8/TODO)11
-rwxr-xr-xBuild/source/libs/harfbuzz/harfbuzz-0.9.10/autogen.sh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.8/autogen.sh)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.10/config.h.in (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.8/config.h.in)10
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.10/configure.ac (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.8/configure.ac)43
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.10/harfbuzz.doap (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.8/harfbuzz.doap)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.10/harfbuzz.pc.in (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.8/harfbuzz.pc.in)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/Makefile.am (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/Makefile.am)4
-rwxr-xr-xBuild/source/libs/harfbuzz/harfbuzz-0.9.10/src/check-c-linkage-decls.sh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/check-c-linkage-decls.sh)0
-rwxr-xr-xBuild/source/libs/harfbuzz/harfbuzz-0.9.10/src/check-exported-symbols.sh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/check-exported-symbols.sh)2
-rwxr-xr-xBuild/source/libs/harfbuzz/harfbuzz-0.9.10/src/check-header-guards.sh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/check-header-guards.sh)0
-rwxr-xr-xBuild/source/libs/harfbuzz/harfbuzz-0.9.10/src/check-includes.sh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/check-includes.sh)0
-rwxr-xr-xBuild/source/libs/harfbuzz/harfbuzz-0.9.10/src/check-internal-symbols.sh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/check-internal-symbols.sh)2
-rwxr-xr-xBuild/source/libs/harfbuzz/harfbuzz-0.9.10/src/check-libstdc++.sh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/check-libstdc++.sh)0
-rwxr-xr-xBuild/source/libs/harfbuzz/harfbuzz-0.9.10/src/check-static-inits.sh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/check-static-inits.sh)0
-rwxr-xr-xBuild/source/libs/harfbuzz/harfbuzz-0.9.10/src/gen-arabic-table.py (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/gen-arabic-table.py)0
-rwxr-xr-xBuild/source/libs/harfbuzz/harfbuzz-0.9.10/src/gen-indic-table.py (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/gen-indic-table.py)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-atomic-private.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-atomic-private.hh)15
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-blob.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-blob.cc)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-blob.h (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-blob.h)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-buffer-private.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-buffer-private.hh)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-buffer.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-buffer.cc)4
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-buffer.h (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-buffer.h)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-cache-private.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-cache-private.hh)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-common.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-common.cc)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-common.h (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-common.h)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-coretext.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-coretext.cc)24
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-coretext.h (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-coretext.h)3
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-fallback-shape.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-fallback-shape.cc)10
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-font-private.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-font-private.hh)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-font.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-font.cc)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-font.h (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-font.h)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-ft.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-ft.cc)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-ft.h (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-ft.h)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-glib.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-glib.cc)2
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-glib.h (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-glib.h)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-gobject-enums.cc.tmpl (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-gobject-enums.cc.tmpl)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-gobject-structs.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-gobject-structs.cc)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-gobject.h (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-gobject.h)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-graphite2.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-graphite2.cc)30
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-graphite2.h (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-graphite2.h)8
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-icu-le.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-icu-le.cc)6
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-icu.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-icu.cc)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-icu.h (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-icu.h)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-mutex-private.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-mutex-private.hh)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-object-private.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-object-private.hh)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-old.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-old.cc)14
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-open-file-private.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-open-file-private.hh)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-open-type-private.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-open-type-private.hh)48
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-ot-head-table.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-ot-head-table.hh)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-ot-hhea-table.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-ot-hhea-table.hh)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-ot-hmtx-table.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-ot-hmtx-table.hh)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-ot-layout-common-private.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-ot-layout-common-private.hh)258
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-ot-layout-gdef-table.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-ot-layout-gdef-table.hh)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-ot-layout-gpos-table.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-ot-layout-gpos-table.hh)30
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-ot-layout-gsub-table.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-ot-layout-gsub-table.hh)30
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-ot-layout-gsubgpos-private.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-ot-layout-gsubgpos-private.hh)108
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-ot-layout-private.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-ot-layout-private.hh)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-ot-layout.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-ot-layout.cc)163
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-ot-layout.h (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-ot-layout.h)8
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-ot-map-private.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-ot-map-private.hh)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-ot-map.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-ot-map.cc)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-ot-maxp-table.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-ot-maxp-table.hh)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-ot-name-table.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-ot-name-table.hh)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-ot-shape-complex-arabic-fallback.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-ot-shape-complex-arabic-fallback.hh)4
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-ot-shape-complex-arabic-table.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-ot-shape-complex-arabic-table.hh)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-ot-shape-complex-arabic.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-ot-shape-complex-arabic.cc)2
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-ot-shape-complex-default.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-ot-shape-complex-default.cc)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-ot-shape-complex-indic-machine.hh1443
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-ot-shape-complex-indic-machine.rl (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-ot-shape-complex-indic-machine.rl)4
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-ot-shape-complex-indic-private.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-ot-shape-complex-indic-private.hh)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-ot-shape-complex-indic-table.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-ot-shape-complex-indic-table.hh)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-ot-shape-complex-indic.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-ot-shape-complex-indic.cc)39
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-ot-shape-complex-private.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-ot-shape-complex-private.hh)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-ot-shape-complex-thai.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-ot-shape-complex-thai.cc)2
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-ot-shape-fallback-private.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-ot-shape-fallback-private.hh)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-ot-shape-fallback.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-ot-shape-fallback.cc)4
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-ot-shape-normalize-private.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-ot-shape-normalize-private.hh)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-ot-shape-normalize.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-ot-shape-normalize.cc)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-ot-shape-private.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-ot-shape-private.hh)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-ot-shape.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-ot-shape.cc)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-ot-tag.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-ot-tag.cc)214
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-ot-tag.h (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-ot-tag.h)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-ot.h (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-ot.h)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-private.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-private.hh)20
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-set-private.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-set-private.hh)19
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-set.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-set.cc)9
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-set.h (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-set.h)3
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-shape-plan-private.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-shape-plan-private.hh)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-shape-plan.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-shape-plan.cc)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-shape-plan.h (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-shape-plan.h)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-shape.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-shape.cc)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-shape.h (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-shape.h)2
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-shaper-impl-private.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-shaper-impl-private.hh)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-shaper-list.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-shaper-list.hh)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-shaper-private.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-shaper-private.hh)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-shaper.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-shaper.cc)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-tt-font.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-tt-font.cc)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-ucdn.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-ucdn.cc)27
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-unicode-private.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-unicode-private.hh)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-unicode.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-unicode.cc)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-unicode.h (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-unicode.h)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-uniscribe.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-uniscribe.cc)33
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-uniscribe.h (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-uniscribe.h)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-utf-private.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-utf-private.hh)4
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-version.h.in (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-version.h.in)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-warning.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-warning.cc)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb.h (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb.h)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/main.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/main.cc)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/test-size-params.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/test-size-params.cc)13
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/test-would-substitute.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/test-would-substitute.cc)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/test.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/test.cc)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.8-PATCHES/patch-03-VOID57
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.8-PATCHES/patch-04-MSV14
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.8/git.mk224
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-ot-shape-complex-indic-machine.hh1322
-rw-r--r--Build/source/libs/harfbuzz/version.ac2
128 files changed, 2456 insertions, 2003 deletions
diff --git a/Build/source/libs/README b/Build/source/libs/README
index dd578551ccf..588b5fb2726 100644
--- a/Build/source/libs/README
+++ b/Build/source/libs/README
@@ -30,8 +30,8 @@ graphite 2.4 - checked 15may12
graphite2 1.2.0 - checked 4dec12
http://sourceforge.net/projects/silgraphite/files/graphite2/
-harfbuzz 0.9.8 - checked 5dec12
- http://cgit.freedesktop.org/harfbuzz/
+harfbuzz 0.9.10 - checked 3jan13
+ http://www.freedesktop.org/software/harfbuzz/release/
icu 50.1 (50_1) - checked 7nov12
http://download.icu-project.org/files/icu4c/
diff --git a/Build/source/libs/harfbuzz/ChangeLog b/Build/source/libs/harfbuzz/ChangeLog
index d1ed4aaaac3..130281a2a87 100644
--- a/Build/source/libs/harfbuzz/ChangeLog
+++ b/Build/source/libs/harfbuzz/ChangeLog
@@ -1,3 +1,8 @@
+2013-01-03 Khaled Hosny <khaledhosny@eglug.org>
+
+ Import harfbuzz-0.9.10.
+ * version.ac: Adjust.
+
2012-12-15 Peter Breitenlohner <peb@mppmu.mpg.de>
* configure.ac: Use KPSE_BASIC to enable silent rules.
diff --git a/Build/source/libs/harfbuzz/Makefile.in b/Build/source/libs/harfbuzz/Makefile.in
index f81212a712a..4d3a14f4daa 100644
--- a/Build/source/libs/harfbuzz/Makefile.in
+++ b/Build/source/libs/harfbuzz/Makefile.in
@@ -54,7 +54,7 @@ subdir = .
DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
$(top_srcdir)/configure $(am__configure_deps) \
$(srcdir)/config.h.in \
- $(top_srcdir)/harfbuzz-0.9.8/src/hb-version.h.in \
+ $(top_srcdir)/harfbuzz-0.9.10/src/hb-version.h.in \
$(top_srcdir)/../../build-aux/depcomp ChangeLog \
../../build-aux/config.guess ../../build-aux/config.sub \
../../build-aux/depcomp ../../build-aux/install-sh \
@@ -514,7 +514,7 @@ $(srcdir)/config.h.in: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
distclean-hdr:
-rm -f config.h stamp-h1
-hb-version.h: $(top_builddir)/config.status $(top_srcdir)/harfbuzz-0.9.8/src/hb-version.h.in
+hb-version.h: $(top_builddir)/config.status $(top_srcdir)/harfbuzz-0.9.10/src/hb-version.h.in
cd $(top_builddir) && $(SHELL) ./config.status $@
clean-noinstLIBRARIES:
diff --git a/Build/source/libs/harfbuzz/configure b/Build/source/libs/harfbuzz/configure
index ac2977a3d67..9110243b246 100755
--- a/Build/source/libs/harfbuzz/configure
+++ b/Build/source/libs/harfbuzz/configure
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for harfbuzz for TeX Live 0.9.8.
+# Generated by GNU Autoconf 2.69 for harfbuzz for TeX Live 0.9.10.
#
# Report bugs to <tex-k@tug.org>.
#
@@ -590,12 +590,12 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='harfbuzz for TeX Live'
PACKAGE_TARNAME='harfbuzz-for-tex-live'
-PACKAGE_VERSION='0.9.8'
-PACKAGE_STRING='harfbuzz for TeX Live 0.9.8'
+PACKAGE_VERSION='0.9.10'
+PACKAGE_STRING='harfbuzz for TeX Live 0.9.10'
PACKAGE_BUGREPORT='tex-k@tug.org'
PACKAGE_URL=''
-ac_unique_file="harfbuzz-0.9.8/harfbuzz.pc.in"
+ac_unique_file="harfbuzz-0.9.10/harfbuzz.pc.in"
# Factoring default headers for most tests.
ac_includes_default="\
#include <stdio.h>
@@ -1360,7 +1360,7 @@ if test "$ac_init_help" = "long"; then
# 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 for TeX Live 0.9.8 to adapt to many kinds of systems.
+\`configure' configures harfbuzz for TeX Live 0.9.10 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1431,7 +1431,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of harfbuzz for TeX Live 0.9.8:";;
+ short | recursive ) echo "Configuration of harfbuzz for TeX Live 0.9.10:";;
esac
cat <<\_ACEOF
@@ -1555,7 +1555,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-harfbuzz for TeX Live configure 0.9.8
+harfbuzz for TeX Live configure 0.9.10
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2045,7 +2045,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by harfbuzz for TeX Live $as_me 0.9.8, which was
+It was created by harfbuzz for TeX Live $as_me 0.9.10, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@@ -3909,7 +3909,7 @@ fi
# Define the identity of the package.
PACKAGE='harfbuzz-for-tex-live'
- VERSION='0.9.8'
+ VERSION='0.9.10'
cat >>confdefs.h <<_ACEOF
@@ -4065,8 +4065,8 @@ WARNING_CFLAGS=$kpse_cv_warning_cflags
HB_VERSION_MAJOR=0
HB_VERSION_MINOR=9
-HB_VERSION_MICRO=8
-HB_VERSION=0.9.8
+HB_VERSION_MICRO=10
+HB_VERSION=0.9.10
ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
@@ -16486,7 +16486,7 @@ Usage: $0 [OPTIONS]
Report bugs to <bug-libtool@gnu.org>."
lt_cl_version="\
-harfbuzz for TeX Live config.lt 0.9.8
+harfbuzz for TeX Live config.lt 0.9.10
configured by $0, generated by GNU Autoconf 2.69.
Copyright (C) 2011 Free Software Foundation, Inc.
@@ -18302,14 +18302,14 @@ $as_echo "#define HAVE_INTEL_ATOMIC_PRIMITIVES 1" >>confdefs.h
fi
-HARFBUZZ_TREE=harfbuzz-0.9.8
+HARFBUZZ_TREE=harfbuzz-0.9.10
if test -f $srcdir/$HARFBUZZ_TREE/src/hb-version.h; then
as_fn_error $? "Sorry, you must remove the file $HARFBUZZ_TREE/src/hb-version.h" "$LINENO" 5
fi
-ac_config_files="$ac_config_files Makefile include/Makefile hb-version.h:harfbuzz-0.9.8/src/hb-version.h.in"
+ac_config_files="$ac_config_files Makefile include/Makefile hb-version.h:harfbuzz-0.9.10/src/hb-version.h.in"
cat >confcache <<\_ACEOF
@@ -18858,7 +18858,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by harfbuzz for TeX Live $as_me 0.9.8, which was
+This file was extended by harfbuzz for TeX Live $as_me 0.9.10, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -18924,7 +18924,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-harfbuzz for TeX Live config.status 0.9.8
+harfbuzz for TeX Live config.status 0.9.10
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
@@ -19434,7 +19434,7 @@ do
"config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;;
"Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
"include/Makefile") CONFIG_FILES="$CONFIG_FILES include/Makefile" ;;
- "hb-version.h") CONFIG_FILES="$CONFIG_FILES hb-version.h:harfbuzz-0.9.8/src/hb-version.h.in" ;;
+ "hb-version.h") CONFIG_FILES="$CONFIG_FILES hb-version.h:harfbuzz-0.9.10/src/hb-version.h.in" ;;
*) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
esac
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.8-PATCHES/ChangeLog b/Build/source/libs/harfbuzz/harfbuzz-0.9.10-PATCHES/ChangeLog
index 422c3774ea2..a81eff6bede 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.8-PATCHES/ChangeLog
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.10-PATCHES/ChangeLog
@@ -1,3 +1,10 @@
+2013-01-03 Khaled Hosny <khaledhosny@eglug.org>
+
+ Imported harfbuzz-0.9.10 source tree from:
+ http://www.freedesktop.org/software/harfbuzz/release/
+ * patch-03-VOID (removed): Applied upstream.
+ * patch-04-MSV (removed): ditto.
+
2012-12-06 Peter Breitenlohner <peb@mppmu.mpg.de>
* patch-04-MSV (new): From Akira for MS Visual Studio 2005.
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.8-PATCHES/TL-Changes b/Build/source/libs/harfbuzz/harfbuzz-0.9.10-PATCHES/TL-Changes
index aff826c111f..be519ce4cc3 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.8-PATCHES/TL-Changes
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.10-PATCHES/TL-Changes
@@ -1,5 +1,5 @@
-Changes applied to the harfbuzz-0.9.8/ tree as obtained from:
- http://cgit.freedesktop.org/harfbuzz/
+Changes applied to the harfbuzz-0.9.10/ tree as obtained from:
+ http://www.freedesktop.org/software/harfbuzz/release/harfbuzz-0.9.10.tar.bz2
Removed:
COPYING
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/AUTHORS b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/AUTHORS
index c611d7d4769..c611d7d4769 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/AUTHORS
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/AUTHORS
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.10/Android.mk b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/Android.mk
new file mode 100644
index 00000000000..832d55e475a
--- /dev/null
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/Android.mk
@@ -0,0 +1,74 @@
+##
+## Copyright (C) 2012 The Android Open Source Project
+##
+## Licensed under the Apache License, Version 2.0 (the "License");
+## you may not use this file except in compliance with the License.
+## You may obtain a copy of the License at
+##
+## http://www.apache.org/licenses/LICENSE-2.0
+##
+## Unless required by applicable law or agreed to in writing, software
+## distributed under the License is distributed on an "AS IS" BASIS,
+## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+## See the License for the specific language governing permissions and
+## limitations under the License.
+##
+
+LOCAL_PATH:= $(call my-dir)
+
+#############################################################
+# build the harfbuzz library
+#
+
+include $(CLEAR_VARS)
+
+LOCAL_ARM_MODE := arm
+
+LOCAL_MODULE_TAGS := optional
+
+LOCAL_SRC_FILES:= \
+ src/hb-blob.cc \
+ src/hb-buffer.cc \
+ src/hb-common.cc \
+ src/hb-fallback-shape.cc \
+ src/hb-font.cc \
+ src/hb-ot-tag.cc \
+ src/hb-set.cc \
+ src/hb-shape.cc \
+ src/hb-shape-plan.cc \
+ src/hb-shaper.cc \
+ src/hb-tt-font.cc \
+ src/hb-unicode.cc \
+ src/hb-warning.cc \
+ src/hb-ot-layout.cc \
+ src/hb-ot-map.cc \
+ src/hb-ot-shape.cc \
+ src/hb-ot-shape-complex-arabic.cc \
+ src/hb-ot-shape-complex-default.cc \
+ src/hb-ot-shape-complex-indic.cc \
+ src/hb-ot-shape-complex-thai.cc \
+ src/hb-ot-shape-normalize.cc \
+ src/hb-ot-shape-fallback.cc \
+ src/hb-icu.cc
+
+LOCAL_CPP_EXTENSION := .cc
+
+LOCAL_SHARED_LIBRARIES := \
+ libcutils \
+ libicuuc \
+ libicui18n \
+ libutils
+
+LOCAL_C_INCLUDES += \
+ $(LOCAL_PATH)/src \
+ external/icu4c/common
+
+LOCAL_CFLAGS += -DHB_NO_MT -DHAVE_OT -DHAVE_ICU
+
+LOCAL_LDLIBS += -lpthread
+
+LOCAL_MODULE:= libharfbuzz_ng
+
+include $(BUILD_SHARED_LIBRARY)
+
+
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/Makefile.am b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/Makefile.am
index 7717a0d4925..d7181268797 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/Makefile.am
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/Makefile.am
@@ -12,6 +12,7 @@ pkgconfig_DATA = harfbuzz.pc
EXTRA_DIST = \
autogen.sh \
harfbuzz.doap \
+ Android.mk \
$(NULL)
MAINTAINERCLEANFILES = \
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/NEWS b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/NEWS
index 5b0f38a7b37..ef643f02134 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/NEWS
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/NEWS
@@ -1,3 +1,35 @@
+Overview of changes leading to 0.9.10
+Thursday, January 3, 2013
+=====================================
+
+- [Indic] Fixed rendering of Malayalam dot-reph
+- Updated OT language tags.
+- Updated graphite2 backend.
+- Improved hb_ot_layout_get_size_params() logic.
+- Improve hb-shape/hb-view help output.
+- Fixed hb-set.h implementation to not crash.
+- Fixed various issues with hb_ot_layout_collect_lookups().
+- Various build fixes.
+
+New API:
+
+hb_graphite2_face_get_gr_face()
+hb_graphite2_font_get_gr_font()
+hb_coretext_face_get_cg_font()
+
+Modified API:
+
+hb_ot_layout_get_size_params()
+
+
+Overview of changes leading to 0.9.9
+Wednesday, December 5, 2012
+====================================
+
+- Fix build on Windows.
+- Minor improvements.
+
+
Overview of changes leading to 0.9.8
Tuesday, December 4, 2012
====================================
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/README b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/README
index 74e739da52a..74e739da52a 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/README
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/README
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/THANKS b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/THANKS
index 940cfde5c39..940cfde5c39 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/THANKS
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/THANKS
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/TODO b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/TODO
index 9f8ae3a9931..c93b33e62d7 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/TODO
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/TODO
@@ -55,16 +55,10 @@ API additions
- Add glib GBoxedType stuff and introspection
-- Finish Uniscribe / CoreText face / font get API
-
- BCP 47 language handling / API (language_matches?)
-- Add hb_face_get_glyph_count()?
-
- Add hb_font_create_linear()?
-- Add hb_shape_plan()/hb_shape_planned()
-
- Add query API for aalt-like features?
- SFNT api? get_num_faces? get_table_tags? (there's something in stash)
@@ -77,10 +71,7 @@ API additions
hb-view / hb-shape enhancements:
===============================
-- --output-format should list available formats.
- Add --width, --height, --auto-size, --align, etc?
-- Add XML and JSON formats to hb-shape
-- --features="init=medi=isol=fina=0"
Tests to write:
@@ -94,8 +85,6 @@ Tests to write:
- GObject, FreeType, etc
-- hb_set_t
-
- hb_cache_t and relatives
- hb_feature_to/from_string
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/autogen.sh b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/autogen.sh
index 47640c3e490..47640c3e490 100755
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/autogen.sh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/autogen.sh
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/config.h.in b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/config.h.in
index 923970ccbe9..0973c936bb2 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/config.h.in
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/config.h.in
@@ -1,9 +1,5 @@
/* config.h.in. Generated from configure.ac by autoheader. */
-/* Define to 1 if you have the <ApplicationServices/ApplicationServices.h>
- header file. */
-#undef HAVE_APPLICATIONSERVICES_APPLICATIONSERVICES_H
-
/* Define to 1 if you have the `atexit' function. */
#undef HAVE_ATEXIT
@@ -118,12 +114,6 @@
/* Define to 1 if you have the <unistd.h> header file. */
#undef HAVE_UNISTD_H
-/* Define to 1 if you have the <usp10.h> header file. */
-#undef HAVE_USP10_H
-
-/* Define to 1 if you have the <windows.h> header file. */
-#undef HAVE_WINDOWS_H
-
/* Define to 1 if you have the `_setmode' function. */
#undef HAVE__SETMODE
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/configure.ac b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/configure.ac
index 08638f24dec..91ea7136938 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/configure.ac
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/configure.ac
@@ -1,6 +1,6 @@
AC_PREREQ([2.64])
AC_INIT([HarfBuzz],
- [0.9.8],
+ [0.9.10],
[http://bugs.freedesktop.org/enter_bug.cgi?product=harfbuzz],
[harfbuzz],
[http://harfbuzz.org/])
@@ -208,7 +208,19 @@ AM_CONDITIONAL(HAVE_FREETYPE, $have_freetype)
dnl ===========================================================================
-AC_CHECK_HEADERS(usp10.h windows.h, have_uniscribe=true, have_uniscribe=false)
+AC_MSG_CHECKING([for ScriptShapeOpenType in usp10])
+saved_LIBS=$LIBS
+LIBS="$LIBS -lusp10 -lgdi32"
+AC_LINK_IFELSE([AC_LANG_PROGRAM(
+ [[
+ #define _WIN32_WINNT 0x0600
+ #include <windows.h>
+ #include <usp10.h>
+ ]],
+ ScriptShapeOpenType)],
+ [have_uniscribe=true; AC_MSG_RESULT(yes)],
+ [have_uniscribe=false;AC_MSG_RESULT(no)])
+LIBS=$saved_LIBS
if $have_uniscribe; then
UNISCRIBE_CFLAGS=
UNISCRIBE_LIBS="-lusp10 -lgdi32"
@@ -220,7 +232,7 @@ AM_CONDITIONAL(HAVE_UNISCRIBE, $have_uniscribe)
dnl ===========================================================================
-AC_CHECK_HEADERS(ApplicationServices/ApplicationServices.h, have_coretext=true, have_coretext=false)
+AC_CHECK_TYPE(CTFontRef, have_coretext=true, have_coretext=false, [#include <ApplicationServices/ApplicationServices.h>])
if $have_coretext; then
CORETEXT_CFLAGS=
CORETEXT_LIBS="-framework ApplicationServices"
@@ -263,3 +275,28 @@ test/shaping/Makefile
])
AC_OUTPUT
+
+AC_MSG_NOTICE([
+
+Build configuration:
+
+Unicode callbacks (you want at least one):
+ Glib: ${have_glib}
+ ICU: ${have_icu}
+ UCDN: ${have_ucdn}
+
+Font callbacks (the more the better):
+ FreeType: ${have_freetype}
+
+Tools used for command-line utilities:
+ Cairo: ${have_cairo}
+
+Additional shapers (the more the better):
+ Graphite2: ${have_graphite}
+
+Test / platform shapers (not normally needed):
+ CoreText: ${have_coretext}
+ ICU Layout Engine: ${have_icu_le}
+ Old HarfBuzz: ${have_hb_old}
+ Uniscribe: ${have_uniscribe}
+])
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/harfbuzz.doap b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/harfbuzz.doap
index d2896ebefa8..d2896ebefa8 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/harfbuzz.doap
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/harfbuzz.doap
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/harfbuzz.pc.in b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/harfbuzz.pc.in
index e92319e156c..e92319e156c 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/harfbuzz.pc.in
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/harfbuzz.pc.in
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/Makefile.am b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/Makefile.am
index b7896bf9c46..558ce08ead9 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/Makefile.am
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/Makefile.am
@@ -195,9 +195,13 @@ export_symbols = -export-symbols harfbuzz.def
harfbuzz_def_dependency = harfbuzz.def
libharfbuzz_la_LINK = $(CXXLINK) $(libharfbuzz_la_LDFLAGS)
else
+if HAVE_ICU
+libharfbuzz_la_LINK = $(CXXLINK) $(libharfbuzz_la_LDFLAGS)
+else
# Use a C linker, not C++; Don't link to libstdc++
libharfbuzz_la_LINK = $(LINK) $(libharfbuzz_la_LDFLAGS)
endif
+endif
libharfbuzz_la_SOURCES = $(HBSOURCES) $(HBHEADERS)
nodist_libharfbuzz_la_SOURCES = $(nodist_HBSOURCES)
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/check-c-linkage-decls.sh b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/check-c-linkage-decls.sh
index 44cdfa0f23c..44cdfa0f23c 100755
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/check-c-linkage-decls.sh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/check-c-linkage-decls.sh
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/check-exported-symbols.sh b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/check-exported-symbols.sh
index a7d6f9b6af9..6f0bf7fd823 100755
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/check-exported-symbols.sh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/check-exported-symbols.sh
@@ -24,7 +24,7 @@ for def in $defs; do
echo "Checking that $so has the same symbol list as $def"
{
echo EXPORTS
- nm "$so" | grep ' [BCDGINRSTVW] ' | grep -v ' T _fini\>\| T _init\>' | cut -d' ' -f3
+ nm "$so" | grep ' [BCDGINRSTVW] ' | grep -v ' T _fini\>\| T _init\>\| __bss_start\>\| __bss_start__\>\| __bss_end__\>\| _edata\>\| _end\>\| _bss_end__\>\| __end__\>' | cut -d' ' -f3
stat=1
# cheat: copy the last line from the def file!
tail -n1 "$def"
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/check-header-guards.sh b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/check-header-guards.sh
index af9fa7fc24e..af9fa7fc24e 100755
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/check-header-guards.sh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/check-header-guards.sh
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/check-includes.sh b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/check-includes.sh
index 79323a74fb2..79323a74fb2 100755
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/check-includes.sh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/check-includes.sh
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/check-internal-symbols.sh b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/check-internal-symbols.sh
index f48d1448e4b..a8fdc537dd7 100755
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/check-internal-symbols.sh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/check-internal-symbols.sh
@@ -19,7 +19,7 @@ for suffix in .so; do
so=`echo .libs/libharfbuzz$suffix`
if test -f "$so"; then
echo "Checking that we are not exposing internal symbols"
- if nm "$so" | grep ' [BCDGINRSTVW] ' | grep -v ' T _fini\>\| T _init\>\| T hb_'; then
+ if nm "$so" | grep ' [BCDGINRSTVW] ' | grep -v ' T _fini\>\| T _init\>\| T hb_\| __bss_start\>\| __bss_start__\>\| __bss_end__\>\| _edata\>\| _end\>\| _bss_end__\>\| __end__\>'; then
echo "Ouch, internal symbols exposed"
stat=1
fi
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/check-libstdc++.sh b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/check-libstdc++.sh
index e7e0e295e1a..e7e0e295e1a 100755
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/check-libstdc++.sh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/check-libstdc++.sh
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/check-static-inits.sh b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/check-static-inits.sh
index bb0a7ff630d..bb0a7ff630d 100755
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/check-static-inits.sh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/check-static-inits.sh
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/gen-arabic-table.py b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/gen-arabic-table.py
index da5a4fcbf5c..da5a4fcbf5c 100755
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/gen-arabic-table.py
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/gen-arabic-table.py
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/gen-indic-table.py b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/gen-indic-table.py
index 94aa2ab0728..94aa2ab0728 100755
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/gen-indic-table.py
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/gen-indic-table.py
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-atomic-private.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-atomic-private.hh
index 5861a7124b3..67579cdd442 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-atomic-private.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-atomic-private.hh
@@ -59,7 +59,7 @@ static inline void HBMemoryBarrier (void) {
}
#endif
-typedef long hb_atomic_int_t;
+typedef LONG hb_atomic_int_t;
#define hb_atomic_int_add(AI, V) InterlockedExchangeAdd (&(AI), (V))
#define hb_atomic_ptr_get(P) (HBMemoryBarrier (), (void *) *(P))
@@ -69,12 +69,25 @@ typedef long hb_atomic_int_t;
#elif !defined(HB_NO_MT) && defined(__APPLE__)
#include <libkern/OSAtomic.h>
+#ifdef __MAC_OS_X_MIN_REQUIRED
+#include <AvailabilityMacros.h>
+#elif defined(__IPHONE_OS_MIN_REQUIRED)
+#include <Availability.h>
+#endif
typedef int32_t hb_atomic_int_t;
#define hb_atomic_int_add(AI, V) (OSAtomicAdd32Barrier ((V), &(AI)) - (V))
#define hb_atomic_ptr_get(P) (OSMemoryBarrier (), (void *) *(P))
+#if (MAC_OS_X_VERSION_MIN_REQUIRED > MAC_OS_X_VERSION_10_4 || __IPHONE_VERSION_MIN_REQUIRED >= 20100)
#define hb_atomic_ptr_cmpexch(P,O,N) OSAtomicCompareAndSwapPtrBarrier ((void *) (O), (void *) (N), (void **) (P))
+#else
+#if __ppc64__ || __x86_64__
+#define hb_atomic_ptr_cmpexch(P,O,N) OSAtomicCompareAndSwap64Barrier ((int64_t) (O), (int64_t) (N), (int64_t*) (P))
+#else
+#define hb_atomic_ptr_cmpexch(P,O,N) OSAtomicCompareAndSwap32Barrier ((int32_t) (O), (int32_t) (N), (int32_t*) (P))
+#endif
+#endif
#elif !defined(HB_NO_MT) && defined(HAVE_INTEL_ATOMIC_PRIMITIVES)
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-blob.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-blob.cc
index b6e696be322..b6e696be322 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-blob.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-blob.cc
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-blob.h b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-blob.h
index 1a93baa46dc..1a93baa46dc 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-blob.h
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-blob.h
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-buffer-private.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-buffer-private.hh
index 13cf4bb0e9b..13cf4bb0e9b 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-buffer-private.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-buffer-private.hh
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-buffer.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-buffer.cc
index 0a5600be0de..4b644e40217 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-buffer.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-buffer.cc
@@ -1071,8 +1071,8 @@ hb_buffer_normalize_glyphs (hb_buffer_t *buffer)
*/
static const char *serialize_formats[] = {
- "TEXT",
- "JSON",
+ "text",
+ "json",
NULL
};
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-buffer.h b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-buffer.h
index 48ec4a527ad..48ec4a527ad 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-buffer.h
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-buffer.h
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-cache-private.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-cache-private.hh
index 19b70b7e395..19b70b7e395 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-cache-private.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-cache-private.hh
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-common.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-common.cc
index 9422555cfbc..9422555cfbc 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-common.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-common.cc
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-common.h b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-common.h
index cc221d33be9..cc221d33be9 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-common.h
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-common.h
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-coretext.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-coretext.cc
index dfb6341dc61..8f94795928c 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-coretext.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-coretext.cc
@@ -29,10 +29,6 @@
#define HB_SHAPER coretext
#include "hb-shaper-impl-private.hh"
-#define GlyphID GlyphID_mac
-#include <ApplicationServices/ApplicationServices.h>
-#undef GlyphID
-
#include "hb-coretext.h"
@@ -95,6 +91,14 @@ _hb_coretext_shaper_face_data_destroy (hb_coretext_shaper_face_data_t *data)
free (data);
}
+CGFontRef
+hb_coretext_face_get_cg_font (hb_face_t *face)
+{
+ if (unlikely (!hb_coretext_shaper_face_data_ensure (face))) return NULL;
+ hb_coretext_shaper_face_data_t *face_data = HB_SHAPER_DATA_GET (face);
+ return face_data->cg_font;
+}
+
/*
* shaper font data
@@ -153,19 +157,19 @@ _hb_coretext_shaper_shape_plan_data_destroy (hb_coretext_shaper_shape_plan_data_
{
}
-
-/*
- * shaper
- */
-
CTFontRef
hb_coretext_font_get_ct_font (hb_font_t *font)
{
- if (unlikely (!hb_coretext_shaper_font_data_ensure (font))) return 0;
+ if (unlikely (!hb_coretext_shaper_font_data_ensure (font))) return NULL;
hb_coretext_shaper_font_data_t *font_data = HB_SHAPER_DATA_GET (font);
return font_data->ct_font;
}
+
+/*
+ * shaper
+ */
+
hb_bool_t
_hb_coretext_shape (hb_shape_plan_t *shape_plan,
hb_font_t *font,
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-coretext.h b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-coretext.h
index 0b34203d991..c4954fa1b2c 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-coretext.h
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-coretext.h
@@ -34,6 +34,9 @@
HB_BEGIN_DECLS
+CGFontRef
+hb_coretext_face_get_cg_font (hb_face_t *face);
+
CTFontRef
hb_coretext_font_get_ct_font (hb_font_t *font);
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-fallback-shape.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-fallback-shape.cc
index 989596ee55b..bdc8a80c4bd 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-fallback-shape.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-fallback-shape.cc
@@ -35,13 +35,13 @@
struct hb_fallback_shaper_face_data_t {};
hb_fallback_shaper_face_data_t *
-_hb_fallback_shaper_face_data_create (hb_face_t *face)
+_hb_fallback_shaper_face_data_create (hb_face_t *face HB_UNUSED)
{
return (hb_fallback_shaper_face_data_t *) HB_SHAPER_DATA_SUCCEEDED;
}
void
-_hb_fallback_shaper_face_data_destroy (hb_fallback_shaper_face_data_t *data)
+_hb_fallback_shaper_face_data_destroy (hb_fallback_shaper_face_data_t *data HB_UNUSED)
{
}
@@ -53,13 +53,13 @@ _hb_fallback_shaper_face_data_destroy (hb_fallback_shaper_face_data_t *data)
struct hb_fallback_shaper_font_data_t {};
hb_fallback_shaper_font_data_t *
-_hb_fallback_shaper_font_data_create (hb_font_t *font)
+_hb_fallback_shaper_font_data_create (hb_font_t *font HB_UNUSED)
{
return (hb_fallback_shaper_font_data_t *) HB_SHAPER_DATA_SUCCEEDED;
}
void
-_hb_fallback_shaper_font_data_destroy (hb_fallback_shaper_font_data_t *data)
+_hb_fallback_shaper_font_data_destroy (hb_fallback_shaper_font_data_t *data HB_UNUSED)
{
}
@@ -89,7 +89,7 @@ _hb_fallback_shaper_shape_plan_data_destroy (hb_fallback_shaper_shape_plan_data_
*/
hb_bool_t
-_hb_fallback_shape (hb_shape_plan_t *shape_plan,
+_hb_fallback_shape (hb_shape_plan_t *shape_plan HB_UNUSED,
hb_font_t *font,
hb_buffer_t *buffer,
const hb_feature_t *features HB_UNUSED,
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-font-private.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-font-private.hh
index 48fbb0ee549..48fbb0ee549 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-font-private.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-font-private.hh
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-font.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-font.cc
index b59fdebaea7..b59fdebaea7 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-font.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-font.cc
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-font.h b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-font.h
index 88d489551e8..88d489551e8 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-font.h
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-font.h
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-ft.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-ft.cc
index 6198185e9e4..6198185e9e4 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-ft.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-ft.cc
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-ft.h b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-ft.h
index 696251e143f..696251e143f 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-ft.h
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-ft.h
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-glib.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-glib.cc
index 04627587989..676e6601628 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-glib.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-glib.cc
@@ -334,7 +334,7 @@ hb_glib_unicode_decompose (hb_unicode_funcs_t *ufuncs HB_UNUSED,
}
static unsigned int
-hb_glib_unicode_decompose_compatibility (hb_unicode_funcs_t *ufuncs,
+hb_glib_unicode_decompose_compatibility (hb_unicode_funcs_t *ufuncs HB_UNUSED,
hb_codepoint_t u,
hb_codepoint_t *decomposed,
void *user_data HB_UNUSED)
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-glib.h b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-glib.h
index 63a9d3366c5..63a9d3366c5 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-glib.h
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-glib.h
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-gobject-enums.cc.tmpl b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-gobject-enums.cc.tmpl
index 05abd898d4f..05abd898d4f 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-gobject-enums.cc.tmpl
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-gobject-enums.cc.tmpl
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-gobject-structs.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-gobject-structs.cc
index cec48542275..cec48542275 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-gobject-structs.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-gobject-structs.cc
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-gobject.h b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-gobject.h
index 4f23fdd385d..4f23fdd385d 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-gobject.h
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-gobject.h
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-graphite2.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-graphite2.cc
index 6c890d42c63..16ef9a4dabe 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-graphite2.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-graphite2.cc
@@ -113,7 +113,7 @@ _hb_graphite2_shaper_face_data_create (hb_face_t *face)
hb_blob_destroy (silf_blob);
data->face = face;
- data->grface = gr_make_face (data, &hb_graphite2_get_table, gr_face_default);
+ data->grface = gr_make_face (data, &hb_graphite2_get_table, gr_face_preloadAll);
if (unlikely (!data->grface)) {
free (data);
@@ -141,6 +141,13 @@ _hb_graphite2_shaper_face_data_destroy (hb_graphite2_shaper_face_data_t *data)
free (data);
}
+gr_face *
+hb_graphite2_face_get_gr_face (hb_face_t *face)
+{
+ if (unlikely (!hb_graphite2_shaper_face_data_ensure (face))) return NULL;
+ return HB_SHAPER_DATA_GET (face)->grface;
+}
+
/*
* shaper font data
@@ -168,6 +175,13 @@ _hb_graphite2_shaper_font_data_destroy (hb_graphite2_shaper_font_data_t *data)
gr_font_destroy (data);
}
+gr_font *
+hb_graphite2_font_get_gr_font (hb_font_t *font)
+{
+ if (unlikely (!hb_graphite2_shaper_font_data_ensure (font))) return NULL;
+ return HB_SHAPER_DATA_GET (font);
+}
+
/*
* shaper shape_plan data
@@ -311,10 +325,18 @@ _hb_graphite2_shape (hb_shape_plan_t *shape_plan,
}
ci++;
- buffer->clear_output ();
+ //buffer->clear_output ();
for (unsigned int i = 0; i < ci; ++i)
- buffer->replace_glyphs (clusters[i].num_chars, clusters[i].num_glyphs, gids + clusters[i].base_glyph);
- buffer->swap_buffers ();
+ {
+ for (unsigned int j = 0; j < clusters[i].num_glyphs; ++j)
+ {
+ hb_glyph_info_t *info = &buffer->info[clusters[i].base_glyph + j];
+ info->codepoint = gids[clusters[i].base_glyph + j];
+ info->cluster = gr_cinfo_base(gr_seg_cinfo(seg, clusters[i].base_char));
+ }
+ }
+ buffer->len = glyph_count;
+ //buffer->swap_buffers ();
if (HB_DIRECTION_IS_BACKWARD(buffer->props.direction))
curradvx = gr_seg_advance_X(seg);
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-graphite2.h b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-graphite2.h
index 81224955465..bea68f939b4 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-graphite2.h
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-graphite2.h
@@ -33,7 +33,13 @@ HB_BEGIN_DECLS
#define HB_GRAPHITE2_TAG_SILF HB_TAG('S','i','l','f')
-/* TODO add gr_font/face etc getters and other glue API */
+
+gr_face *
+hb_graphite2_face_get_gr_face (hb_face_t *face);
+
+gr_font *
+hb_graphite2_font_get_gr_font (hb_font_t *font);
+
HB_END_DECLS
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-icu-le.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-icu-le.cc
index 61099fedf74..c05d330b957 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-icu-le.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-icu-le.cc
@@ -43,13 +43,13 @@
struct hb_icu_le_shaper_face_data_t {};
hb_icu_le_shaper_face_data_t *
-_hb_icu_le_shaper_face_data_create (hb_face_t *face)
+_hb_icu_le_shaper_face_data_create (hb_face_t *face HB_UNUSED)
{
return (hb_icu_le_shaper_face_data_t *) HB_SHAPER_DATA_SUCCEEDED;
}
void
-_hb_icu_le_shaper_face_data_destroy (hb_icu_le_shaper_face_data_t *data)
+_hb_icu_le_shaper_face_data_destroy (hb_icu_le_shaper_face_data_t *data HB_UNUSED)
{
}
@@ -88,7 +88,7 @@ _hb_icu_le_shaper_font_data_destroy (hb_icu_le_shaper_font_data_t *data)
struct hb_icu_le_shaper_shape_plan_data_t {};
hb_icu_le_shaper_shape_plan_data_t *
-_hb_icu_le_shaper_shape_plan_data_create (hb_shape_plan_t *shape_plan,
+_hb_icu_le_shaper_shape_plan_data_create (hb_shape_plan_t *shape_plan HB_UNUSED,
const hb_feature_t *user_features,
unsigned int num_user_features)
{
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-icu.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-icu.cc
index c177be2c4b2..c177be2c4b2 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-icu.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-icu.cc
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-icu.h b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-icu.h
index f2f35f0f2ce..f2f35f0f2ce 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-icu.h
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-icu.h
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-mutex-private.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-mutex-private.hh
index 5b3a17e9174..5b3a17e9174 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-mutex-private.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-mutex-private.hh
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-object-private.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-object-private.hh
index 8a9ae34dbee..8a9ae34dbee 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-object-private.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-object-private.hh
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-old.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-old.cc
index 7c3e3702b46..a7ea8ed9bbe 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-old.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-old.cc
@@ -110,7 +110,7 @@ hb_old_getGlyphAdvances (HB_Font old_font,
const HB_Glyph *glyphs,
hb_uint32 numGlyphs,
HB_Fixed *advances,
- int flags /*HB_ShaperFlag*/)
+ int flags /*HB_ShaperFlag*/ HB_UNUSED)
{
hb_font_t *font = (hb_font_t *) old_font->userData;
@@ -251,15 +251,15 @@ _hb_old_shaper_font_data_destroy (hb_old_shaper_font_data_t *data)
struct hb_old_shaper_shape_plan_data_t {};
hb_old_shaper_shape_plan_data_t *
-_hb_old_shaper_shape_plan_data_create (hb_shape_plan_t *shape_plan,
- const hb_feature_t *user_features,
- unsigned int num_user_features)
+_hb_old_shaper_shape_plan_data_create (hb_shape_plan_t *shape_plan HB_UNUSED,
+ const hb_feature_t *user_features HB_UNUSED,
+ unsigned int num_user_features HB_UNUSED)
{
return (hb_old_shaper_shape_plan_data_t *) HB_SHAPER_DATA_SUCCEEDED;
}
void
-_hb_old_shaper_shape_plan_data_destroy (hb_old_shaper_shape_plan_data_t *data)
+_hb_old_shaper_shape_plan_data_destroy (hb_old_shaper_shape_plan_data_t *data HB_UNUSED)
{
}
@@ -269,7 +269,7 @@ _hb_old_shaper_shape_plan_data_destroy (hb_old_shaper_shape_plan_data_t *data)
*/
hb_bool_t
-_hb_old_shape (hb_shape_plan_t *shape_plan,
+_hb_old_shape (hb_shape_plan_t *shape_plan HB_UNUSED,
hb_font_t *font,
hb_buffer_t *buffer,
const hb_feature_t *features,
@@ -369,7 +369,7 @@ retry:
*p = MIN (*p, buffer->info[i].cluster);
}
for (unsigned int i = 1; i < num_glyphs; i++)
- if (vis_clusters[i] == -1)
+ if (vis_clusters[i] == (uint32_t) -1)
vis_clusters[i] = vis_clusters[i - 1];
#undef utf16_index
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-open-file-private.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-open-file-private.hh
index 250504ae20b..250504ae20b 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-open-file-private.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-open-file-private.hh
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-open-type-private.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-open-type-private.hh
index 2372235a5ae..5bfeb165470 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-open-type-private.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-open-type-private.hh
@@ -180,9 +180,7 @@ struct hb_sanitize_context_t
template <typename T>
inline return_t process (const T &obj) { return obj.sanitize (this); }
static return_t default_return_value (void) { return true; }
- bool stop_sublookup_iteration (const return_t r) const { return false; }
- return_t recurse (unsigned int lookup_index)
- { return default_return_value (); }
+ bool stop_sublookup_iteration (const return_t r HB_UNUSED) const { return false; }
inline void init (hb_blob_t *b)
{
@@ -257,7 +255,8 @@ struct hb_sanitize_context_t
"may_edit(%u) [%p..%p] (%d bytes) in [%p..%p] -> %s",
this->edit_count,
p, p + len, len,
- this->start, this->end);
+ this->start, this->end,
+ this->writable ? "GRANTED" : "DENIED");
return TRACE_RETURN (this->writable);
}
@@ -536,32 +535,43 @@ struct BEInt<Type, 4>
inline bool operator != (const BEInt<Type, 4>& o) const { return !(*this == o); }
private: uint8_t v[4];
};
+template <typename Type>
+struct BEInt<Type, 3>
+{
+ public:
+ inline void set (Type i) { hb_be_uint24_put (v,i); }
+ inline operator Type (void) const { return hb_be_uint24_get (v); }
+ inline bool operator == (const BEInt<Type, 3>& o) const { return hb_be_uint24_eq (v, o.v); }
+ inline bool operator != (const BEInt<Type, 3>& o) const { return !(*this == o); }
+ private: uint8_t v[3];
+};
/* Integer types in big-endian order and no alignment requirement */
-template <typename Type>
+template <typename Type, unsigned int Size>
struct IntType
{
inline void set (Type i) { v.set (i); }
inline operator Type(void) const { return v; }
- inline bool operator == (const IntType<Type> &o) const { return v == o.v; }
- inline bool operator != (const IntType<Type> &o) const { return v != o.v; }
- static inline int cmp (const IntType<Type> *a, const IntType<Type> *b) { return b->cmp (*a); }
- inline int cmp (IntType<Type> va) const { Type a = va; Type b = v; return a < b ? -1 : a == b ? 0 : +1; }
+ inline bool operator == (const IntType<Type,Size> &o) const { return v == o.v; }
+ inline bool operator != (const IntType<Type,Size> &o) const { return v != o.v; }
+ static inline int cmp (const IntType<Type,Size> *a, const IntType<Type,Size> *b) { return b->cmp (*a); }
+ inline int cmp (IntType<Type,Size> va) const { Type a = va; Type b = v; return a < b ? -1 : a == b ? 0 : +1; }
inline int cmp (Type a) const { Type b = v; return a < b ? -1 : a == b ? 0 : +1; }
inline bool sanitize (hb_sanitize_context_t *c) {
TRACE_SANITIZE (this);
return TRACE_RETURN (likely (c->check_struct (this)));
}
protected:
- BEInt<Type, sizeof (Type)> v;
+ BEInt<Type, Size> v;
public:
- DEFINE_SIZE_STATIC (sizeof (Type));
+ DEFINE_SIZE_STATIC (Size);
};
-typedef IntType<uint16_t> USHORT; /* 16-bit unsigned integer. */
-typedef IntType<int16_t> SHORT; /* 16-bit signed integer. */
-typedef IntType<uint32_t> ULONG; /* 32-bit unsigned integer. */
-typedef IntType<int32_t> LONG; /* 32-bit signed integer. */
+typedef IntType<uint16_t, 2> USHORT; /* 16-bit unsigned integer. */
+typedef IntType<int16_t, 2> SHORT; /* 16-bit signed integer. */
+typedef IntType<uint32_t, 4> ULONG; /* 32-bit unsigned integer. */
+typedef IntType<int32_t, 4> LONG; /* 32-bit signed integer. */
+typedef IntType<uint32_t, 3> UINT24; /* 24-bit unsigned integer. */
/* 16-bit signed integer (SHORT) that describes a quantity in FUnits. */
typedef SHORT FWORD;
@@ -695,7 +705,13 @@ struct GenericOffsetTo : OffsetType
return TRACE_RETURN (likely (obj.sanitize (c, user_data)) || neuter (c));
}
- private:
+ inline bool try_set (hb_sanitize_context_t *c, const OffsetType &v) {
+ if (c->may_edit (this, this->static_size)) {
+ this->set (v);
+ return true;
+ }
+ return false;
+ }
/* Set the offset to Null */
inline bool neuter (hb_sanitize_context_t *c) {
if (c->may_edit (this, this->static_size)) {
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-ot-head-table.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-ot-head-table.hh
index 3a9451295de..3a9451295de 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-ot-head-table.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-ot-head-table.hh
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-ot-hhea-table.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-ot-hhea-table.hh
index 2b89c4e0208..2b89c4e0208 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-ot-hhea-table.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-ot-hhea-table.hh
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-ot-hmtx-table.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-ot-hmtx-table.hh
index b94337d0be7..b94337d0be7 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-ot-hmtx-table.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-ot-hmtx-table.hh
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-ot-layout-common-private.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-ot-layout-common-private.hh
index 0b753b83346..e6018db1243 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-ot-layout-common-private.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-ot-layout-common-private.hh
@@ -60,9 +60,14 @@ struct Record
return tag.cmp (a);
}
+ struct sanitize_closure_t {
+ hb_tag_t tag;
+ void *list_base;
+ };
inline bool sanitize (hb_sanitize_context_t *c, void *base) {
TRACE_SANITIZE (this);
- return TRACE_RETURN (c->check_struct (this) && offset.sanitize (c, base));
+ const sanitize_closure_t closure = {tag, base};
+ return TRACE_RETURN (c->check_struct (this) && offset.sanitize (c, base, &closure));
}
Tag tag; /* 4-byte Tag identifier */
@@ -192,7 +197,8 @@ struct LangSys
return reqFeatureIndex;;
}
- inline bool sanitize (hb_sanitize_context_t *c) {
+ inline bool sanitize (hb_sanitize_context_t *c,
+ const Record<LangSys>::sanitize_closure_t * = NULL) {
TRACE_SANITIZE (this);
return TRACE_RETURN (c->check_struct (this) && featureIndex.sanitize (c));
}
@@ -230,7 +236,8 @@ struct Script
inline bool has_default_lang_sys (void) const { return defaultLangSys != 0; }
inline const LangSys& get_default_lang_sys (void) const { return this+defaultLangSys; }
- inline bool sanitize (hb_sanitize_context_t *c) {
+ inline bool sanitize (hb_sanitize_context_t *c,
+ const Record<Script>::sanitize_closure_t * = NULL) {
TRACE_SANITIZE (this);
return TRACE_RETURN (defaultLangSys.sanitize (c, this) && langSys.sanitize (c, this));
}
@@ -248,32 +255,218 @@ struct Script
typedef RecordListOf<Script> ScriptList;
+
+/* http://www.microsoft.com/typography/otspec/features_pt.htm#size */
struct FeatureParamsSize
{
inline bool sanitize (hb_sanitize_context_t *c) {
TRACE_SANITIZE (this);
- return TRACE_RETURN (c->check_struct (this));
+ if (unlikely (!c->check_struct (this))) return TRACE_RETURN (false);
+
+ /* This subtable has some "history", if you will. Some earlier versions of
+ * Adobe tools calculated the offset of the FeatureParams sutable from the
+ * beginning of the FeatureList table! Now, that is dealt with in the
+ * Feature implementation. But we still need to be able to tell junk from
+ * real data. Note: We don't check that the nameID actually exists.
+ *
+ * Read Roberts wrote on 9/15/06 on opentype-list@indx.co.uk :
+ *
+ * Yes, it is correct that a new version of the AFDKO (version 2.0) will be
+ * coming out soon, and that the makeotf program will build a font with a
+ * 'size' feature that is correct by the specification.
+ *
+ * The specification for this feature tag is in the "OpenType Layout Tag
+ * Registry". You can see a copy of this at:
+ * http://partners.adobe.com/public/developer/opentype/index_tag8.html#size
+ *
+ * Here is one set of rules to determine if the 'size' feature is built
+ * correctly, or as by the older versions of MakeOTF. You may be able to do
+ * better.
+ *
+ * Assume that the offset to the size feature is according to specification,
+ * and make the following value checks. If it fails, assume the the size
+ * feature is calculated as versions of MakeOTF before the AFDKO 2.0 built it.
+ * If this fails, reject the 'size' feature. The older makeOTF's calculated the
+ * offset from the beginning of the FeatureList table, rather than from the
+ * beginning of the 'size' Feature table.
+ *
+ * If "design size" == 0:
+ * fails check
+ *
+ * Else if ("subfamily identifier" == 0 and
+ * "range start" == 0 and
+ * "range end" == 0 and
+ * "range start" == 0 and
+ * "menu name ID" == 0)
+ * passes check: this is the format used when there is a design size
+ * specified, but there is no recommended size range.
+ *
+ * Else if ("design size" < "range start" or
+ * "design size" > "range end" or
+ * "range end" <= "range start" or
+ * "menu name ID" < 256 or
+ * "menu name ID" > 32767 or
+ * menu name ID is not a name ID which is actually in the name table)
+ * fails test
+ * Else
+ * passes test.
+ */
+
+ if (!designSize)
+ return TRACE_RETURN (false);
+ else if (subfamilyID == 0 &&
+ subfamilyNameID == 0 &&
+ rangeStart == 0 &&
+ rangeEnd == 0)
+ return TRACE_RETURN (true);
+ else if (designSize < rangeStart ||
+ designSize > rangeEnd ||
+ subfamilyNameID < 256 ||
+ subfamilyNameID > 32767)
+ return TRACE_RETURN (false);
+ else
+ return TRACE_RETURN (true);
}
- USHORT params[5];
+ USHORT designSize; /* Represents the design size in 720/inch
+ * units (decipoints). The design size entry
+ * must be non-zero. When there is a design
+ * size but no recommended size range, the
+ * rest of the array will consist of zeros. */
+ USHORT subfamilyID; /* Has no independent meaning, but serves
+ * as an identifier that associates fonts
+ * in a subfamily. All fonts which share a
+ * Preferred or Font Family name and which
+ * differ only by size range shall have the
+ * same subfamily value, and no fonts which
+ * differ in weight or style shall have the
+ * same subfamily value. If this value is
+ * zero, the remaining fields in the array
+ * will be ignored. */
+ USHORT subfamilyNameID;/* If the preceding value is non-zero, this
+ * value must be set in the range 256 - 32767
+ * (inclusive). It records the value of a
+ * field in the name table, which must
+ * contain English-language strings encoded
+ * in Windows Unicode and Macintosh Roman,
+ * and may contain additional strings
+ * localized to other scripts and languages.
+ * Each of these strings is the name an
+ * application should use, in combination
+ * with the family name, to represent the
+ * subfamily in a menu. Applications will
+ * choose the appropriate version based on
+ * their selection criteria. */
+ USHORT rangeStart; /* Large end of the recommended usage range
+ * (inclusive), stored in 720/inch units
+ * (decipoints). */
+ USHORT rangeEnd; /* Small end of the recommended usage range
+ (exclusive), stored in 720/inch units
+ * (decipoints). */
public:
DEFINE_SIZE_STATIC (10);
};
-struct FeatureParams
+/* http://www.microsoft.com/typography/otspec/features_pt.htm#ssxx */
+struct FeatureParamsStylisticSet
{
- /* Note: currently the only feature with params is 'size', so we hardcode
- * the length of the table to that of the FeatureParamsSize. */
-
inline bool sanitize (hb_sanitize_context_t *c) {
TRACE_SANITIZE (this);
+ /* Right now minorVersion is at zero. Which means, any table supports
+ * the uiNameID field. */
return TRACE_RETURN (c->check_struct (this));
}
+ USHORT minorVersion; /* (set to 0): This corresponds to a “minor”
+ * version number. Additional data may be
+ * added to the end of this Feature Parameters
+ * table in the future. */
+
+ USHORT uiNameID; /* The 'name' table name ID that specifies a
+ * string (or strings, for multiple languages)
+ * for a user-interface label for this
+ * feature. The values of uiLabelNameId and
+ * sampleTextNameId are expected to be in the
+ * font-specific name ID range (256-32767),
+ * though that is not a requirement in this
+ * Feature Parameters specification. The
+ * user-interface label for the feature can
+ * be provided in multiple languages. An
+ * English string should be included as a
+ * fallback. The string should be kept to a
+ * minimal length to fit comfortably with
+ * different application interfaces. */
+ public:
+ DEFINE_SIZE_STATIC (4);
+};
+
+struct FeatureParamsCharacterVariants
+{
+ inline bool sanitize (hb_sanitize_context_t *c) {
+ TRACE_SANITIZE (this);
+ return TRACE_RETURN (c->check_struct (this) &&
+ characters.sanitize (c));
+ }
+
+ USHORT format; /* Format number is set to 0. */
+ USHORT featUILableNameID; /* The ‘name’ table name ID that
+ * specifies a string (or strings,
+ * for multiple languages) for a
+ * user-interface label for this
+ * feature. (May be NULL.) */
+ USHORT featUITooltipTextNameID;/* The ‘name’ table name ID that
+ * specifies a string (or strings,
+ * for multiple languages) that an
+ * application can use for tooltip
+ * text for this feature. (May be
+ * NULL.) */
+ USHORT sampleTextNameID; /* The ‘name’ table name ID that
+ * specifies sample text that
+ * illustrates the effect of this
+ * feature. (May be NULL.) */
+ USHORT numNamedParameters; /* Number of named parameters. (May
+ * be zero.) */
+ USHORT firstParamUILabelNameID;/* The first ‘name’ table name ID
+ * used to specify strings for
+ * user-interface labels for the
+ * feature parameters. (Must be zero
+ * if numParameters is zero.) */
+ ArrayOf<UINT24>
+ characters; /* Array of the Unicode Scalar Value
+ * of the characters for which this
+ * feature provides glyph variants.
+ * (May be zero.) */
+ public:
+ DEFINE_SIZE_ARRAY (14, characters);
+};
+
+struct FeatureParams
+{
+ inline bool sanitize (hb_sanitize_context_t *c, hb_tag_t tag) {
+ TRACE_SANITIZE (this);
+ if (tag == HB_TAG ('s','i','z','e'))
+ return TRACE_RETURN (u.size.sanitize (c));
+ if ((tag & 0xFFFF0000) == HB_TAG ('s','s','\0','\0')) /* ssXX */
+ return TRACE_RETURN (u.stylisticSet.sanitize (c));
+ if ((tag & 0xFFFF0000) == HB_TAG ('c','v','\0','\0')) /* cvXX */
+ return TRACE_RETURN (u.characterVariants.sanitize (c));
+ return TRACE_RETURN (true);
+ }
+
+ inline const FeatureParamsSize& get_size_params (hb_tag_t tag) const
+ {
+ if (tag == HB_TAG ('s','i','z','e'))
+ return u.size;
+ return Null(FeatureParamsSize);
+ }
+
+ private:
union {
- FeatureParamsSize size;
+ FeatureParamsSize size;
+ FeatureParamsStylisticSet stylisticSet;
+ FeatureParamsCharacterVariants characterVariants;
} u;
- DEFINE_SIZE_STATIC (10);
+ DEFINE_SIZE_STATIC (17);
};
struct Feature
@@ -290,10 +483,47 @@ struct Feature
inline const FeatureParams &get_feature_params (void) const
{ return this+featureParams; }
- inline bool sanitize (hb_sanitize_context_t *c) {
+ inline bool sanitize (hb_sanitize_context_t *c,
+ const Record<Feature>::sanitize_closure_t *closure) {
TRACE_SANITIZE (this);
- return TRACE_RETURN (c->check_struct (this) && lookupIndex.sanitize (c) &&
- featureParams.sanitize (c, this));
+ if (unlikely (!(c->check_struct (this) && lookupIndex.sanitize (c))))
+ return TRACE_RETURN (false);
+
+ /* Some earlier versions of Adobe tools calculated the offset of the
+ * FeatureParams subtable from the beginning of the FeatureList table!
+ *
+ * If sanitizing "failed" for the FeatureParams subtable, try it with the
+ * alternative location. We would know sanitize "failed" if old value
+ * of the offset was non-zero, but it's zeroed now.
+ *
+ * Only do this for the 'size' feature, since at the time of the faulty
+ * Adobe tools, only the 'size' feature had FeatureParams defined.
+ */
+
+ Offset orig_offset = featureParams;
+ if (unlikely (!featureParams.sanitize (c, this, closure ? closure->tag : HB_TAG_NONE)))
+ return TRACE_RETURN (false);
+
+ if (likely (!orig_offset))
+ return TRACE_RETURN (true);
+
+ if (featureParams == 0 && closure &&
+ closure->tag == HB_TAG ('s','i','z','e') &&
+ closure->list_base && closure->list_base < this)
+ {
+ unsigned int new_offset_int = (unsigned int) orig_offset -
+ ((char *) this - (char *) closure->list_base);
+
+ Offset new_offset;
+ /* Check that it did not overflow. */
+ new_offset.set (new_offset_int);
+ if (new_offset == new_offset_int &&
+ featureParams.try_set (c, new_offset) &&
+ !featureParams.sanitize (c, this, closure ? closure->tag : HB_TAG_NONE))
+ return TRACE_RETURN (false);
+ }
+
+ return TRACE_RETURN (true);
}
OffsetTo<FeatureParams>
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-ot-layout-gdef-table.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-ot-layout-gdef-table.hh
index ff2d09c51f0..ff2d09c51f0 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-ot-layout-gdef-table.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-ot-layout-gdef-table.hh
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-ot-layout-gpos-table.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-ot-layout-gpos-table.hh
index 5ec7e078801..d27ce4f71ee 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-ot-layout-gpos-table.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-ot-layout-gpos-table.hh
@@ -422,7 +422,7 @@ struct SinglePosFormat1
inline void collect_glyphs (hb_collect_glyphs_context_t *c) const
{
TRACE_COLLECT_GLYPHS (this);
- (this+coverage).add_coverage (&c->input);
+ (this+coverage).add_coverage (c->input);
}
inline const Coverage &get_coverage (void) const
@@ -467,7 +467,7 @@ struct SinglePosFormat2
inline void collect_glyphs (hb_collect_glyphs_context_t *c) const
{
TRACE_COLLECT_GLYPHS (this);
- (this+coverage).add_coverage (&c->input);
+ (this+coverage).add_coverage (c->input);
}
inline const Coverage &get_coverage (void) const
@@ -572,7 +572,7 @@ struct PairSet
unsigned int count = len;
for (unsigned int i = 0; i < count; i++)
{
- c->input.add (record->secondGlyph);
+ c->input->add (record->secondGlyph);
record = &StructAtOffset<PairValueRecord> (record, record_size);
}
}
@@ -638,7 +638,7 @@ struct PairPosFormat1
inline void collect_glyphs (hb_collect_glyphs_context_t *c) const
{
TRACE_COLLECT_GLYPHS (this);
- (this+coverage).add_coverage (&c->input);
+ (this+coverage).add_coverage (c->input);
unsigned int count = pairSet.len;
for (unsigned int i = 0; i < count; i++)
(this+pairSet[i]).collect_glyphs (c, &valueFormat1);
@@ -701,19 +701,19 @@ struct PairPosFormat2
inline void collect_glyphs (hb_collect_glyphs_context_t *c) const
{
TRACE_COLLECT_GLYPHS (this);
- /* (this+coverage).add_coverage (&c->input); // Don't need this. */
+ /* (this+coverage).add_coverage (c->input); // Don't need this. */
/* TODO only add values for pairs that have nonzero adjustments. */
unsigned int count1 = class1Count;
const ClassDef &klass1 = this+classDef1;
for (unsigned int i = 0; i < count1; i++)
- klass1.add_class (&c->input, i);
+ klass1.add_class (c->input, i);
unsigned int count2 = class2Count;
const ClassDef &klass2 = this+classDef2;
for (unsigned int i = 0; i < count2; i++)
- klass2.add_class (&c->input, i);
+ klass2.add_class (c->input, i);
}
inline const Coverage &get_coverage (void) const
@@ -859,7 +859,7 @@ struct CursivePosFormat1
inline void collect_glyphs (hb_collect_glyphs_context_t *c) const
{
TRACE_COLLECT_GLYPHS (this);
- (this+coverage).add_coverage (&c->input);
+ (this+coverage).add_coverage (c->input);
}
inline const Coverage &get_coverage (void) const
@@ -1005,8 +1005,8 @@ struct MarkBasePosFormat1
inline void collect_glyphs (hb_collect_glyphs_context_t *c) const
{
TRACE_COLLECT_GLYPHS (this);
- (this+markCoverage).add_coverage (&c->input);
- (this+baseCoverage).add_coverage (&c->input);
+ (this+markCoverage).add_coverage (c->input);
+ (this+baseCoverage).add_coverage (c->input);
/* TODO only add combinations that have nonzero adjustment. */
}
@@ -1109,8 +1109,8 @@ struct MarkLigPosFormat1
inline void collect_glyphs (hb_collect_glyphs_context_t *c) const
{
TRACE_COLLECT_GLYPHS (this);
- (this+markCoverage).add_coverage (&c->input);
- (this+ligatureCoverage).add_coverage (&c->input);
+ (this+markCoverage).add_coverage (c->input);
+ (this+ligatureCoverage).add_coverage (c->input);
/* TODO only add combinations that have nonzero adjustment. */
}
@@ -1225,8 +1225,8 @@ struct MarkMarkPosFormat1
inline void collect_glyphs (hb_collect_glyphs_context_t *c) const
{
TRACE_COLLECT_GLYPHS (this);
- (this+mark1Coverage).add_coverage (&c->input);
- (this+mark2Coverage).add_coverage (&c->input);
+ (this+mark1Coverage).add_coverage (c->input);
+ (this+mark2Coverage).add_coverage (c->input);
/* TODO only add combinations that have nonzero adjustment. */
}
@@ -1446,7 +1446,7 @@ struct PosLookup : Lookup
inline hb_collect_glyphs_context_t::return_t collect_glyphs_lookup (hb_collect_glyphs_context_t *c) const
{
TRACE_COLLECT_GLYPHS (this);
- c->set_recurse_func (process_recurse_func<hb_collect_glyphs_context_t>);
+ c->set_recurse_func (NULL);
return TRACE_RETURN (process (c));
}
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-ot-layout-gsub-table.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-ot-layout-gsub-table.hh
index 69572ef63dd..2642acbbb5c 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-ot-layout-gsub-table.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-ot-layout-gsub-table.hh
@@ -54,8 +54,8 @@ struct SingleSubstFormat1
Coverage::Iter iter;
for (iter.init (this+coverage); iter.more (); iter.next ()) {
hb_codepoint_t glyph_id = iter.get_glyph ();
- c->input.add (glyph_id);
- c->output.add ((glyph_id + deltaGlyphID) & 0xFFFF);
+ c->input->add (glyph_id);
+ c->output->add ((glyph_id + deltaGlyphID) & 0xFFFF);
}
}
@@ -130,8 +130,8 @@ struct SingleSubstFormat2
TRACE_COLLECT_GLYPHS (this);
Coverage::Iter iter;
for (iter.init (this+coverage); iter.more (); iter.next ()) {
- c->input.add (iter.get_glyph ());
- c->output.add (substitute[iter.get_coverage ()]);
+ c->input->add (iter.get_glyph ());
+ c->output->add (substitute[iter.get_coverage ()]);
}
}
@@ -264,7 +264,7 @@ struct Sequence
TRACE_COLLECT_GLYPHS (this);
unsigned int count = substitute.len;
for (unsigned int i = 0; i < count; i++)
- c->output.add (substitute[i]);
+ c->output->add (substitute[i]);
}
inline bool apply (hb_apply_context_t *c) const
@@ -320,7 +320,7 @@ struct MultipleSubstFormat1
inline void collect_glyphs (hb_collect_glyphs_context_t *c) const
{
TRACE_COLLECT_GLYPHS (this);
- (this+coverage).add_coverage (&c->input);
+ (this+coverage).add_coverage (c->input);
unsigned int count = sequence.len;
for (unsigned int i = 0; i < count; i++)
(this+sequence[i]).collect_glyphs (c);
@@ -451,11 +451,11 @@ struct AlternateSubstFormat1
TRACE_COLLECT_GLYPHS (this);
Coverage::Iter iter;
for (iter.init (this+coverage); iter.more (); iter.next ()) {
- c->input.add (iter.get_glyph ());
+ c->input->add (iter.get_glyph ());
const AlternateSet &alt_set = this+alternateSet[iter.get_coverage ()];
unsigned int count = alt_set.len;
for (unsigned int i = 0; i < count; i++)
- c->output.add (alt_set[i]);
+ c->output->add (alt_set[i]);
}
}
@@ -595,8 +595,8 @@ struct Ligature
TRACE_COLLECT_GLYPHS (this);
unsigned int count = component.len;
for (unsigned int i = 1; i < count; i++)
- c->input.add (component[i]);
- c->output.add (ligGlyph);
+ c->input->add (component[i]);
+ c->output->add (ligGlyph);
}
inline bool would_apply (hb_would_apply_context_t *c) const
@@ -767,7 +767,7 @@ struct LigatureSubstFormat1
TRACE_COLLECT_GLYPHS (this);
Coverage::Iter iter;
for (iter.init (this+coverage); iter.more (); iter.next ()) {
- c->input.add (iter.get_glyph ());
+ c->input->add (iter.get_glyph ());
(this+ligatureSet[iter.get_coverage ()]).collect_glyphs (c);
}
}
@@ -933,20 +933,20 @@ struct ReverseChainSingleSubstFormat1
unsigned int count;
- (this+coverage).add_coverage (&c->input);
+ (this+coverage).add_coverage (c->input);
count = backtrack.len;
for (unsigned int i = 0; i < count; i++)
- (this+backtrack[i]).add_coverage (&c->before);
+ (this+backtrack[i]).add_coverage (c->before);
count = lookahead.len;
for (unsigned int i = 0; i < count; i++)
- (this+lookahead[i]).add_coverage (&c->after);
+ (this+lookahead[i]).add_coverage (c->after);
const ArrayOf<GlyphID> &substitute = StructAfter<ArrayOf<GlyphID> > (lookahead);
count = substitute.len;
for (unsigned int i = 0; i < count; i++)
- c->output.add (substitute[i]);
+ c->output->add (substitute[i]);
}
inline const Coverage &get_coverage (void) const
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-ot-layout-gsubgpos-private.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-ot-layout-gsubgpos-private.hh
index 779ae85bdc2..40be861f39c 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-ot-layout-gsubgpos-private.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-ot-layout-gsubgpos-private.hh
@@ -49,7 +49,7 @@ namespace OT {
#endif
#define TRACE_CLOSURE(this) \
- hb_auto_trace_t<HB_DEBUG_CLOSURE, void_t> trace \
+ hb_auto_trace_t<HB_DEBUG_CLOSURE, hb_void_t> trace \
(&c->debug_depth, c->get_name (), this, HB_FUNC, \
"");
@@ -57,12 +57,12 @@ struct hb_closure_context_t
{
inline const char *get_name (void) { return "CLOSURE"; }
static const unsigned int max_debug_depth = HB_DEBUG_CLOSURE;
- typedef void_t return_t;
+ typedef hb_void_t return_t;
typedef return_t (*recurse_func_t) (hb_closure_context_t *c, unsigned int lookup_index);
template <typename T>
inline return_t process (const T &obj) { obj.closure (this); return HB_VOID; }
static return_t default_return_value (void) { return HB_VOID; }
- bool stop_sublookup_iteration (const return_t r) const { return false; }
+ bool stop_sublookup_iteration (const return_t r HB_UNUSED) const { return false; }
return_t recurse (unsigned int lookup_index)
{
if (unlikely (nesting_level_left == 0 || !recurse_func))
@@ -137,7 +137,7 @@ struct hb_would_apply_context_t
#endif
#define TRACE_COLLECT_GLYPHS(this) \
- hb_auto_trace_t<HB_DEBUG_COLLECT_GLYPHS, void_t> trace \
+ hb_auto_trace_t<HB_DEBUG_COLLECT_GLYPHS, hb_void_t> trace \
(&c->debug_depth, c->get_name (), this, HB_FUNC, \
"");
@@ -145,30 +145,45 @@ struct hb_collect_glyphs_context_t
{
inline const char *get_name (void) { return "COLLECT_GLYPHS"; }
static const unsigned int max_debug_depth = HB_DEBUG_COLLECT_GLYPHS;
- typedef void_t return_t;
+ typedef hb_void_t return_t;
typedef return_t (*recurse_func_t) (hb_collect_glyphs_context_t *c, unsigned int lookup_index);
template <typename T>
inline return_t process (const T &obj) { obj.collect_glyphs (this); return HB_VOID; }
static return_t default_return_value (void) { return HB_VOID; }
- bool stop_sublookup_iteration (const return_t r) const { return false; }
+ bool stop_sublookup_iteration (const return_t r HB_UNUSED) const { return false; }
return_t recurse (unsigned int lookup_index)
{
if (unlikely (nesting_level_left == 0 || !recurse_func))
return default_return_value ();
+ /* Note that GPOS sets recurse_func to NULL already, so it doesn't get
+ * past the previous check. For GSUB, we only want to collect the output
+ * glyphs in the recursion. If output is not requested, we can go home now. */
+
+ if (output == hb_set_get_empty ())
+ return HB_VOID;
+
+ hb_set_t *old_before = before;
+ hb_set_t *old_input = input;
+ hb_set_t *old_after = after;
+ before = input = after = hb_set_get_empty ();
+
nesting_level_left--;
- /* Only collect output glyphs in the recursion. */
- hb_collect_glyphs_context_t new_c (this->face, NULL, NULL, NULL, &output, nesting_level_left);
- recurse_func (&new_c, lookup_index);
+ recurse_func (this, lookup_index);
nesting_level_left++;
+
+ before = old_before;
+ input = old_input;
+ after = old_after;
+
return HB_VOID;
}
hb_face_t *face;
- hb_set_t &before;
- hb_set_t &input;
- hb_set_t &after;
- hb_set_t &output;
+ hb_set_t *before;
+ hb_set_t *input;
+ hb_set_t *after;
+ hb_set_t *output;
recurse_func_t recurse_func;
unsigned int nesting_level_left;
unsigned int debug_depth;
@@ -180,10 +195,10 @@ struct hb_collect_glyphs_context_t
hb_set_t *glyphs_output, /* OUT. May be NULL */
unsigned int nesting_level_left_ = MAX_NESTING_LEVEL) :
face (face_),
- before (glyphs_before ? *glyphs_before : *hb_set_get_empty ()),
- input (glyphs_input ? *glyphs_input : *hb_set_get_empty ()),
- after (glyphs_after ? *glyphs_after : *hb_set_get_empty ()),
- output (glyphs_output ? *glyphs_output : *hb_set_get_empty ()),
+ before (glyphs_before ? glyphs_before : hb_set_get_empty ()),
+ input (glyphs_input ? glyphs_input : hb_set_get_empty ()),
+ after (glyphs_after ? glyphs_after : hb_set_get_empty ()),
+ output (glyphs_output ? glyphs_output : hb_set_get_empty ()),
recurse_func (NULL),
nesting_level_left (nesting_level_left_),
debug_depth (0) {}
@@ -534,7 +549,7 @@ static inline void collect_coverage (hb_set_t *glyphs, const USHORT &value, cons
const OffsetTo<Coverage> &coverage = (const OffsetTo<Coverage>&)value;
(data+coverage).add_coverage (glyphs);
}
-static inline void collect_array (hb_collect_glyphs_context_t *c,
+static inline void collect_array (hb_collect_glyphs_context_t *c HB_UNUSED,
hb_set_t *glyphs,
unsigned int count,
const USHORT values[],
@@ -658,10 +673,10 @@ static inline bool match_input (hb_apply_context_t *c,
}
static inline void ligate_input (hb_apply_context_t *c,
unsigned int count, /* Including the first glyph (not matched) */
- const USHORT input[], /* Array of input values--start with second glyph */
+ const USHORT input[] HB_UNUSED, /* Array of input values--start with second glyph */
hb_codepoint_t lig_glyph,
- match_func_t match_func,
- const void *match_data,
+ match_func_t match_func HB_UNUSED,
+ const void *match_data HB_UNUSED,
bool is_mark_ligature,
unsigned int total_component_count)
{
@@ -914,7 +929,7 @@ static inline void context_collect_glyphs_lookup (hb_collect_glyphs_context_t *c
const LookupRecord lookupRecord[],
ContextCollectGlyphsLookupContext &lookup_context)
{
- collect_array (c, &c->input,
+ collect_array (c, c->input,
inputCount ? inputCount - 1 : 0, input,
lookup_context.funcs.collect, lookup_context.collect_data);
recurse_lookups (c,
@@ -924,8 +939,8 @@ static inline void context_collect_glyphs_lookup (hb_collect_glyphs_context_t *c
static inline bool context_would_apply_lookup (hb_would_apply_context_t *c,
unsigned int inputCount, /* Including the first glyph (not matched) */
const USHORT input[], /* Array of input values--start with second glyph */
- unsigned int lookupCount,
- const LookupRecord lookupRecord[],
+ unsigned int lookupCount HB_UNUSED,
+ const LookupRecord lookupRecord[] HB_UNUSED,
ContextApplyLookupContext &lookup_context)
{
return would_match_input (c,
@@ -1086,7 +1101,7 @@ struct ContextFormat1
inline void collect_glyphs (hb_collect_glyphs_context_t *c) const
{
TRACE_COLLECT_GLYPHS (this);
- (this+coverage).add_coverage (&c->input);
+ (this+coverage).add_coverage (c->input);
struct ContextCollectGlyphsLookupContext lookup_context = {
{collect_glyph},
@@ -1160,7 +1175,7 @@ struct ContextFormat2
struct ContextClosureLookupContext lookup_context = {
{intersects_class},
- NULL
+ &class_def
};
unsigned int count = ruleSet.len;
@@ -1174,11 +1189,12 @@ struct ContextFormat2
inline void collect_glyphs (hb_collect_glyphs_context_t *c) const
{
TRACE_COLLECT_GLYPHS (this);
- (this+coverage).add_coverage (&c->input);
+ (this+coverage).add_coverage (c->input);
+ const ClassDef &class_def = this+classDef;
struct ContextCollectGlyphsLookupContext lookup_context = {
{collect_class},
- NULL
+ &class_def
};
unsigned int count = ruleSet.len;
@@ -1264,7 +1280,7 @@ struct ContextFormat3
inline void collect_glyphs (hb_collect_glyphs_context_t *c) const
{
TRACE_COLLECT_GLYPHS (this);
- (this+coverage[0]).add_coverage (&c->input);
+ (this+coverage[0]).add_coverage (c->input);
const LookupRecord *lookupRecord = &StructAtOffset<LookupRecord> (coverage, coverage[0].static_size * glyphCount);
struct ContextCollectGlyphsLookupContext lookup_context = {
@@ -1424,13 +1440,13 @@ static inline void chain_context_collect_glyphs_lookup (hb_collect_glyphs_contex
const LookupRecord lookupRecord[],
ChainContextCollectGlyphsLookupContext &lookup_context)
{
- collect_array (c, &c->before,
+ collect_array (c, c->before,
backtrackCount, backtrack,
lookup_context.funcs.collect, lookup_context.collect_data[0]);
- collect_array (c, &c->input,
+ collect_array (c, c->input,
inputCount ? inputCount - 1 : 0, input,
lookup_context.funcs.collect, lookup_context.collect_data[1]);
- collect_array (c, &c->after,
+ collect_array (c, c->after,
lookaheadCount, lookahead,
lookup_context.funcs.collect, lookup_context.collect_data[2]);
recurse_lookups (c,
@@ -1439,13 +1455,13 @@ static inline void chain_context_collect_glyphs_lookup (hb_collect_glyphs_contex
static inline bool chain_context_would_apply_lookup (hb_would_apply_context_t *c,
unsigned int backtrackCount,
- const USHORT backtrack[],
+ const USHORT backtrack[] HB_UNUSED,
unsigned int inputCount, /* Including the first glyph (not matched) */
const USHORT input[], /* Array of input values--start with second glyph */
unsigned int lookaheadCount,
- const USHORT lookahead[],
- unsigned int lookupCount,
- const LookupRecord lookupRecord[],
+ const USHORT lookahead[] HB_UNUSED,
+ unsigned int lookupCount HB_UNUSED,
+ const LookupRecord lookupRecord[] HB_UNUSED,
ChainContextApplyLookupContext &lookup_context)
{
return (c->zero_context ? !backtrackCount && !lookaheadCount : true)
@@ -1643,7 +1659,7 @@ struct ChainContextFormat1
inline void collect_glyphs (hb_collect_glyphs_context_t *c) const
{
TRACE_COLLECT_GLYPHS (this);
- (this+coverage).add_coverage (&c->input);
+ (this+coverage).add_coverage (c->input);
struct ChainContextCollectGlyphsLookupContext lookup_context = {
{collect_glyph},
@@ -1733,11 +1749,17 @@ struct ChainContextFormat2
inline void collect_glyphs (hb_collect_glyphs_context_t *c) const
{
TRACE_COLLECT_GLYPHS (this);
- (this+coverage).add_coverage (&c->input);
+ (this+coverage).add_coverage (c->input);
+
+ const ClassDef &backtrack_class_def = this+backtrackClassDef;
+ const ClassDef &input_class_def = this+inputClassDef;
+ const ClassDef &lookahead_class_def = this+lookaheadClassDef;
struct ChainContextCollectGlyphsLookupContext lookup_context = {
{collect_class},
- {NULL, NULL, NULL}
+ {&backtrack_class_def,
+ &input_class_def,
+ &lookahead_class_def}
};
unsigned int count = ruleSet.len;
@@ -1749,13 +1771,17 @@ struct ChainContextFormat2
{
TRACE_WOULD_APPLY (this);
+ const ClassDef &backtrack_class_def = this+backtrackClassDef;
const ClassDef &input_class_def = this+inputClassDef;
+ const ClassDef &lookahead_class_def = this+lookaheadClassDef;
unsigned int index = input_class_def.get_class (c->glyphs[0]);
const ChainRuleSet &rule_set = this+ruleSet[index];
struct ChainContextApplyLookupContext lookup_context = {
{match_class},
- {NULL, &input_class_def, NULL}
+ {&backtrack_class_def,
+ &input_class_def,
+ &lookahead_class_def}
};
return TRACE_RETURN (rule_set.would_apply (c, lookup_context));
}
@@ -1846,7 +1872,7 @@ struct ChainContextFormat3
TRACE_COLLECT_GLYPHS (this);
const OffsetArrayOf<Coverage> &input = StructAfter<OffsetArrayOf<Coverage> > (backtrack);
- (this+input[0]).add_coverage (&c->input);
+ (this+input[0]).add_coverage (c->input);
const OffsetArrayOf<Coverage> &lookahead = StructAfter<OffsetArrayOf<Coverage> > (input);
const ArrayOf<LookupRecord> &lookup = StructAfter<ArrayOf<LookupRecord> > (lookahead);
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-ot-layout-private.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-ot-layout-private.hh
index 49093de8a1e..49093de8a1e 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-ot-layout-private.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-ot-layout-private.hh
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-ot-layout.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-ot-layout.cc
index 441b3ea9bca..5c266e61942 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-ot-layout.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-ot-layout.cc
@@ -433,18 +433,57 @@ _hb_ot_layout_collect_lookups_features (hb_face_t *face,
const hb_tag_t *features,
hb_set_t *lookup_indexes /* OUT */)
{
+ unsigned int required_feature_index;
+ if (hb_ot_layout_language_get_required_feature_index (face,
+ table_tag,
+ script_index,
+ language_index,
+ &required_feature_index))
+ _hb_ot_layout_collect_lookups_lookups (face,
+ table_tag,
+ required_feature_index,
+ lookup_indexes);
+
if (!features)
{
/* All features */
- unsigned int count = hb_ot_layout_language_get_feature_tags (face, table_tag, script_index, language_index, 0, NULL, NULL);
- for (unsigned int feature_index = 0; feature_index < count; feature_index++)
- _hb_ot_layout_collect_lookups_lookups (face, table_tag, feature_index, lookup_indexes);
- } else {
+ unsigned int feature_indices[32];
+ unsigned int offset, len;
+
+ offset = 0;
+ do {
+ len = ARRAY_LENGTH (feature_indices);
+ hb_ot_layout_language_get_feature_indexes (face,
+ table_tag,
+ script_index,
+ language_index,
+ offset, &len,
+ feature_indices);
+
+ for (unsigned int i = 0; i < len; i++)
+ _hb_ot_layout_collect_lookups_lookups (face,
+ table_tag,
+ feature_indices[i],
+ lookup_indexes);
+
+ offset += len;
+ } while (len == ARRAY_LENGTH (feature_indices));
+ }
+ else
+ {
for (; *features; features++)
{
unsigned int feature_index;
- if (hb_ot_layout_language_find_feature (face, table_tag, script_index, language_index, *features, &feature_index))
- _hb_ot_layout_collect_lookups_lookups (face, table_tag, feature_index, lookup_indexes);
+ if (hb_ot_layout_language_find_feature (face,
+ table_tag,
+ script_index,
+ language_index,
+ *features,
+ &feature_index))
+ _hb_ot_layout_collect_lookups_lookups (face,
+ table_tag,
+ feature_index,
+ lookup_indexes);
}
}
}
@@ -457,18 +496,44 @@ _hb_ot_layout_collect_lookups_languages (hb_face_t *face,
const hb_tag_t *features,
hb_set_t *lookup_indexes /* OUT */)
{
+ _hb_ot_layout_collect_lookups_features (face,
+ table_tag,
+ script_index,
+ HB_OT_LAYOUT_DEFAULT_LANGUAGE_INDEX,
+ features,
+ lookup_indexes);
+
if (!languages)
{
/* All languages */
- unsigned int count = hb_ot_layout_script_get_language_tags (face, table_tag, script_index, 0, NULL, NULL);
+ unsigned int count = hb_ot_layout_script_get_language_tags (face,
+ table_tag,
+ script_index,
+ 0, NULL, NULL);
for (unsigned int language_index = 0; language_index < count; language_index++)
- _hb_ot_layout_collect_lookups_features (face, table_tag, script_index, language_index, features, lookup_indexes);
- } else {
+ _hb_ot_layout_collect_lookups_features (face,
+ table_tag,
+ script_index,
+ language_index,
+ features,
+ lookup_indexes);
+ }
+ else
+ {
for (; *languages; languages++)
{
unsigned int language_index;
- if (hb_ot_layout_script_find_language (face, table_tag, script_index, *languages, &language_index))
- _hb_ot_layout_collect_lookups_features (face, table_tag, script_index, language_index, features, lookup_indexes);
+ if (hb_ot_layout_script_find_language (face,
+ table_tag,
+ script_index,
+ *languages,
+ &language_index))
+ _hb_ot_layout_collect_lookups_features (face,
+ table_tag,
+ script_index,
+ language_index,
+ features,
+ lookup_indexes);
}
}
}
@@ -484,15 +549,32 @@ hb_ot_layout_collect_lookups (hb_face_t *face,
if (!scripts)
{
/* All scripts */
- unsigned int count = hb_ot_layout_table_get_script_tags (face, table_tag, 0, NULL, NULL);
+ unsigned int count = hb_ot_layout_table_get_script_tags (face,
+ table_tag,
+ 0, NULL, NULL);
for (unsigned int script_index = 0; script_index < count; script_index++)
- _hb_ot_layout_collect_lookups_languages (face, table_tag, script_index, languages, features, lookup_indexes);
- } else {
+ _hb_ot_layout_collect_lookups_languages (face,
+ table_tag,
+ script_index,
+ languages,
+ features,
+ lookup_indexes);
+ }
+ else
+ {
for (; *scripts; scripts++)
{
unsigned int script_index;
- if (hb_ot_layout_table_find_script (face, table_tag, *scripts, &script_index))
- _hb_ot_layout_collect_lookups_languages (face, table_tag, script_index, languages, features, lookup_indexes);
+ if (hb_ot_layout_table_find_script (face,
+ table_tag,
+ *scripts,
+ &script_index))
+ _hb_ot_layout_collect_lookups_languages (face,
+ table_tag,
+ script_index,
+ languages,
+ features,
+ lookup_indexes);
}
}
}
@@ -508,9 +590,14 @@ hb_ot_layout_lookup_collect_glyphs (hb_face_t *face,
{
if (unlikely (!hb_ot_shaper_face_data_ensure (face))) return;
- OT::hb_collect_glyphs_context_t c (face, glyphs_before, glyphs_input, glyphs_after, glyphs_output);
+ OT::hb_collect_glyphs_context_t c (face,
+ glyphs_before,
+ glyphs_input,
+ glyphs_after,
+ glyphs_output);
- switch (table_tag) {
+ switch (table_tag)
+ {
case HB_OT_TAG_GSUB:
{
const OT::SubstLookup& l = hb_ot_layout_from_face (face)->gsub->get_lookup (lookup_index);
@@ -640,28 +727,46 @@ hb_ot_layout_position_finish (hb_font_t *font, hb_buffer_t *buffer, hb_bool_t ze
}
hb_bool_t
-hb_ot_layout_get_size_params (hb_face_t *face,
- uint16_t *data /* OUT, 5 items */)
+hb_ot_layout_get_size_params (hb_face_t *face,
+ unsigned int *design_size, /* OUT. May be NULL */
+ unsigned int *subfamily_id, /* OUT. May be NULL */
+ unsigned int *subfamily_name_id, /* OUT. May be NULL */
+ unsigned int *range_start, /* OUT. May be NULL */
+ unsigned int *range_end /* OUT. May be NULL */)
{
const OT::GPOS &gpos = _get_gpos (face);
+ const hb_tag_t tag = HB_TAG ('s','i','z','e');
unsigned int num_features = gpos.get_feature_count ();
for (unsigned int i = 0; i < num_features; i++)
{
- if (HB_TAG ('s','i','z','e') == gpos.get_feature_tag (i))
+ if (tag == gpos.get_feature_tag (i))
{
const OT::Feature &f = gpos.get_feature (i);
- const OT::FeatureParams &params = f.get_feature_params ();
-
- for (unsigned int i = 0; i < 5; i++)
- data[i] = params.u.size.params[i];
-
- return true;
+ const OT::FeatureParamsSize &params = f.get_feature_params ().get_size_params (tag);
+
+ if (params.designSize)
+ {
+#define PARAM(a, A) if (a) *a = params.A
+ PARAM (design_size, designSize);
+ PARAM (subfamily_id, subfamilyID);
+ PARAM (subfamily_name_id, subfamilyNameID);
+ PARAM (range_start, rangeStart);
+ PARAM (range_end, rangeEnd);
+#undef PARAM
+
+ return true;
+ }
}
}
- for (unsigned int i = 0; i < 5; i++)
- data[i] = 0;
+#define PARAM(a, A) if (a) *a = 0
+ PARAM (design_size, designSize);
+ PARAM (subfamily_id, subfamilyID);
+ PARAM (subfamily_name_id, subfamilyNameID);
+ PARAM (range_start, rangeStart);
+ PARAM (range_end, rangeEnd);
+#undef PARAM
return false;
}
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-ot-layout.h b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-ot-layout.h
index f8fab24bc26..134f1a6c164 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-ot-layout.h
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-ot-layout.h
@@ -280,8 +280,12 @@ Xhb_ot_layout_lookup_position (hb_font_t *font,
/* Optical 'size' feature info. Returns true if found.
* http://www.microsoft.com/typography/otspec/features_pt.htm#size */
hb_bool_t
-hb_ot_layout_get_size_params (hb_face_t *face,
- uint16_t *data /* OUT, 5 items */);
+hb_ot_layout_get_size_params (hb_face_t *face,
+ unsigned int *design_size, /* OUT. May be NULL */
+ unsigned int *subfamily_id, /* OUT. May be NULL */
+ unsigned int *subfamily_name_id, /* OUT. May be NULL */
+ unsigned int *range_start, /* OUT. May be NULL */
+ unsigned int *range_end /* OUT. May be NULL */);
HB_END_DECLS
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-ot-map-private.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-ot-map-private.hh
index b140207aa97..b140207aa97 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-ot-map-private.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-ot-map-private.hh
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-ot-map.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-ot-map.cc
index 62f7904b2f9..62f7904b2f9 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-ot-map.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-ot-map.cc
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-ot-maxp-table.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-ot-maxp-table.hh
index 0ce3ebcc2a6..0ce3ebcc2a6 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-ot-maxp-table.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-ot-maxp-table.hh
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-ot-name-table.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-ot-name-table.hh
index 75a1b94ea31..75a1b94ea31 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-ot-name-table.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-ot-name-table.hh
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-ot-shape-complex-arabic-fallback.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-ot-shape-complex-arabic-fallback.hh
index bf68561e161..4fcd0a2fd94 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-ot-shape-complex-arabic-fallback.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-ot-shape-complex-arabic-fallback.hh
@@ -53,7 +53,7 @@ enum {
};
static OT::SubstLookup *
-arabic_fallback_synthesize_lookup_single (const hb_ot_shape_plan_t *plan,
+arabic_fallback_synthesize_lookup_single (const hb_ot_shape_plan_t *plan HB_UNUSED,
hb_font_t *font,
unsigned int feature_index)
{
@@ -103,7 +103,7 @@ arabic_fallback_synthesize_lookup_single (const hb_ot_shape_plan_t *plan,
}
static OT::SubstLookup *
-arabic_fallback_synthesize_lookup_ligature (const hb_ot_shape_plan_t *plan,
+arabic_fallback_synthesize_lookup_ligature (const hb_ot_shape_plan_t *plan HB_UNUSED,
hb_font_t *font)
{
OT::GlyphID first_glyphs[ARRAY_LENGTH_CONST (ligature_table)];
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-ot-shape-complex-arabic-table.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-ot-shape-complex-arabic-table.hh
index 730a275bf0a..730a275bf0a 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-ot-shape-complex-arabic-table.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-ot-shape-complex-arabic-table.hh
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-ot-shape-complex-arabic.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-ot-shape-complex-arabic.cc
index e9db005455f..35356fe97d3 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-ot-shape-complex-arabic.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-ot-shape-complex-arabic.cc
@@ -305,7 +305,7 @@ arabic_joining (hb_buffer_t *buffer)
static void
setup_masks_arabic (const hb_ot_shape_plan_t *plan,
hb_buffer_t *buffer,
- hb_font_t *font)
+ hb_font_t *font HB_UNUSED)
{
const arabic_shape_plan_t *arabic_plan = (const arabic_shape_plan_t *) plan->data;
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-ot-shape-complex-default.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-ot-shape-complex-default.cc
index 5340293db50..5340293db50 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-ot-shape-complex-default.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-ot-shape-complex-default.cc
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-ot-shape-complex-indic-machine.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-ot-shape-complex-indic-machine.hh
new file mode 100644
index 00000000000..ed40b968bcb
--- /dev/null
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-ot-shape-complex-indic-machine.hh
@@ -0,0 +1,1443 @@
+
+#line 1 "../../src/hb-ot-shape-complex-indic-machine.rl"
+/*
+ * Copyright © 2011,2012 Google, Inc.
+ *
+ * This is part of HarfBuzz, a text shaping library.
+ *
+ * Permission is hereby granted, without written agreement and without
+ * license or royalty fees, to use, copy, modify, and distribute this
+ * software and its documentation for any purpose, provided that the
+ * above copyright notice and the following two paragraphs appear in
+ * all copies of this software.
+ *
+ * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
+ * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
+ * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
+ * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+ * DAMAGE.
+ *
+ * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
+ * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
+ * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
+ * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
+ *
+ * Google Author(s): Behdad Esfahbod
+ */
+
+#ifndef HB_OT_SHAPE_COMPLEX_INDIC_MACHINE_HH
+#define HB_OT_SHAPE_COMPLEX_INDIC_MACHINE_HH
+
+#include "hb-private.hh"
+
+
+#line 36 "../../src/hb-ot-shape-complex-indic-machine.hh.tmp"
+static const unsigned char _indic_syllable_machine_trans_keys[] = {
+ 1u, 16u, 13u, 13u, 5u, 7u, 5u, 7u, 7u, 7u, 5u, 7u, 5u, 7u, 7u, 7u,
+ 5u, 7u, 5u, 7u, 7u, 7u, 5u, 7u, 5u, 7u, 7u, 7u, 4u, 4u, 6u, 6u,
+ 16u, 16u, 4u, 7u, 6u, 6u, 16u, 16u, 4u, 7u, 6u, 6u, 16u, 16u, 4u, 7u,
+ 6u, 6u, 16u, 16u, 4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u,
+ 4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u, 1u, 16u, 13u, 13u, 5u, 7u, 5u, 7u,
+ 7u, 7u, 5u, 7u, 5u, 7u, 7u, 7u, 5u, 7u, 5u, 7u, 7u, 7u, 5u, 7u,
+ 5u, 7u, 7u, 7u, 4u, 4u, 6u, 6u, 16u, 16u, 4u, 7u, 6u, 6u, 16u, 16u,
+ 4u, 7u, 6u, 6u, 16u, 16u, 4u, 7u, 6u, 6u, 16u, 16u, 4u, 14u, 4u, 14u,
+ 4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u,
+ 1u, 16u, 13u, 13u, 5u, 7u, 5u, 7u, 7u, 7u, 5u, 7u, 5u, 7u, 7u, 7u,
+ 5u, 7u, 5u, 7u, 7u, 7u, 5u, 7u, 5u, 7u, 7u, 7u, 4u, 4u, 6u, 6u,
+ 16u, 16u, 4u, 7u, 6u, 6u, 16u, 16u, 4u, 7u, 6u, 6u, 16u, 16u, 4u, 7u,
+ 6u, 6u, 16u, 16u, 4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u,
+ 4u, 14u, 4u, 14u, 4u, 14u, 1u, 16u, 13u, 13u, 5u, 7u, 5u, 7u, 7u, 7u,
+ 5u, 7u, 5u, 7u, 7u, 7u, 5u, 7u, 5u, 7u, 7u, 7u, 5u, 7u, 5u, 7u,
+ 7u, 7u, 4u, 4u, 6u, 6u, 16u, 16u, 4u, 7u, 6u, 6u, 16u, 16u, 4u, 7u,
+ 6u, 6u, 16u, 16u, 4u, 7u, 6u, 6u, 16u, 16u, 4u, 14u, 4u, 14u, 4u, 14u,
+ 4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u,
+ 4u, 14u, 5u, 7u, 5u, 7u, 5u, 7u, 5u, 7u, 7u, 7u, 5u, 7u, 5u, 7u,
+ 7u, 7u, 5u, 7u, 5u, 7u, 7u, 7u, 1u, 16u, 13u, 13u, 4u, 4u, 6u, 6u,
+ 16u, 16u, 4u, 7u, 6u, 6u, 16u, 16u, 4u, 7u, 6u, 6u, 16u, 16u, 4u, 7u,
+ 6u, 6u, 16u, 16u, 1u, 16u, 3u, 17u, 3u, 14u, 4u, 14u, 1u, 16u, 3u, 17u,
+ 3u, 14u, 4u, 14u, 1u, 16u, 3u, 17u, 3u, 14u, 4u, 14u, 1u, 16u, 3u, 17u,
+ 3u, 14u, 4u, 14u, 1u, 16u, 3u, 17u, 3u, 14u, 4u, 14u, 5u, 14u, 8u, 14u,
+ 5u, 9u, 9u, 9u, 9u, 9u, 3u, 17u, 3u, 9u, 8u, 9u, 3u, 9u, 3u, 13u,
+ 3u, 14u, 3u, 14u, 4u, 14u, 5u, 14u, 3u, 14u, 4u, 14u, 5u, 14u, 3u, 14u,
+ 4u, 14u, 5u, 14u, 3u, 14u, 4u, 14u, 6u, 14u, 3u, 14u, 4u, 14u, 1u, 16u,
+ 3u, 14u, 3u, 14u, 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u, 3u, 14u,
+ 3u, 14u, 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u, 3u, 14u, 3u, 14u,
+ 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u, 3u, 14u, 3u, 14u, 1u, 16u,
+ 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u, 3u, 14u, 3u, 14u, 3u, 14u, 3u, 14u,
+ 4u, 14u, 1u, 16u, 3u, 17u, 3u, 14u, 4u, 14u, 1u, 16u, 3u, 17u, 3u, 14u,
+ 4u, 14u, 1u, 16u, 3u, 17u, 3u, 14u, 4u, 14u, 1u, 16u, 3u, 17u, 3u, 14u,
+ 4u, 14u, 5u, 14u, 8u, 14u, 5u, 9u, 9u, 9u, 9u, 9u, 3u, 17u, 3u, 9u,
+ 8u, 9u, 3u, 9u, 3u, 13u, 3u, 14u, 3u, 14u, 4u, 14u, 5u, 14u, 3u, 14u,
+ 4u, 14u, 5u, 14u, 3u, 14u, 4u, 14u, 5u, 14u, 3u, 14u, 4u, 14u, 6u, 14u,
+ 3u, 14u, 1u, 16u, 3u, 14u, 3u, 14u, 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u,
+ 1u, 16u, 3u, 14u, 3u, 14u, 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u,
+ 3u, 14u, 3u, 14u, 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u, 3u, 14u,
+ 3u, 14u, 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u, 4u, 14u, 1u, 16u, 3u, 14u,
+ 3u, 14u, 4u, 14u, 1u, 16u, 3u, 17u, 3u, 14u, 4u, 14u, 1u, 16u, 3u, 17u,
+ 3u, 14u, 4u, 14u, 1u, 16u, 3u, 17u, 3u, 14u, 4u, 14u, 1u, 16u, 3u, 17u,
+ 3u, 14u, 4u, 14u, 5u, 14u, 8u, 14u, 5u, 9u, 9u, 9u, 9u, 9u, 3u, 17u,
+ 3u, 9u, 8u, 9u, 3u, 9u, 3u, 13u, 3u, 14u, 3u, 14u, 4u, 14u, 5u, 14u,
+ 3u, 14u, 4u, 14u, 5u, 14u, 3u, 14u, 4u, 14u, 5u, 14u, 3u, 14u, 4u, 14u,
+ 6u, 14u, 3u, 14u, 1u, 16u, 3u, 14u, 3u, 14u, 1u, 16u, 1u, 16u, 1u, 16u,
+ 1u, 16u, 1u, 16u, 3u, 14u, 3u, 14u, 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u,
+ 1u, 16u, 3u, 14u, 3u, 14u, 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u,
+ 3u, 14u, 3u, 14u, 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u, 4u, 14u,
+ 3u, 14u, 4u, 14u, 3u, 14u, 3u, 14u, 4u, 14u, 1u, 16u, 3u, 17u, 3u, 14u,
+ 4u, 14u, 1u, 16u, 3u, 17u, 3u, 14u, 4u, 14u, 1u, 16u, 3u, 17u, 3u, 14u,
+ 4u, 14u, 1u, 16u, 3u, 17u, 3u, 14u, 4u, 14u, 5u, 14u, 8u, 14u, 5u, 9u,
+ 9u, 9u, 9u, 9u, 3u, 17u, 3u, 9u, 8u, 9u, 3u, 9u, 3u, 13u, 3u, 14u,
+ 3u, 14u, 4u, 14u, 5u, 14u, 3u, 14u, 4u, 14u, 5u, 14u, 3u, 14u, 4u, 14u,
+ 5u, 14u, 3u, 14u, 4u, 14u, 6u, 14u, 3u, 14u, 1u, 16u, 3u, 14u, 3u, 14u,
+ 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u, 3u, 14u, 3u, 14u, 1u, 16u,
+ 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u, 3u, 14u, 3u, 14u, 1u, 16u, 1u, 16u,
+ 1u, 16u, 1u, 16u, 1u, 16u, 3u, 14u, 3u, 14u, 1u, 16u, 1u, 16u, 1u, 16u,
+ 1u, 16u, 1u, 16u, 3u, 14u, 1u, 16u, 3u, 17u, 1u, 16u, 4u, 14u, 1u, 16u,
+ 3u, 17u, 3u, 14u, 4u, 14u, 5u, 9u, 9u, 9u, 9u, 9u, 3u, 14u, 3u, 14u,
+ 1u, 16u, 3u, 14u, 4u, 14u, 5u, 14u, 3u, 14u, 4u, 14u, 5u, 14u, 3u, 14u,
+ 4u, 14u, 5u, 14u, 3u, 14u, 4u, 14u, 8u, 14u, 3u, 17u, 3u, 9u, 8u, 9u,
+ 3u, 9u, 3u, 13u, 1u, 16u, 0
+};
+
+static const char _indic_syllable_machine_key_spans[] = {
+ 16, 1, 3, 3, 1, 3, 3, 1,
+ 3, 3, 1, 3, 3, 1, 1, 1,
+ 1, 4, 1, 1, 4, 1, 1, 4,
+ 1, 1, 11, 11, 11, 11, 11, 11,
+ 11, 11, 11, 11, 16, 1, 3, 3,
+ 1, 3, 3, 1, 3, 3, 1, 3,
+ 3, 1, 1, 1, 1, 4, 1, 1,
+ 4, 1, 1, 4, 1, 1, 11, 11,
+ 11, 11, 11, 11, 11, 11, 11, 11,
+ 16, 1, 3, 3, 1, 3, 3, 1,
+ 3, 3, 1, 3, 3, 1, 1, 1,
+ 1, 4, 1, 1, 4, 1, 1, 4,
+ 1, 1, 11, 11, 11, 11, 11, 11,
+ 11, 11, 11, 16, 1, 3, 3, 1,
+ 3, 3, 1, 3, 3, 1, 3, 3,
+ 1, 1, 1, 1, 4, 1, 1, 4,
+ 1, 1, 4, 1, 1, 11, 11, 11,
+ 11, 11, 11, 11, 11, 11, 11, 11,
+ 11, 3, 3, 3, 3, 1, 3, 3,
+ 1, 3, 3, 1, 16, 1, 1, 1,
+ 1, 4, 1, 1, 4, 1, 1, 4,
+ 1, 1, 16, 15, 12, 11, 16, 15,
+ 12, 11, 16, 15, 12, 11, 16, 15,
+ 12, 11, 16, 15, 12, 11, 10, 7,
+ 5, 1, 1, 15, 7, 2, 7, 11,
+ 12, 12, 11, 10, 12, 11, 10, 12,
+ 11, 10, 12, 11, 9, 12, 11, 16,
+ 12, 12, 16, 16, 16, 16, 16, 12,
+ 12, 16, 16, 16, 16, 16, 12, 12,
+ 16, 16, 16, 16, 16, 12, 12, 16,
+ 16, 16, 16, 16, 12, 12, 12, 12,
+ 11, 16, 15, 12, 11, 16, 15, 12,
+ 11, 16, 15, 12, 11, 16, 15, 12,
+ 11, 10, 7, 5, 1, 1, 15, 7,
+ 2, 7, 11, 12, 12, 11, 10, 12,
+ 11, 10, 12, 11, 10, 12, 11, 9,
+ 12, 16, 12, 12, 16, 16, 16, 16,
+ 16, 12, 12, 16, 16, 16, 16, 16,
+ 12, 12, 16, 16, 16, 16, 16, 12,
+ 12, 16, 16, 16, 16, 11, 16, 12,
+ 12, 11, 16, 15, 12, 11, 16, 15,
+ 12, 11, 16, 15, 12, 11, 16, 15,
+ 12, 11, 10, 7, 5, 1, 1, 15,
+ 7, 2, 7, 11, 12, 12, 11, 10,
+ 12, 11, 10, 12, 11, 10, 12, 11,
+ 9, 12, 16, 12, 12, 16, 16, 16,
+ 16, 16, 12, 12, 16, 16, 16, 16,
+ 16, 12, 12, 16, 16, 16, 16, 16,
+ 12, 12, 16, 16, 16, 16, 16, 11,
+ 12, 11, 12, 12, 11, 16, 15, 12,
+ 11, 16, 15, 12, 11, 16, 15, 12,
+ 11, 16, 15, 12, 11, 10, 7, 5,
+ 1, 1, 15, 7, 2, 7, 11, 12,
+ 12, 11, 10, 12, 11, 10, 12, 11,
+ 10, 12, 11, 9, 12, 16, 12, 12,
+ 16, 16, 16, 16, 16, 12, 12, 16,
+ 16, 16, 16, 16, 12, 12, 16, 16,
+ 16, 16, 16, 12, 12, 16, 16, 16,
+ 16, 16, 12, 16, 15, 16, 11, 16,
+ 15, 12, 11, 5, 1, 1, 12, 12,
+ 16, 12, 11, 10, 12, 11, 10, 12,
+ 11, 10, 12, 11, 7, 15, 7, 2,
+ 7, 11, 16
+};
+
+static const short _indic_syllable_machine_index_offsets[] = {
+ 0, 17, 19, 23, 27, 29, 33, 37,
+ 39, 43, 47, 49, 53, 57, 59, 61,
+ 63, 65, 70, 72, 74, 79, 81, 83,
+ 88, 90, 92, 104, 116, 128, 140, 152,
+ 164, 176, 188, 200, 212, 229, 231, 235,
+ 239, 241, 245, 249, 251, 255, 259, 261,
+ 265, 269, 271, 273, 275, 277, 282, 284,
+ 286, 291, 293, 295, 300, 302, 304, 316,
+ 328, 340, 352, 364, 376, 388, 400, 412,
+ 424, 441, 443, 447, 451, 453, 457, 461,
+ 463, 467, 471, 473, 477, 481, 483, 485,
+ 487, 489, 494, 496, 498, 503, 505, 507,
+ 512, 514, 516, 528, 540, 552, 564, 576,
+ 588, 600, 612, 624, 641, 643, 647, 651,
+ 653, 657, 661, 663, 667, 671, 673, 677,
+ 681, 683, 685, 687, 689, 694, 696, 698,
+ 703, 705, 707, 712, 714, 716, 728, 740,
+ 752, 764, 776, 788, 800, 812, 824, 836,
+ 848, 860, 864, 868, 872, 876, 878, 882,
+ 886, 888, 892, 896, 898, 915, 917, 919,
+ 921, 923, 928, 930, 932, 937, 939, 941,
+ 946, 948, 950, 967, 983, 996, 1008, 1025,
+ 1041, 1054, 1066, 1083, 1099, 1112, 1124, 1141,
+ 1157, 1170, 1182, 1199, 1215, 1228, 1240, 1251,
+ 1259, 1265, 1267, 1269, 1285, 1293, 1296, 1304,
+ 1316, 1329, 1342, 1354, 1365, 1378, 1390, 1401,
+ 1414, 1426, 1437, 1450, 1462, 1472, 1485, 1497,
+ 1514, 1527, 1540, 1557, 1574, 1591, 1608, 1625,
+ 1638, 1651, 1668, 1685, 1702, 1719, 1736, 1749,
+ 1762, 1779, 1796, 1813, 1830, 1847, 1860, 1873,
+ 1890, 1907, 1924, 1941, 1958, 1971, 1984, 1997,
+ 2010, 2022, 2039, 2055, 2068, 2080, 2097, 2113,
+ 2126, 2138, 2155, 2171, 2184, 2196, 2213, 2229,
+ 2242, 2254, 2265, 2273, 2279, 2281, 2283, 2299,
+ 2307, 2310, 2318, 2330, 2343, 2356, 2368, 2379,
+ 2392, 2404, 2415, 2428, 2440, 2451, 2464, 2476,
+ 2486, 2499, 2516, 2529, 2542, 2559, 2576, 2593,
+ 2610, 2627, 2640, 2653, 2670, 2687, 2704, 2721,
+ 2738, 2751, 2764, 2781, 2798, 2815, 2832, 2849,
+ 2862, 2875, 2892, 2909, 2926, 2943, 2955, 2972,
+ 2985, 2998, 3010, 3027, 3043, 3056, 3068, 3085,
+ 3101, 3114, 3126, 3143, 3159, 3172, 3184, 3201,
+ 3217, 3230, 3242, 3253, 3261, 3267, 3269, 3271,
+ 3287, 3295, 3298, 3306, 3318, 3331, 3344, 3356,
+ 3367, 3380, 3392, 3403, 3416, 3428, 3439, 3452,
+ 3464, 3474, 3487, 3504, 3517, 3530, 3547, 3564,
+ 3581, 3598, 3615, 3628, 3641, 3658, 3675, 3692,
+ 3709, 3726, 3739, 3752, 3769, 3786, 3803, 3820,
+ 3837, 3850, 3863, 3880, 3897, 3914, 3931, 3948,
+ 3960, 3973, 3985, 3998, 4011, 4023, 4040, 4056,
+ 4069, 4081, 4098, 4114, 4127, 4139, 4156, 4172,
+ 4185, 4197, 4214, 4230, 4243, 4255, 4266, 4274,
+ 4280, 4282, 4284, 4300, 4308, 4311, 4319, 4331,
+ 4344, 4357, 4369, 4380, 4393, 4405, 4416, 4429,
+ 4441, 4452, 4465, 4477, 4487, 4500, 4517, 4530,
+ 4543, 4560, 4577, 4594, 4611, 4628, 4641, 4654,
+ 4671, 4688, 4705, 4722, 4739, 4752, 4765, 4782,
+ 4799, 4816, 4833, 4850, 4863, 4876, 4893, 4910,
+ 4927, 4944, 4961, 4974, 4991, 5007, 5024, 5036,
+ 5053, 5069, 5082, 5094, 5100, 5102, 5104, 5117,
+ 5130, 5147, 5160, 5172, 5183, 5196, 5208, 5219,
+ 5232, 5244, 5255, 5268, 5280, 5288, 5304, 5312,
+ 5315, 5323, 5335
+};
+
+static const short _indic_syllable_machine_indicies[] = {
+ 1, 2, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 1,
+ 0, 3, 0, 4, 4, 5, 0, 6,
+ 6, 5, 0, 5, 0, 7, 7, 8,
+ 0, 9, 9, 8, 0, 8, 0, 10,
+ 10, 11, 0, 12, 12, 11, 0, 11,
+ 0, 13, 13, 14, 0, 15, 15, 14,
+ 0, 14, 0, 16, 0, 17, 0, 18,
+ 0, 19, 13, 13, 14, 0, 20, 0,
+ 21, 0, 22, 10, 10, 11, 0, 23,
+ 0, 24, 0, 25, 7, 7, 8, 0,
+ 26, 0, 27, 0, 28, 4, 4, 5,
+ 0, 0, 0, 0, 0, 0, 28, 0,
+ 28, 4, 4, 5, 0, 0, 0, 0,
+ 0, 29, 28, 0, 30, 4, 4, 5,
+ 0, 0, 0, 0, 0, 0, 30, 0,
+ 30, 4, 4, 5, 0, 0, 0, 0,
+ 0, 31, 30, 0, 32, 4, 4, 5,
+ 0, 0, 0, 0, 0, 0, 32, 0,
+ 32, 4, 4, 5, 0, 0, 0, 0,
+ 0, 33, 32, 0, 34, 4, 4, 5,
+ 0, 0, 0, 0, 0, 0, 34, 0,
+ 34, 4, 4, 5, 0, 0, 0, 0,
+ 0, 35, 34, 0, 36, 4, 4, 5,
+ 0, 0, 0, 0, 0, 0, 36, 0,
+ 36, 4, 4, 5, 0, 0, 0, 0,
+ 0, 37, 36, 0, 39, 40, 38, 38,
+ 38, 38, 38, 38, 38, 38, 38, 38,
+ 38, 38, 38, 39, 38, 41, 38, 42,
+ 42, 43, 38, 44, 44, 43, 38, 43,
+ 38, 45, 45, 46, 38, 47, 47, 46,
+ 38, 46, 38, 48, 48, 49, 38, 50,
+ 50, 49, 38, 49, 38, 51, 51, 52,
+ 38, 53, 53, 52, 38, 52, 38, 54,
+ 38, 55, 38, 56, 38, 57, 51, 51,
+ 52, 38, 58, 38, 59, 38, 60, 48,
+ 48, 49, 38, 61, 38, 62, 38, 63,
+ 45, 45, 46, 38, 64, 38, 65, 38,
+ 66, 42, 42, 43, 38, 38, 38, 38,
+ 38, 38, 66, 38, 66, 42, 42, 43,
+ 38, 38, 38, 38, 38, 67, 66, 38,
+ 68, 42, 42, 43, 38, 38, 38, 38,
+ 38, 38, 68, 38, 68, 42, 42, 43,
+ 38, 38, 38, 38, 38, 69, 68, 38,
+ 70, 42, 42, 43, 38, 38, 38, 38,
+ 38, 38, 70, 38, 70, 42, 42, 43,
+ 38, 38, 38, 38, 38, 71, 70, 38,
+ 72, 42, 42, 43, 38, 38, 38, 38,
+ 38, 38, 72, 38, 72, 42, 42, 43,
+ 38, 38, 38, 38, 38, 73, 72, 38,
+ 74, 42, 42, 43, 38, 38, 38, 38,
+ 38, 38, 74, 38, 74, 42, 42, 43,
+ 38, 38, 38, 38, 38, 75, 74, 38,
+ 77, 78, 76, 76, 76, 76, 76, 76,
+ 76, 76, 76, 76, 76, 76, 76, 77,
+ 76, 79, 76, 80, 80, 81, 76, 83,
+ 83, 81, 82, 81, 82, 84, 84, 85,
+ 76, 86, 86, 85, 76, 85, 76, 87,
+ 87, 88, 76, 89, 89, 88, 76, 88,
+ 76, 90, 90, 91, 76, 92, 92, 91,
+ 76, 91, 76, 93, 76, 94, 76, 95,
+ 76, 96, 90, 90, 91, 76, 97, 76,
+ 98, 76, 99, 87, 87, 88, 76, 100,
+ 76, 101, 76, 102, 84, 84, 85, 76,
+ 103, 76, 104, 76, 105, 80, 80, 81,
+ 76, 76, 76, 76, 76, 76, 105, 76,
+ 105, 80, 80, 81, 76, 76, 76, 76,
+ 76, 106, 105, 76, 107, 80, 80, 81,
+ 76, 76, 76, 76, 76, 76, 107, 76,
+ 107, 80, 80, 81, 76, 76, 76, 76,
+ 76, 108, 107, 76, 109, 80, 80, 81,
+ 76, 76, 76, 76, 76, 76, 109, 76,
+ 109, 80, 80, 81, 76, 76, 76, 76,
+ 76, 110, 109, 76, 111, 80, 80, 81,
+ 82, 82, 82, 82, 82, 82, 111, 82,
+ 111, 80, 80, 81, 76, 76, 76, 76,
+ 76, 112, 111, 76, 113, 80, 80, 81,
+ 76, 76, 76, 76, 76, 76, 113, 76,
+ 115, 116, 114, 114, 114, 114, 114, 114,
+ 114, 114, 114, 114, 114, 114, 114, 115,
+ 114, 117, 114, 118, 118, 119, 114, 120,
+ 120, 119, 114, 119, 114, 121, 121, 122,
+ 114, 123, 123, 122, 114, 122, 114, 124,
+ 124, 125, 114, 126, 126, 125, 114, 125,
+ 114, 127, 127, 128, 114, 129, 129, 128,
+ 114, 128, 114, 130, 114, 131, 114, 132,
+ 114, 133, 127, 127, 128, 114, 134, 114,
+ 135, 114, 136, 124, 124, 125, 114, 137,
+ 114, 138, 114, 139, 121, 121, 122, 114,
+ 140, 114, 141, 114, 142, 118, 118, 119,
+ 114, 114, 114, 114, 114, 114, 142, 114,
+ 142, 118, 118, 119, 114, 114, 114, 114,
+ 114, 143, 142, 114, 144, 118, 118, 119,
+ 114, 114, 114, 114, 114, 114, 144, 114,
+ 144, 118, 118, 119, 114, 114, 114, 114,
+ 114, 145, 144, 114, 146, 118, 118, 119,
+ 114, 114, 114, 114, 114, 114, 146, 114,
+ 146, 118, 118, 119, 114, 114, 114, 114,
+ 114, 147, 146, 114, 148, 118, 118, 119,
+ 114, 114, 114, 114, 114, 114, 148, 114,
+ 148, 118, 118, 119, 114, 114, 114, 114,
+ 114, 149, 148, 114, 150, 118, 118, 119,
+ 114, 114, 114, 114, 114, 114, 150, 114,
+ 150, 118, 118, 119, 114, 114, 114, 114,
+ 114, 151, 150, 114, 113, 80, 80, 81,
+ 76, 76, 76, 76, 76, 152, 113, 76,
+ 111, 80, 80, 81, 0, 0, 0, 0,
+ 0, 153, 111, 0, 154, 154, 155, 0,
+ 6, 6, 155, 0, 156, 156, 157, 0,
+ 158, 158, 157, 0, 157, 0, 159, 159,
+ 160, 0, 161, 161, 160, 0, 160, 0,
+ 162, 162, 163, 0, 164, 164, 163, 0,
+ 163, 0, 165, 166, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 165, 0, 167, 0, 168, 0, 169,
+ 0, 170, 0, 171, 162, 162, 163, 0,
+ 172, 0, 173, 0, 174, 159, 159, 160,
+ 0, 175, 0, 176, 0, 177, 156, 156,
+ 157, 0, 178, 0, 179, 0, 181, 182,
+ 183, 184, 185, 186, 81, 187, 188, 180,
+ 189, 189, 152, 190, 191, 192, 180, 194,
+ 195, 196, 197, 5, 198, 199, 200, 193,
+ 193, 37, 201, 193, 193, 181, 193, 202,
+ 195, 203, 203, 5, 198, 199, 200, 193,
+ 193, 193, 201, 193, 195, 203, 203, 5,
+ 198, 199, 200, 193, 193, 193, 201, 193,
+ 204, 193, 193, 193, 18, 205, 193, 198,
+ 199, 193, 193, 193, 193, 206, 193, 204,
+ 193, 207, 208, 209, 210, 5, 198, 199,
+ 200, 193, 193, 35, 211, 193, 193, 204,
+ 193, 212, 208, 213, 213, 5, 198, 199,
+ 200, 193, 193, 193, 211, 193, 208, 213,
+ 213, 5, 198, 199, 200, 193, 193, 193,
+ 211, 193, 214, 193, 193, 193, 18, 215,
+ 193, 198, 199, 193, 193, 193, 193, 206,
+ 193, 214, 193, 216, 217, 218, 219, 5,
+ 198, 199, 200, 193, 193, 33, 220, 193,
+ 193, 214, 193, 221, 217, 222, 222, 5,
+ 198, 199, 200, 193, 193, 193, 220, 193,
+ 217, 222, 222, 5, 198, 199, 200, 193,
+ 193, 193, 220, 193, 223, 193, 193, 193,
+ 18, 224, 193, 198, 199, 193, 193, 193,
+ 193, 206, 193, 223, 193, 225, 226, 227,
+ 228, 5, 198, 199, 200, 193, 193, 31,
+ 229, 193, 193, 223, 193, 230, 226, 231,
+ 231, 5, 198, 199, 200, 193, 193, 193,
+ 229, 193, 226, 231, 231, 5, 198, 199,
+ 200, 193, 193, 193, 229, 193, 232, 193,
+ 193, 193, 18, 233, 193, 198, 199, 193,
+ 193, 193, 193, 206, 193, 232, 193, 234,
+ 235, 236, 237, 5, 198, 199, 200, 193,
+ 193, 29, 238, 193, 193, 232, 193, 239,
+ 235, 240, 240, 5, 198, 199, 200, 193,
+ 193, 193, 238, 193, 235, 240, 240, 5,
+ 198, 199, 200, 193, 193, 193, 238, 193,
+ 18, 241, 193, 198, 199, 193, 193, 193,
+ 193, 206, 193, 198, 199, 193, 193, 193,
+ 193, 206, 193, 242, 193, 193, 193, 199,
+ 193, 199, 193, 243, 193, 244, 193, 245,
+ 246, 193, 198, 199, 193, 193, 193, 3,
+ 193, 193, 193, 1, 193, 2, 193, 193,
+ 193, 193, 198, 199, 193, 198, 199, 193,
+ 244, 193, 193, 193, 193, 198, 199, 193,
+ 244, 193, 245, 193, 193, 198, 199, 193,
+ 193, 193, 3, 193, 18, 193, 247, 247,
+ 5, 198, 199, 193, 193, 193, 193, 206,
+ 193, 248, 27, 249, 250, 8, 198, 199,
+ 193, 193, 193, 193, 206, 193, 27, 249,
+ 250, 8, 198, 199, 193, 193, 193, 193,
+ 206, 193, 249, 249, 8, 198, 199, 193,
+ 193, 193, 193, 206, 193, 251, 24, 252,
+ 253, 11, 198, 199, 193, 193, 193, 193,
+ 206, 193, 24, 252, 253, 11, 198, 199,
+ 193, 193, 193, 193, 206, 193, 252, 252,
+ 11, 198, 199, 193, 193, 193, 193, 206,
+ 193, 254, 21, 255, 256, 14, 198, 199,
+ 193, 193, 193, 193, 206, 193, 21, 255,
+ 256, 14, 198, 199, 193, 193, 193, 193,
+ 206, 193, 255, 255, 14, 198, 199, 193,
+ 193, 193, 193, 206, 193, 257, 18, 193,
+ 258, 193, 198, 199, 193, 193, 193, 193,
+ 206, 193, 18, 193, 258, 193, 198, 199,
+ 193, 193, 193, 193, 206, 193, 259, 193,
+ 198, 199, 193, 193, 193, 193, 206, 193,
+ 18, 193, 193, 193, 193, 198, 199, 193,
+ 193, 193, 193, 206, 193, 235, 240, 240,
+ 5, 198, 199, 193, 193, 193, 193, 238,
+ 193, 1, 2, 193, 193, 18, 241, 193,
+ 198, 199, 193, 193, 193, 193, 206, 193,
+ 1, 193, 234, 235, 240, 240, 5, 198,
+ 199, 200, 193, 193, 193, 238, 193, 234,
+ 235, 236, 240, 5, 198, 199, 200, 193,
+ 193, 29, 238, 193, 232, 193, 260, 193,
+ 247, 247, 5, 198, 199, 193, 193, 193,
+ 193, 206, 193, 232, 193, 232, 193, 193,
+ 193, 193, 193, 193, 198, 199, 193, 193,
+ 193, 193, 206, 193, 232, 193, 232, 193,
+ 193, 193, 193, 261, 193, 198, 199, 193,
+ 193, 193, 193, 206, 193, 232, 193, 232,
+ 193, 260, 193, 193, 193, 193, 198, 199,
+ 193, 193, 193, 193, 206, 193, 232, 193,
+ 232, 2, 193, 193, 18, 233, 193, 198,
+ 199, 193, 193, 193, 193, 206, 193, 232,
+ 193, 225, 226, 231, 231, 5, 198, 199,
+ 200, 193, 193, 193, 229, 193, 225, 226,
+ 227, 231, 5, 198, 199, 200, 193, 193,
+ 31, 229, 193, 223, 193, 262, 193, 247,
+ 247, 5, 198, 199, 193, 193, 193, 193,
+ 206, 193, 223, 193, 223, 193, 193, 193,
+ 193, 193, 193, 198, 199, 193, 193, 193,
+ 193, 206, 193, 223, 193, 223, 193, 193,
+ 193, 193, 263, 193, 198, 199, 193, 193,
+ 193, 193, 206, 193, 223, 193, 223, 193,
+ 262, 193, 193, 193, 193, 198, 199, 193,
+ 193, 193, 193, 206, 193, 223, 193, 223,
+ 2, 193, 193, 18, 224, 193, 198, 199,
+ 193, 193, 193, 193, 206, 193, 223, 193,
+ 216, 217, 222, 222, 5, 198, 199, 200,
+ 193, 193, 193, 220, 193, 216, 217, 218,
+ 222, 5, 198, 199, 200, 193, 193, 33,
+ 220, 193, 214, 193, 264, 193, 247, 247,
+ 5, 198, 199, 193, 193, 193, 193, 206,
+ 193, 214, 193, 214, 193, 193, 193, 193,
+ 193, 193, 198, 199, 193, 193, 193, 193,
+ 206, 193, 214, 193, 214, 193, 193, 193,
+ 193, 265, 193, 198, 199, 193, 193, 193,
+ 193, 206, 193, 214, 193, 214, 193, 264,
+ 193, 193, 193, 193, 198, 199, 193, 193,
+ 193, 193, 206, 193, 214, 193, 214, 2,
+ 193, 193, 18, 215, 193, 198, 199, 193,
+ 193, 193, 193, 206, 193, 214, 193, 207,
+ 208, 213, 213, 5, 198, 199, 200, 193,
+ 193, 193, 211, 193, 207, 208, 209, 213,
+ 5, 198, 199, 200, 193, 193, 35, 211,
+ 193, 204, 193, 266, 193, 247, 247, 5,
+ 198, 199, 193, 193, 193, 193, 206, 193,
+ 204, 193, 204, 193, 193, 193, 193, 193,
+ 193, 198, 199, 193, 193, 193, 193, 206,
+ 193, 204, 193, 204, 193, 193, 193, 193,
+ 267, 193, 198, 199, 193, 193, 193, 193,
+ 206, 193, 204, 193, 204, 193, 266, 193,
+ 193, 193, 193, 198, 199, 193, 193, 193,
+ 193, 206, 193, 204, 193, 204, 2, 193,
+ 193, 18, 205, 193, 198, 199, 193, 193,
+ 193, 193, 206, 193, 204, 193, 194, 195,
+ 203, 203, 5, 198, 199, 200, 193, 193,
+ 193, 201, 193, 194, 195, 196, 203, 5,
+ 198, 199, 200, 193, 193, 37, 201, 193,
+ 269, 270, 271, 272, 43, 273, 274, 268,
+ 268, 268, 75, 275, 268, 276, 270, 277,
+ 272, 43, 273, 274, 268, 268, 268, 268,
+ 275, 268, 270, 277, 272, 43, 273, 274,
+ 268, 268, 268, 268, 275, 268, 278, 268,
+ 268, 268, 56, 279, 268, 273, 274, 268,
+ 268, 268, 268, 280, 268, 278, 268, 281,
+ 282, 283, 284, 43, 273, 274, 268, 268,
+ 268, 73, 285, 268, 268, 278, 268, 286,
+ 282, 287, 287, 43, 273, 274, 268, 268,
+ 268, 268, 285, 268, 282, 287, 287, 43,
+ 273, 274, 268, 268, 268, 268, 285, 268,
+ 288, 268, 268, 268, 56, 289, 268, 273,
+ 274, 268, 268, 268, 268, 280, 268, 288,
+ 268, 290, 291, 292, 293, 43, 273, 274,
+ 268, 268, 268, 71, 294, 268, 268, 288,
+ 268, 295, 291, 296, 296, 43, 273, 274,
+ 268, 268, 268, 268, 294, 268, 291, 296,
+ 296, 43, 273, 274, 268, 268, 268, 268,
+ 294, 268, 297, 268, 268, 268, 56, 298,
+ 268, 273, 274, 268, 268, 268, 268, 280,
+ 268, 297, 268, 299, 300, 301, 302, 43,
+ 273, 274, 268, 268, 268, 69, 303, 268,
+ 268, 297, 268, 304, 300, 305, 305, 43,
+ 273, 274, 268, 268, 268, 268, 303, 268,
+ 300, 305, 305, 43, 273, 274, 268, 268,
+ 268, 268, 303, 268, 306, 268, 268, 268,
+ 56, 307, 268, 273, 274, 268, 268, 268,
+ 268, 280, 268, 306, 268, 308, 309, 310,
+ 311, 43, 273, 274, 268, 268, 268, 67,
+ 312, 268, 268, 306, 268, 313, 309, 314,
+ 314, 43, 273, 274, 268, 268, 268, 268,
+ 312, 268, 309, 314, 314, 43, 273, 274,
+ 268, 268, 268, 268, 312, 268, 56, 315,
+ 268, 273, 274, 268, 268, 268, 268, 280,
+ 268, 273, 274, 268, 268, 268, 268, 280,
+ 268, 316, 268, 268, 268, 274, 268, 274,
+ 268, 317, 268, 318, 268, 319, 320, 268,
+ 273, 274, 268, 268, 268, 41, 268, 268,
+ 268, 39, 268, 40, 268, 268, 268, 268,
+ 273, 274, 268, 273, 274, 268, 318, 268,
+ 268, 268, 268, 273, 274, 268, 318, 268,
+ 319, 268, 268, 273, 274, 268, 268, 268,
+ 41, 268, 56, 268, 321, 321, 43, 273,
+ 274, 268, 268, 268, 268, 280, 268, 322,
+ 65, 323, 324, 46, 273, 274, 268, 268,
+ 268, 268, 280, 268, 65, 323, 324, 46,
+ 273, 274, 268, 268, 268, 268, 280, 268,
+ 323, 323, 46, 273, 274, 268, 268, 268,
+ 268, 280, 268, 325, 62, 326, 327, 49,
+ 273, 274, 268, 268, 268, 268, 280, 268,
+ 62, 326, 327, 49, 273, 274, 268, 268,
+ 268, 268, 280, 268, 326, 326, 49, 273,
+ 274, 268, 268, 268, 268, 280, 268, 328,
+ 59, 329, 330, 52, 273, 274, 268, 268,
+ 268, 268, 280, 268, 59, 329, 330, 52,
+ 273, 274, 268, 268, 268, 268, 280, 268,
+ 329, 329, 52, 273, 274, 268, 268, 268,
+ 268, 280, 268, 331, 56, 268, 332, 268,
+ 273, 274, 268, 268, 268, 268, 280, 268,
+ 56, 268, 332, 268, 273, 274, 268, 268,
+ 268, 268, 280, 268, 333, 268, 273, 274,
+ 268, 268, 268, 268, 280, 268, 56, 268,
+ 268, 268, 268, 273, 274, 268, 268, 268,
+ 268, 280, 268, 39, 40, 268, 268, 56,
+ 315, 268, 273, 274, 268, 268, 268, 268,
+ 280, 268, 39, 268, 308, 309, 314, 314,
+ 43, 273, 274, 268, 268, 268, 268, 312,
+ 268, 308, 309, 310, 314, 43, 273, 274,
+ 268, 268, 268, 67, 312, 268, 306, 268,
+ 334, 268, 321, 321, 43, 273, 274, 268,
+ 268, 268, 268, 280, 268, 306, 268, 306,
+ 268, 268, 268, 268, 268, 268, 273, 274,
+ 268, 268, 268, 268, 280, 268, 306, 268,
+ 306, 268, 268, 268, 268, 335, 268, 273,
+ 274, 268, 268, 268, 268, 280, 268, 306,
+ 268, 306, 268, 334, 268, 268, 268, 268,
+ 273, 274, 268, 268, 268, 268, 280, 268,
+ 306, 268, 306, 40, 268, 268, 56, 307,
+ 268, 273, 274, 268, 268, 268, 268, 280,
+ 268, 306, 268, 299, 300, 305, 305, 43,
+ 273, 274, 268, 268, 268, 268, 303, 268,
+ 299, 300, 301, 305, 43, 273, 274, 268,
+ 268, 268, 69, 303, 268, 297, 268, 336,
+ 268, 321, 321, 43, 273, 274, 268, 268,
+ 268, 268, 280, 268, 297, 268, 297, 268,
+ 268, 268, 268, 268, 268, 273, 274, 268,
+ 268, 268, 268, 280, 268, 297, 268, 297,
+ 268, 268, 268, 268, 337, 268, 273, 274,
+ 268, 268, 268, 268, 280, 268, 297, 268,
+ 297, 268, 336, 268, 268, 268, 268, 273,
+ 274, 268, 268, 268, 268, 280, 268, 297,
+ 268, 297, 40, 268, 268, 56, 298, 268,
+ 273, 274, 268, 268, 268, 268, 280, 268,
+ 297, 268, 290, 291, 296, 296, 43, 273,
+ 274, 268, 268, 268, 268, 294, 268, 290,
+ 291, 292, 296, 43, 273, 274, 268, 268,
+ 268, 71, 294, 268, 288, 268, 338, 268,
+ 321, 321, 43, 273, 274, 268, 268, 268,
+ 268, 280, 268, 288, 268, 288, 268, 268,
+ 268, 268, 268, 268, 273, 274, 268, 268,
+ 268, 268, 280, 268, 288, 268, 288, 268,
+ 268, 268, 268, 339, 268, 273, 274, 268,
+ 268, 268, 268, 280, 268, 288, 268, 288,
+ 268, 338, 268, 268, 268, 268, 273, 274,
+ 268, 268, 268, 268, 280, 268, 288, 268,
+ 288, 40, 268, 268, 56, 289, 268, 273,
+ 274, 268, 268, 268, 268, 280, 268, 288,
+ 268, 281, 282, 287, 287, 43, 273, 274,
+ 268, 268, 268, 268, 285, 268, 281, 282,
+ 283, 287, 43, 273, 274, 268, 268, 268,
+ 73, 285, 268, 278, 268, 340, 268, 321,
+ 321, 43, 273, 274, 268, 268, 268, 268,
+ 280, 268, 278, 268, 278, 268, 268, 268,
+ 268, 268, 268, 273, 274, 268, 268, 268,
+ 268, 280, 268, 278, 268, 278, 268, 268,
+ 268, 268, 341, 268, 273, 274, 268, 268,
+ 268, 268, 280, 268, 278, 268, 278, 268,
+ 340, 268, 268, 268, 268, 273, 274, 268,
+ 268, 268, 268, 280, 268, 278, 268, 74,
+ 42, 42, 43, 268, 268, 268, 268, 268,
+ 268, 74, 268, 278, 40, 268, 268, 56,
+ 279, 268, 273, 274, 268, 268, 268, 268,
+ 280, 268, 278, 268, 269, 270, 277, 272,
+ 43, 273, 274, 268, 268, 268, 268, 275,
+ 268, 343, 184, 344, 344, 81, 187, 188,
+ 342, 342, 342, 342, 190, 342, 184, 344,
+ 344, 81, 187, 188, 342, 342, 342, 342,
+ 190, 342, 345, 342, 342, 342, 95, 346,
+ 342, 187, 188, 342, 342, 342, 342, 347,
+ 342, 345, 342, 348, 349, 350, 351, 81,
+ 187, 188, 342, 342, 342, 112, 352, 342,
+ 342, 345, 342, 353, 349, 354, 354, 81,
+ 187, 188, 342, 342, 342, 342, 352, 342,
+ 349, 354, 354, 81, 187, 188, 342, 342,
+ 342, 342, 352, 342, 355, 342, 342, 342,
+ 95, 356, 342, 187, 188, 342, 342, 342,
+ 342, 347, 342, 355, 342, 357, 358, 359,
+ 360, 81, 187, 188, 342, 342, 342, 110,
+ 361, 342, 342, 355, 342, 362, 358, 363,
+ 363, 81, 187, 188, 342, 342, 342, 342,
+ 361, 342, 358, 363, 363, 81, 187, 188,
+ 342, 342, 342, 342, 361, 342, 364, 342,
+ 342, 342, 95, 365, 342, 187, 188, 342,
+ 342, 342, 342, 347, 342, 364, 342, 366,
+ 367, 368, 369, 81, 187, 188, 342, 342,
+ 342, 108, 370, 342, 342, 364, 342, 371,
+ 367, 372, 372, 81, 187, 188, 342, 342,
+ 342, 342, 370, 342, 367, 372, 372, 81,
+ 187, 188, 342, 342, 342, 342, 370, 342,
+ 373, 342, 342, 342, 95, 374, 342, 187,
+ 188, 342, 342, 342, 342, 347, 342, 373,
+ 342, 375, 376, 377, 378, 81, 187, 188,
+ 342, 342, 342, 106, 379, 342, 342, 373,
+ 342, 380, 376, 381, 381, 81, 187, 188,
+ 342, 342, 342, 342, 379, 342, 376, 381,
+ 381, 81, 187, 188, 342, 342, 342, 342,
+ 379, 342, 95, 382, 342, 187, 188, 342,
+ 342, 342, 342, 347, 342, 187, 188, 342,
+ 342, 342, 342, 347, 342, 383, 342, 342,
+ 342, 188, 342, 188, 342, 384, 342, 385,
+ 342, 386, 387, 342, 187, 188, 342, 342,
+ 342, 79, 342, 342, 342, 77, 342, 78,
+ 342, 342, 342, 342, 187, 188, 342, 187,
+ 188, 342, 385, 342, 342, 342, 342, 187,
+ 188, 342, 385, 342, 386, 342, 342, 187,
+ 188, 342, 342, 342, 79, 342, 95, 342,
+ 388, 388, 81, 187, 188, 342, 342, 342,
+ 342, 347, 342, 389, 104, 390, 391, 85,
+ 187, 188, 342, 342, 342, 342, 347, 342,
+ 104, 390, 391, 85, 187, 188, 342, 342,
+ 342, 342, 347, 342, 390, 390, 85, 187,
+ 188, 342, 342, 342, 342, 347, 342, 392,
+ 101, 393, 394, 88, 187, 188, 342, 342,
+ 342, 342, 347, 342, 101, 393, 394, 88,
+ 187, 188, 342, 342, 342, 342, 347, 342,
+ 393, 393, 88, 187, 188, 342, 342, 342,
+ 342, 347, 342, 395, 98, 396, 397, 91,
+ 187, 188, 342, 342, 342, 342, 347, 342,
+ 98, 396, 397, 91, 187, 188, 342, 342,
+ 342, 342, 347, 342, 396, 396, 91, 187,
+ 188, 342, 342, 342, 342, 347, 342, 398,
+ 95, 342, 399, 342, 187, 188, 342, 342,
+ 342, 342, 347, 342, 95, 342, 399, 342,
+ 187, 188, 342, 342, 342, 342, 347, 342,
+ 400, 342, 187, 188, 342, 342, 342, 342,
+ 347, 342, 95, 342, 342, 342, 342, 187,
+ 188, 342, 342, 342, 342, 347, 342, 77,
+ 78, 342, 342, 95, 382, 342, 187, 188,
+ 342, 342, 342, 342, 347, 342, 77, 342,
+ 375, 376, 381, 381, 81, 187, 188, 342,
+ 342, 342, 342, 379, 342, 375, 376, 377,
+ 381, 81, 187, 188, 342, 342, 342, 106,
+ 379, 342, 373, 342, 401, 342, 388, 388,
+ 81, 187, 188, 342, 342, 342, 342, 347,
+ 342, 373, 342, 373, 342, 342, 342, 342,
+ 342, 342, 187, 188, 342, 342, 342, 342,
+ 347, 342, 373, 342, 373, 342, 342, 342,
+ 342, 402, 342, 187, 188, 342, 342, 342,
+ 342, 347, 342, 373, 342, 373, 342, 401,
+ 342, 342, 342, 342, 187, 188, 342, 342,
+ 342, 342, 347, 342, 373, 342, 373, 78,
+ 342, 342, 95, 374, 342, 187, 188, 342,
+ 342, 342, 342, 347, 342, 373, 342, 366,
+ 367, 372, 372, 81, 187, 188, 342, 342,
+ 342, 342, 370, 342, 366, 367, 368, 372,
+ 81, 187, 188, 342, 342, 342, 108, 370,
+ 342, 364, 342, 403, 342, 388, 388, 81,
+ 187, 188, 342, 342, 342, 342, 347, 342,
+ 364, 342, 364, 342, 342, 342, 342, 342,
+ 342, 187, 188, 342, 342, 342, 342, 347,
+ 342, 364, 342, 364, 342, 342, 342, 342,
+ 404, 342, 187, 188, 342, 342, 342, 342,
+ 347, 342, 364, 342, 364, 342, 403, 342,
+ 342, 342, 342, 187, 188, 342, 342, 342,
+ 342, 347, 342, 364, 342, 364, 78, 342,
+ 342, 95, 365, 342, 187, 188, 342, 342,
+ 342, 342, 347, 342, 364, 342, 357, 358,
+ 363, 363, 81, 187, 188, 342, 342, 342,
+ 342, 361, 342, 357, 358, 359, 363, 81,
+ 187, 188, 342, 342, 342, 110, 361, 342,
+ 355, 342, 405, 342, 388, 388, 81, 187,
+ 188, 342, 342, 342, 342, 347, 342, 355,
+ 342, 355, 342, 342, 342, 342, 342, 342,
+ 187, 188, 342, 342, 342, 342, 347, 342,
+ 355, 342, 355, 342, 342, 342, 342, 406,
+ 342, 187, 188, 342, 342, 342, 342, 347,
+ 342, 355, 342, 355, 342, 405, 342, 342,
+ 342, 342, 187, 188, 342, 342, 342, 342,
+ 347, 342, 355, 342, 355, 78, 342, 342,
+ 95, 356, 342, 187, 188, 342, 342, 342,
+ 342, 347, 342, 355, 342, 348, 349, 354,
+ 354, 81, 187, 188, 342, 342, 342, 342,
+ 352, 342, 348, 349, 350, 354, 81, 187,
+ 188, 342, 342, 342, 112, 352, 342, 345,
+ 342, 407, 342, 388, 388, 81, 187, 188,
+ 342, 342, 342, 342, 347, 342, 345, 342,
+ 345, 342, 342, 342, 342, 342, 342, 187,
+ 188, 342, 342, 342, 342, 347, 342, 345,
+ 342, 345, 342, 342, 342, 342, 408, 342,
+ 187, 188, 342, 342, 342, 342, 347, 342,
+ 345, 342, 345, 342, 407, 342, 342, 342,
+ 342, 187, 188, 342, 342, 342, 342, 347,
+ 342, 345, 342, 345, 78, 342, 342, 95,
+ 346, 342, 187, 188, 342, 342, 342, 342,
+ 347, 342, 345, 342, 113, 80, 80, 81,
+ 409, 409, 409, 409, 409, 152, 113, 409,
+ 183, 184, 344, 344, 81, 187, 188, 342,
+ 342, 342, 342, 190, 342, 113, 80, 80,
+ 81, 409, 409, 409, 409, 409, 409, 113,
+ 409, 411, 412, 413, 414, 119, 415, 416,
+ 410, 410, 410, 151, 417, 410, 418, 412,
+ 414, 414, 119, 415, 416, 410, 410, 410,
+ 410, 417, 410, 412, 414, 414, 119, 415,
+ 416, 410, 410, 410, 410, 417, 410, 419,
+ 410, 410, 410, 132, 420, 410, 415, 416,
+ 410, 410, 410, 410, 421, 410, 419, 410,
+ 422, 423, 424, 425, 119, 415, 416, 410,
+ 410, 410, 149, 426, 410, 410, 419, 410,
+ 427, 423, 428, 428, 119, 415, 416, 410,
+ 410, 410, 410, 426, 410, 423, 428, 428,
+ 119, 415, 416, 410, 410, 410, 410, 426,
+ 410, 429, 410, 410, 410, 132, 430, 410,
+ 415, 416, 410, 410, 410, 410, 421, 410,
+ 429, 410, 431, 432, 433, 434, 119, 415,
+ 416, 410, 410, 410, 147, 435, 410, 410,
+ 429, 410, 436, 432, 437, 437, 119, 415,
+ 416, 410, 410, 410, 410, 435, 410, 432,
+ 437, 437, 119, 415, 416, 410, 410, 410,
+ 410, 435, 410, 438, 410, 410, 410, 132,
+ 439, 410, 415, 416, 410, 410, 410, 410,
+ 421, 410, 438, 410, 440, 441, 442, 443,
+ 119, 415, 416, 410, 410, 410, 145, 444,
+ 410, 410, 438, 410, 445, 441, 446, 446,
+ 119, 415, 416, 410, 410, 410, 410, 444,
+ 410, 441, 446, 446, 119, 415, 416, 410,
+ 410, 410, 410, 444, 410, 447, 410, 410,
+ 410, 132, 448, 410, 415, 416, 410, 410,
+ 410, 410, 421, 410, 447, 410, 449, 450,
+ 451, 452, 119, 415, 416, 410, 410, 410,
+ 143, 453, 410, 410, 447, 410, 454, 450,
+ 455, 455, 119, 415, 416, 410, 410, 410,
+ 410, 453, 410, 450, 455, 455, 119, 415,
+ 416, 410, 410, 410, 410, 453, 410, 132,
+ 456, 410, 415, 416, 410, 410, 410, 410,
+ 421, 410, 415, 416, 410, 410, 410, 410,
+ 421, 410, 457, 410, 410, 410, 416, 410,
+ 416, 410, 458, 410, 459, 410, 460, 461,
+ 410, 415, 416, 410, 410, 410, 117, 410,
+ 410, 410, 115, 410, 116, 410, 410, 410,
+ 410, 415, 416, 410, 415, 416, 410, 459,
+ 410, 410, 410, 410, 415, 416, 410, 459,
+ 410, 460, 410, 410, 415, 416, 410, 410,
+ 410, 117, 410, 132, 410, 462, 462, 119,
+ 415, 416, 410, 410, 410, 410, 421, 410,
+ 463, 141, 464, 465, 122, 415, 416, 410,
+ 410, 410, 410, 421, 410, 141, 464, 465,
+ 122, 415, 416, 410, 410, 410, 410, 421,
+ 410, 464, 464, 122, 415, 416, 410, 410,
+ 410, 410, 421, 410, 466, 138, 467, 468,
+ 125, 415, 416, 410, 410, 410, 410, 421,
+ 410, 138, 467, 468, 125, 415, 416, 410,
+ 410, 410, 410, 421, 410, 467, 467, 125,
+ 415, 416, 410, 410, 410, 410, 421, 410,
+ 469, 135, 470, 471, 128, 415, 416, 410,
+ 410, 410, 410, 421, 410, 135, 470, 471,
+ 128, 415, 416, 410, 410, 410, 410, 421,
+ 410, 470, 470, 128, 415, 416, 410, 410,
+ 410, 410, 421, 410, 472, 132, 410, 473,
+ 410, 415, 416, 410, 410, 410, 410, 421,
+ 410, 132, 410, 473, 410, 415, 416, 410,
+ 410, 410, 410, 421, 410, 474, 410, 415,
+ 416, 410, 410, 410, 410, 421, 410, 132,
+ 410, 410, 410, 410, 415, 416, 410, 410,
+ 410, 410, 421, 410, 115, 116, 410, 410,
+ 132, 456, 410, 415, 416, 410, 410, 410,
+ 410, 421, 410, 115, 410, 449, 450, 455,
+ 455, 119, 415, 416, 410, 410, 410, 410,
+ 453, 410, 449, 450, 451, 455, 119, 415,
+ 416, 410, 410, 410, 143, 453, 410, 447,
+ 410, 475, 410, 462, 462, 119, 415, 416,
+ 410, 410, 410, 410, 421, 410, 447, 410,
+ 447, 410, 410, 410, 410, 410, 410, 415,
+ 416, 410, 410, 410, 410, 421, 410, 447,
+ 410, 447, 410, 410, 410, 410, 476, 410,
+ 415, 416, 410, 410, 410, 410, 421, 410,
+ 447, 410, 447, 410, 475, 410, 410, 410,
+ 410, 415, 416, 410, 410, 410, 410, 421,
+ 410, 447, 410, 447, 116, 410, 410, 132,
+ 448, 410, 415, 416, 410, 410, 410, 410,
+ 421, 410, 447, 410, 440, 441, 446, 446,
+ 119, 415, 416, 410, 410, 410, 410, 444,
+ 410, 440, 441, 442, 446, 119, 415, 416,
+ 410, 410, 410, 145, 444, 410, 438, 410,
+ 477, 410, 462, 462, 119, 415, 416, 410,
+ 410, 410, 410, 421, 410, 438, 410, 438,
+ 410, 410, 410, 410, 410, 410, 415, 416,
+ 410, 410, 410, 410, 421, 410, 438, 410,
+ 438, 410, 410, 410, 410, 478, 410, 415,
+ 416, 410, 410, 410, 410, 421, 410, 438,
+ 410, 438, 410, 477, 410, 410, 410, 410,
+ 415, 416, 410, 410, 410, 410, 421, 410,
+ 438, 410, 438, 116, 410, 410, 132, 439,
+ 410, 415, 416, 410, 410, 410, 410, 421,
+ 410, 438, 410, 431, 432, 437, 437, 119,
+ 415, 416, 410, 410, 410, 410, 435, 410,
+ 431, 432, 433, 437, 119, 415, 416, 410,
+ 410, 410, 147, 435, 410, 429, 410, 479,
+ 410, 462, 462, 119, 415, 416, 410, 410,
+ 410, 410, 421, 410, 429, 410, 429, 410,
+ 410, 410, 410, 410, 410, 415, 416, 410,
+ 410, 410, 410, 421, 410, 429, 410, 429,
+ 410, 410, 410, 410, 480, 410, 415, 416,
+ 410, 410, 410, 410, 421, 410, 429, 410,
+ 429, 410, 479, 410, 410, 410, 410, 415,
+ 416, 410, 410, 410, 410, 421, 410, 429,
+ 410, 429, 116, 410, 410, 132, 430, 410,
+ 415, 416, 410, 410, 410, 410, 421, 410,
+ 429, 410, 422, 423, 428, 428, 119, 415,
+ 416, 410, 410, 410, 410, 426, 410, 422,
+ 423, 424, 428, 119, 415, 416, 410, 410,
+ 410, 149, 426, 410, 419, 410, 481, 410,
+ 462, 462, 119, 415, 416, 410, 410, 410,
+ 410, 421, 410, 419, 410, 419, 410, 410,
+ 410, 410, 410, 410, 415, 416, 410, 410,
+ 410, 410, 421, 410, 419, 410, 419, 410,
+ 410, 410, 410, 482, 410, 415, 416, 410,
+ 410, 410, 410, 421, 410, 419, 410, 419,
+ 410, 481, 410, 410, 410, 410, 415, 416,
+ 410, 410, 410, 410, 421, 410, 419, 410,
+ 419, 116, 410, 410, 132, 420, 410, 415,
+ 416, 410, 410, 410, 410, 421, 410, 419,
+ 410, 411, 412, 414, 414, 119, 415, 416,
+ 410, 410, 410, 410, 417, 410, 181, 182,
+ 183, 184, 483, 344, 81, 187, 188, 342,
+ 189, 189, 152, 190, 342, 181, 342, 194,
+ 484, 196, 197, 5, 198, 199, 200, 193,
+ 193, 37, 201, 193, 193, 181, 193, 204,
+ 182, 183, 184, 485, 486, 81, 487, 488,
+ 193, 189, 189, 152, 489, 193, 204, 193,
+ 113, 80, 80, 81, 198, 199, 193, 193,
+ 193, 152, 490, 193, 491, 2, 342, 342,
+ 342, 408, 342, 187, 188, 342, 342, 342,
+ 342, 347, 342, 491, 342, 492, 349, 493,
+ 494, 81, 487, 488, 193, 193, 193, 153,
+ 352, 193, 193, 491, 193, 495, 349, 354,
+ 354, 81, 487, 488, 193, 193, 193, 193,
+ 352, 193, 349, 354, 354, 81, 487, 488,
+ 193, 193, 193, 193, 352, 193, 496, 193,
+ 193, 193, 488, 193, 488, 193, 243, 193,
+ 492, 349, 354, 354, 81, 487, 488, 193,
+ 193, 193, 193, 352, 193, 492, 349, 493,
+ 354, 81, 487, 488, 193, 193, 193, 153,
+ 352, 193, 204, 193, 266, 113, 497, 497,
+ 155, 198, 199, 193, 193, 193, 193, 490,
+ 193, 204, 193, 498, 179, 499, 500, 157,
+ 487, 488, 193, 193, 193, 193, 501, 193,
+ 179, 499, 500, 157, 487, 488, 193, 193,
+ 193, 193, 501, 193, 499, 499, 157, 487,
+ 488, 193, 193, 193, 193, 501, 193, 502,
+ 176, 503, 504, 160, 487, 488, 193, 193,
+ 193, 193, 501, 193, 176, 503, 504, 160,
+ 487, 488, 193, 193, 193, 193, 501, 193,
+ 503, 503, 160, 487, 488, 193, 193, 193,
+ 193, 501, 193, 505, 173, 506, 507, 163,
+ 487, 488, 193, 193, 193, 193, 501, 193,
+ 173, 506, 507, 163, 487, 488, 193, 193,
+ 193, 193, 501, 193, 506, 506, 163, 487,
+ 488, 193, 193, 193, 193, 501, 193, 508,
+ 170, 193, 509, 193, 487, 488, 193, 193,
+ 193, 193, 501, 193, 170, 193, 509, 193,
+ 487, 488, 193, 193, 193, 193, 501, 193,
+ 487, 488, 193, 193, 193, 193, 501, 193,
+ 510, 193, 511, 512, 193, 487, 488, 193,
+ 193, 193, 167, 193, 193, 193, 165, 193,
+ 166, 193, 193, 193, 193, 487, 488, 193,
+ 487, 488, 193, 510, 193, 193, 193, 193,
+ 487, 488, 193, 510, 193, 511, 193, 193,
+ 487, 488, 193, 193, 193, 167, 193, 491,
+ 166, 342, 342, 95, 346, 342, 187, 188,
+ 342, 342, 342, 342, 347, 342, 491, 342,
+ 0
+};
+
+static const short _indic_syllable_machine_trans_targs[] = {
+ 170, 195, 197, 198, 3, 201, 4, 6,
+ 204, 7, 9, 207, 10, 12, 210, 13,
+ 15, 16, 191, 18, 19, 209, 21, 22,
+ 206, 24, 25, 203, 212, 216, 220, 223,
+ 227, 230, 234, 237, 241, 244, 170, 270,
+ 272, 273, 39, 276, 40, 42, 279, 43,
+ 45, 282, 46, 48, 285, 49, 51, 52,
+ 266, 54, 55, 284, 57, 58, 281, 60,
+ 61, 278, 287, 290, 294, 297, 301, 304,
+ 308, 311, 315, 319, 170, 343, 345, 346,
+ 75, 349, 170, 76, 78, 352, 79, 81,
+ 355, 82, 84, 358, 85, 87, 88, 339,
+ 90, 91, 357, 93, 94, 354, 96, 97,
+ 351, 360, 363, 367, 370, 374, 377, 381,
+ 384, 388, 170, 418, 420, 421, 110, 424,
+ 111, 113, 427, 114, 116, 430, 117, 119,
+ 433, 120, 122, 123, 414, 125, 126, 432,
+ 128, 129, 429, 131, 132, 426, 435, 438,
+ 442, 445, 449, 452, 456, 459, 463, 466,
+ 392, 478, 146, 481, 148, 484, 149, 151,
+ 487, 152, 154, 490, 155, 493, 495, 496,
+ 159, 160, 492, 162, 163, 489, 165, 166,
+ 486, 168, 169, 483, 170, 171, 246, 320,
+ 322, 391, 393, 340, 342, 394, 390, 467,
+ 468, 170, 172, 174, 35, 245, 192, 194,
+ 214, 243, 173, 34, 175, 239, 0, 176,
+ 178, 33, 238, 236, 177, 32, 179, 232,
+ 180, 182, 31, 231, 229, 181, 30, 183,
+ 225, 184, 186, 29, 224, 222, 185, 28,
+ 187, 218, 188, 190, 27, 217, 215, 189,
+ 26, 200, 193, 170, 196, 1, 199, 2,
+ 202, 5, 23, 205, 8, 20, 208, 11,
+ 17, 211, 14, 213, 219, 221, 226, 228,
+ 233, 235, 240, 242, 170, 247, 249, 71,
+ 317, 267, 269, 318, 248, 70, 250, 313,
+ 36, 251, 253, 69, 312, 310, 252, 68,
+ 254, 306, 255, 257, 67, 305, 303, 256,
+ 66, 258, 299, 259, 261, 65, 298, 296,
+ 260, 64, 262, 292, 263, 265, 63, 291,
+ 289, 264, 62, 275, 268, 170, 271, 37,
+ 274, 38, 277, 41, 59, 280, 44, 56,
+ 283, 47, 53, 286, 50, 288, 293, 295,
+ 300, 302, 307, 309, 314, 316, 170, 321,
+ 106, 323, 386, 72, 324, 326, 105, 385,
+ 383, 325, 104, 327, 379, 328, 330, 103,
+ 378, 376, 329, 102, 331, 372, 332, 334,
+ 101, 371, 369, 333, 100, 335, 365, 336,
+ 338, 99, 364, 362, 337, 98, 348, 341,
+ 170, 344, 73, 347, 74, 350, 77, 95,
+ 353, 80, 92, 356, 83, 89, 359, 86,
+ 361, 366, 368, 373, 375, 380, 382, 387,
+ 389, 170, 170, 395, 397, 142, 141, 415,
+ 417, 465, 396, 398, 461, 107, 399, 401,
+ 140, 460, 458, 400, 139, 402, 454, 403,
+ 405, 138, 453, 451, 404, 137, 406, 447,
+ 407, 409, 136, 446, 444, 408, 135, 410,
+ 440, 411, 413, 134, 439, 437, 412, 133,
+ 423, 416, 170, 419, 108, 422, 109, 425,
+ 112, 130, 428, 115, 127, 431, 118, 124,
+ 434, 121, 436, 441, 443, 448, 450, 455,
+ 457, 462, 464, 143, 469, 470, 480, 475,
+ 477, 498, 471, 472, 473, 144, 479, 474,
+ 476, 145, 482, 147, 167, 156, 485, 150,
+ 164, 488, 153, 161, 491, 158, 494, 157,
+ 497
+};
+
+static const char _indic_syllable_machine_trans_actions[] = {
+ 1, 2, 0, 0, 0, 2, 0, 0,
+ 2, 0, 0, 2, 0, 0, 2, 0,
+ 0, 0, 2, 0, 0, 2, 0, 0,
+ 2, 0, 0, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 3, 2,
+ 0, 0, 0, 2, 0, 0, 2, 0,
+ 0, 2, 0, 0, 2, 0, 0, 0,
+ 2, 0, 0, 2, 0, 0, 2, 0,
+ 0, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 4, 2, 0, 0,
+ 0, 2, 5, 0, 0, 2, 0, 0,
+ 2, 0, 0, 2, 0, 0, 0, 2,
+ 0, 0, 2, 0, 0, 2, 0, 0,
+ 2, 2, 6, 2, 6, 2, 6, 2,
+ 6, 2, 7, 2, 0, 0, 0, 2,
+ 0, 0, 2, 0, 0, 2, 0, 0,
+ 2, 0, 0, 0, 2, 0, 0, 2,
+ 0, 0, 2, 0, 0, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2,
+ 6, 8, 0, 2, 0, 2, 0, 0,
+ 2, 0, 0, 2, 0, 2, 0, 0,
+ 0, 0, 2, 0, 0, 2, 0, 0,
+ 2, 0, 0, 2, 11, 2, 2, 6,
+ 2, 12, 12, 0, 0, 2, 2, 6,
+ 2, 13, 2, 2, 0, 2, 0, 0,
+ 2, 2, 2, 0, 2, 2, 0, 2,
+ 2, 0, 2, 2, 2, 0, 2, 2,
+ 2, 2, 0, 2, 2, 2, 0, 2,
+ 2, 2, 2, 0, 2, 2, 2, 0,
+ 2, 2, 2, 2, 0, 2, 2, 2,
+ 0, 2, 0, 14, 0, 0, 2, 0,
+ 2, 0, 0, 2, 0, 0, 2, 0,
+ 0, 2, 0, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 15, 2, 2, 0,
+ 2, 0, 0, 2, 2, 0, 2, 2,
+ 0, 2, 2, 0, 2, 2, 2, 0,
+ 2, 2, 2, 2, 0, 2, 2, 2,
+ 0, 2, 2, 2, 2, 0, 2, 2,
+ 2, 0, 2, 2, 2, 2, 0, 2,
+ 2, 2, 0, 2, 0, 16, 0, 0,
+ 2, 0, 2, 0, 0, 2, 0, 0,
+ 2, 0, 0, 2, 0, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 17, 6,
+ 0, 6, 6, 0, 6, 2, 0, 6,
+ 2, 6, 0, 6, 6, 6, 2, 0,
+ 6, 2, 6, 0, 6, 6, 6, 2,
+ 0, 6, 2, 6, 0, 6, 6, 6,
+ 2, 0, 6, 2, 6, 0, 6, 0,
+ 18, 0, 0, 2, 0, 2, 0, 0,
+ 2, 0, 0, 2, 0, 0, 2, 0,
+ 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 19, 20, 2, 2, 0, 0, 0,
+ 0, 2, 2, 2, 2, 0, 2, 2,
+ 0, 2, 2, 2, 0, 2, 2, 2,
+ 2, 0, 2, 2, 2, 0, 2, 2,
+ 2, 2, 0, 2, 2, 2, 0, 2,
+ 2, 2, 2, 0, 2, 2, 2, 0,
+ 2, 0, 21, 0, 0, 2, 0, 2,
+ 0, 0, 2, 0, 0, 2, 0, 0,
+ 2, 0, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 0, 0, 8, 2, 0,
+ 0, 2, 2, 8, 8, 0, 8, 8,
+ 0, 0, 2, 0, 0, 0, 2, 0,
+ 0, 2, 0, 0, 2, 0, 0, 0,
+ 2
+};
+
+static const char _indic_syllable_machine_to_state_actions[] = {
+ 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,
+ 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,
+ 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,
+ 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,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 9, 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, 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, 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, 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, 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, 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, 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, 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, 0, 0, 0, 0, 0,
+ 0, 0, 0
+};
+
+static const char _indic_syllable_machine_from_state_actions[] = {
+ 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,
+ 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,
+ 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,
+ 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,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 10, 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, 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, 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, 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, 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, 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, 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, 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, 0, 0, 0, 0, 0,
+ 0, 0, 0
+};
+
+static const short _indic_syllable_machine_eof_trans[] = {
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 39, 39, 39, 39,
+ 39, 39, 39, 39, 39, 39, 39, 39,
+ 39, 39, 39, 39, 39, 39, 39, 39,
+ 39, 39, 39, 39, 39, 39, 39, 39,
+ 39, 39, 39, 39, 39, 39, 39, 39,
+ 77, 77, 77, 83, 83, 77, 77, 77,
+ 77, 77, 77, 77, 77, 77, 77, 77,
+ 77, 77, 77, 77, 77, 77, 77, 77,
+ 77, 77, 77, 77, 77, 77, 77, 77,
+ 83, 77, 77, 115, 115, 115, 115, 115,
+ 115, 115, 115, 115, 115, 115, 115, 115,
+ 115, 115, 115, 115, 115, 115, 115, 115,
+ 115, 115, 115, 115, 115, 115, 115, 115,
+ 115, 115, 115, 115, 115, 115, 115, 77,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 0, 194, 194, 194, 194, 194,
+ 194, 194, 194, 194, 194, 194, 194, 194,
+ 194, 194, 194, 194, 194, 194, 194, 194,
+ 194, 194, 194, 194, 194, 194, 194, 194,
+ 194, 194, 194, 194, 194, 194, 194, 194,
+ 194, 194, 194, 194, 194, 194, 194, 194,
+ 194, 194, 194, 194, 194, 194, 194, 194,
+ 194, 194, 194, 194, 194, 194, 194, 194,
+ 194, 194, 194, 194, 194, 194, 194, 194,
+ 194, 194, 194, 194, 194, 194, 269, 269,
+ 269, 269, 269, 269, 269, 269, 269, 269,
+ 269, 269, 269, 269, 269, 269, 269, 269,
+ 269, 269, 269, 269, 269, 269, 269, 269,
+ 269, 269, 269, 269, 269, 269, 269, 269,
+ 269, 269, 269, 269, 269, 269, 269, 269,
+ 269, 269, 269, 269, 269, 269, 269, 269,
+ 269, 269, 269, 269, 269, 269, 269, 269,
+ 269, 269, 269, 269, 269, 269, 269, 269,
+ 269, 269, 269, 269, 269, 269, 269, 269,
+ 343, 343, 343, 343, 343, 343, 343, 343,
+ 343, 343, 343, 343, 343, 343, 343, 343,
+ 343, 343, 343, 343, 343, 343, 343, 343,
+ 343, 343, 343, 343, 343, 343, 343, 343,
+ 343, 343, 343, 343, 343, 343, 343, 343,
+ 343, 343, 343, 343, 343, 343, 343, 343,
+ 343, 343, 343, 343, 343, 343, 343, 343,
+ 343, 343, 343, 343, 343, 343, 343, 343,
+ 343, 343, 343, 343, 343, 343, 343, 410,
+ 343, 410, 411, 411, 411, 411, 411, 411,
+ 411, 411, 411, 411, 411, 411, 411, 411,
+ 411, 411, 411, 411, 411, 411, 411, 411,
+ 411, 411, 411, 411, 411, 411, 411, 411,
+ 411, 411, 411, 411, 411, 411, 411, 411,
+ 411, 411, 411, 411, 411, 411, 411, 411,
+ 411, 411, 411, 411, 411, 411, 411, 411,
+ 411, 411, 411, 411, 411, 411, 411, 411,
+ 411, 411, 411, 411, 411, 411, 411, 411,
+ 411, 411, 411, 343, 194, 194, 194, 343,
+ 194, 194, 194, 194, 194, 194, 194, 194,
+ 194, 194, 194, 194, 194, 194, 194, 194,
+ 194, 194, 194, 194, 194, 194, 194, 194,
+ 194, 194, 343
+};
+
+static const int indic_syllable_machine_start = 170;
+static const int indic_syllable_machine_first_final = 170;
+static const int indic_syllable_machine_error = -1;
+
+static const int indic_syllable_machine_en_main = 170;
+
+
+#line 36 "../../src/hb-ot-shape-complex-indic-machine.rl"
+
+
+
+#line 91 "../../src/hb-ot-shape-complex-indic-machine.rl"
+
+
+#define found_syllable(syllable_type) \
+ HB_STMT_START { \
+ if (0) fprintf (stderr, "syllable %d..%d %s\n", last, p+1, #syllable_type); \
+ for (unsigned int i = last; i < p+1; i++) \
+ info[i].syllable() = (syllable_serial << 4) | syllable_type; \
+ last = p+1; \
+ syllable_serial++; \
+ if (unlikely (syllable_serial == 16)) syllable_serial = 1; \
+ } HB_STMT_END
+
+static void
+find_syllables (hb_buffer_t *buffer)
+{
+ unsigned int p, pe, eof, ts HB_UNUSED, te, act;
+ int cs;
+ hb_glyph_info_t *info = buffer->info;
+
+#line 1273 "../../src/hb-ot-shape-complex-indic-machine.hh.tmp"
+ {
+ cs = indic_syllable_machine_start;
+ ts = 0;
+ te = 0;
+ act = 0;
+ }
+
+#line 112 "../../src/hb-ot-shape-complex-indic-machine.rl"
+
+
+ p = 0;
+ pe = eof = buffer->len;
+
+ unsigned int last = 0;
+ unsigned int syllable_serial = 1;
+
+#line 1290 "../../src/hb-ot-shape-complex-indic-machine.hh.tmp"
+ {
+ int _slen;
+ int _trans;
+ const unsigned char *_keys;
+ const short *_inds;
+ if ( p == pe )
+ goto _test_eof;
+_resume:
+ switch ( _indic_syllable_machine_from_state_actions[cs] ) {
+ case 10:
+#line 1 "NONE"
+ {ts = p;}
+ break;
+#line 1304 "../../src/hb-ot-shape-complex-indic-machine.hh.tmp"
+ }
+
+ _keys = _indic_syllable_machine_trans_keys + (cs<<1);
+ _inds = _indic_syllable_machine_indicies + _indic_syllable_machine_index_offsets[cs];
+
+ _slen = _indic_syllable_machine_key_spans[cs];
+ _trans = _inds[ _slen > 0 && _keys[0] <=( info[p].indic_category()) &&
+ ( info[p].indic_category()) <= _keys[1] ?
+ ( info[p].indic_category()) - _keys[0] : _slen ];
+
+_eof_trans:
+ cs = _indic_syllable_machine_trans_targs[_trans];
+
+ if ( _indic_syllable_machine_trans_actions[_trans] == 0 )
+ goto _again;
+
+ switch ( _indic_syllable_machine_trans_actions[_trans] ) {
+ case 2:
+#line 1 "NONE"
+ {te = p+1;}
+ break;
+ case 14:
+#line 83 "../../src/hb-ot-shape-complex-indic-machine.rl"
+ {te = p+1;{ found_syllable (consonant_syllable); }}
+ break;
+ case 16:
+#line 84 "../../src/hb-ot-shape-complex-indic-machine.rl"
+ {te = p+1;{ found_syllable (vowel_syllable); }}
+ break;
+ case 21:
+#line 85 "../../src/hb-ot-shape-complex-indic-machine.rl"
+ {te = p+1;{ found_syllable (standalone_cluster); }}
+ break;
+ case 18:
+#line 86 "../../src/hb-ot-shape-complex-indic-machine.rl"
+ {te = p+1;{ found_syllable (broken_cluster); }}
+ break;
+ case 11:
+#line 87 "../../src/hb-ot-shape-complex-indic-machine.rl"
+ {te = p+1;{ found_syllable (non_indic_cluster); }}
+ break;
+ case 13:
+#line 83 "../../src/hb-ot-shape-complex-indic-machine.rl"
+ {te = p;p--;{ found_syllable (consonant_syllable); }}
+ break;
+ case 15:
+#line 84 "../../src/hb-ot-shape-complex-indic-machine.rl"
+ {te = p;p--;{ found_syllable (vowel_syllable); }}
+ break;
+ case 20:
+#line 85 "../../src/hb-ot-shape-complex-indic-machine.rl"
+ {te = p;p--;{ found_syllable (standalone_cluster); }}
+ break;
+ case 17:
+#line 86 "../../src/hb-ot-shape-complex-indic-machine.rl"
+ {te = p;p--;{ found_syllable (broken_cluster); }}
+ break;
+ case 19:
+#line 87 "../../src/hb-ot-shape-complex-indic-machine.rl"
+ {te = p;p--;{ found_syllable (non_indic_cluster); }}
+ break;
+ case 1:
+#line 83 "../../src/hb-ot-shape-complex-indic-machine.rl"
+ {{p = ((te))-1;}{ found_syllable (consonant_syllable); }}
+ break;
+ case 3:
+#line 84 "../../src/hb-ot-shape-complex-indic-machine.rl"
+ {{p = ((te))-1;}{ found_syllable (vowel_syllable); }}
+ break;
+ case 7:
+#line 85 "../../src/hb-ot-shape-complex-indic-machine.rl"
+ {{p = ((te))-1;}{ found_syllable (standalone_cluster); }}
+ break;
+ case 4:
+#line 86 "../../src/hb-ot-shape-complex-indic-machine.rl"
+ {{p = ((te))-1;}{ found_syllable (broken_cluster); }}
+ break;
+ case 5:
+#line 1 "NONE"
+ { switch( act ) {
+ case 1:
+ {{p = ((te))-1;} found_syllable (consonant_syllable); }
+ break;
+ case 4:
+ {{p = ((te))-1;} found_syllable (broken_cluster); }
+ break;
+ case 5:
+ {{p = ((te))-1;} found_syllable (non_indic_cluster); }
+ break;
+ }
+ }
+ break;
+ case 8:
+#line 1 "NONE"
+ {te = p+1;}
+#line 83 "../../src/hb-ot-shape-complex-indic-machine.rl"
+ {act = 1;}
+ break;
+ case 6:
+#line 1 "NONE"
+ {te = p+1;}
+#line 86 "../../src/hb-ot-shape-complex-indic-machine.rl"
+ {act = 4;}
+ break;
+ case 12:
+#line 1 "NONE"
+ {te = p+1;}
+#line 87 "../../src/hb-ot-shape-complex-indic-machine.rl"
+ {act = 5;}
+ break;
+#line 1415 "../../src/hb-ot-shape-complex-indic-machine.hh.tmp"
+ }
+
+_again:
+ switch ( _indic_syllable_machine_to_state_actions[cs] ) {
+ case 9:
+#line 1 "NONE"
+ {ts = 0;}
+ break;
+#line 1424 "../../src/hb-ot-shape-complex-indic-machine.hh.tmp"
+ }
+
+ if ( ++p != pe )
+ goto _resume;
+ _test_eof: {}
+ if ( p == eof )
+ {
+ if ( _indic_syllable_machine_eof_trans[cs] > 0 ) {
+ _trans = _indic_syllable_machine_eof_trans[cs] - 1;
+ goto _eof_trans;
+ }
+ }
+
+ }
+
+#line 121 "../../src/hb-ot-shape-complex-indic-machine.rl"
+
+}
+
+#endif /* HB_OT_SHAPE_COMPLEX_INDIC_MACHINE_HH */
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-ot-shape-complex-indic-machine.rl b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-ot-shape-complex-indic-machine.rl
index a536da55cff..11115c9cda4 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-ot-shape-complex-indic-machine.rl
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-ot-shape-complex-indic-machine.rl
@@ -76,7 +76,7 @@ halant_or_matra_group = (final_halant_group | (h.ZWJ)? matra_group{0,4});
consonant_syllable = Repha? (cn.halant_group){0,4} cn A? halant_or_matra_group? syllable_tail;
vowel_syllable = reph? V.n? (ZWJ | (halant_group.cn){0,4} halant_or_matra_group? syllable_tail);
standalone_cluster = reph? place_holder.n? (halant_group.cn){0,4} halant_or_matra_group? syllable_tail;
-broken_cluster = n? (halant_group.cn){0,4} halant_or_matra_group syllable_tail;
+broken_cluster = reph? n? (halant_group.cn){0,4} halant_or_matra_group syllable_tail;
other = any;
main := |*
@@ -103,7 +103,7 @@ main := |*
static void
find_syllables (hb_buffer_t *buffer)
{
- unsigned int p, pe, eof, ts, te, act;
+ unsigned int p, pe, eof, ts HB_UNUSED, te, act;
int cs;
hb_glyph_info_t *info = buffer->info;
%%{
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-ot-shape-complex-indic-private.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-ot-shape-complex-indic-private.hh
index e36090e4837..e36090e4837 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-ot-shape-complex-indic-private.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-ot-shape-complex-indic-private.hh
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-ot-shape-complex-indic-table.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-ot-shape-complex-indic-table.hh
index 70765b6d6f4..70765b6d6f4 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-ot-shape-complex-indic-table.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-ot-shape-complex-indic-table.hh
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-ot-shape-complex-indic.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-ot-shape-complex-indic.cc
index d924d1a5a92..1bc8a773e31 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-ot-shape-complex-indic.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-ot-shape-complex-indic.cc
@@ -124,7 +124,7 @@ static const indic_config_t indic_configs[] =
{HB_SCRIPT_SINHALA, false,0x0DCA,BASE_POS_FIRST,REPH_POS_AFTER_MAIN, REPH_MODE_EXPLICIT},
{HB_SCRIPT_KHMER, false,0x17D2,BASE_POS_FIRST,REPH_POS_DEFAULT, REPH_MODE_VIS_REPHA},
/* Myanmar does not have the "old_indic" behavior, even though it has a "new" tag. */
- {HB_SCRIPT_MYANMAR, false, 0x1039,BASE_POS_LAST, REPH_POS_DEFAULT, REPH_MODE_EXPLICIT},
+ {HB_SCRIPT_MYANMAR, false,0x1039,BASE_POS_LAST, REPH_POS_DEFAULT, REPH_MODE_EXPLICIT},
};
@@ -467,7 +467,7 @@ initial_reordering_consonant_syllable (const hb_ot_shape_plan_t *plan,
unsigned int limit = start;
if (indic_plan->mask_array[RPHF] &&
start + 3 <= end &&
- (/* TODO Handle other Reph modes. */
+ (
(indic_plan->config->reph_mode == REPH_MODE_IMPLICIT && !is_joiner (info[start + 2])) ||
(indic_plan->config->reph_mode == REPH_MODE_EXPLICIT && info[start + 2].indic_category() == OT_ZWJ)
))
@@ -482,7 +482,14 @@ initial_reordering_consonant_syllable (const hb_ot_shape_plan_t *plan,
base = start;
has_reph = true;
}
- };
+ } else if (indic_plan->config->reph_mode == REPH_MODE_LOG_REPHA && info[start].indic_category() == OT_Repha)
+ {
+ limit += 1;
+ while (limit < end && is_joiner (info[limit]))
+ limit++;
+ base = start;
+ has_reph = true;
+ }
switch (indic_plan->config->base_pos)
{
@@ -570,7 +577,7 @@ initial_reordering_consonant_syllable (const hb_ot_shape_plan_t *plan,
* base consonants.
*
* Only do this for unforced Reph. (ie. not for Ra,H,ZWJ. */
- if (has_reph && base == start && start + 2 == limit) {
+ if (has_reph && base == start && start - limit <= 2) {
/* Have no other consonant, so Reph is not formed and Ra becomes base. */
has_reph = false;
}
@@ -852,7 +859,7 @@ initial_reordering_syllable (const hb_ot_shape_plan_t *plan,
}
static inline void
-insert_dotted_circles (const hb_ot_shape_plan_t *plan,
+insert_dotted_circles (const hb_ot_shape_plan_t *plan HB_UNUSED,
hb_font_t *font,
hb_buffer_t *buffer)
{
@@ -887,14 +894,23 @@ insert_dotted_circles (const hb_ot_shape_plan_t *plan,
syllable_type_t syllable_type = (syllable_type_t) (syllable & 0x0F);
if (unlikely (last_syllable != syllable && syllable_type == broken_cluster))
{
+ last_syllable = syllable;
+
hb_glyph_info_t info = dottedcircle;
info.cluster = buffer->cur().cluster;
info.mask = buffer->cur().mask;
info.syllable() = buffer->cur().syllable();
+
+ /* Insert dottedcircle after possible Repha. */
+ while (buffer->idx < buffer->len &&
+ last_syllable == buffer->cur().syllable() &&
+ buffer->cur().indic_category() == OT_Repha)
+ buffer->next_glyph ();
+
buffer->output_info (info);
- last_syllable = syllable;
}
- buffer->next_glyph ();
+ else
+ buffer->next_glyph ();
}
buffer->swap_buffers ();
@@ -1246,7 +1262,7 @@ final_reordering_syllable (const hb_ot_shape_plan_t *plan,
static void
final_reordering (const hb_ot_shape_plan_t *plan,
- hb_font_t *font,
+ hb_font_t *font HB_UNUSED,
hb_buffer_t *buffer)
{
unsigned int count = buffer->len;
@@ -1273,7 +1289,7 @@ final_reordering (const hb_ot_shape_plan_t *plan,
static hb_ot_shape_normalization_mode_t
-normalization_preference_indic (const hb_segment_properties_t *props)
+normalization_preference_indic (const hb_segment_properties_t *props HB_UNUSED)
{
return HB_OT_SHAPE_NORMALIZATION_MODE_COMPOSED_DIACRITICS_NO_SHORT_CIRCUIT;
}
@@ -1338,6 +1354,11 @@ decompose_indic (const hb_ot_shape_normalize_context_t *c,
* don't have positioning features for the Unicode-style decomposition.
*
* Argh...
+ *
+ * The Uniscribe behavior is now documented in the newly published Sinhala
+ * spec in 2012:
+ *
+ * http://www.microsoft.com/typography/OpenTypeDev/sinhala/intro.htm#shaping
*/
const indic_shape_plan_t *indic_plan = (const indic_shape_plan_t *) c->plan->data;
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-ot-shape-complex-private.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-ot-shape-complex-private.hh
index 26871c2fc09..26871c2fc09 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-ot-shape-complex-private.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-ot-shape-complex-private.hh
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-ot-shape-complex-thai.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-ot-shape-complex-thai.cc
index 07608918110..24d476a0ba3 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-ot-shape-complex-thai.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-ot-shape-complex-thai.cc
@@ -215,7 +215,7 @@ static const struct thai_below_state_machine_edge_t {
static void
-do_thai_pua_shaping (const hb_ot_shape_plan_t *plan,
+do_thai_pua_shaping (const hb_ot_shape_plan_t *plan HB_UNUSED,
hb_buffer_t *buffer,
hb_font_t *font)
{
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-ot-shape-fallback-private.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-ot-shape-fallback-private.hh
index 5e9cb061780..5e9cb061780 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-ot-shape-fallback-private.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-ot-shape-fallback-private.hh
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-ot-shape-fallback.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-ot-shape-fallback.cc
index f4463e4eeca..6f3426e6b49 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-ot-shape-fallback.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-ot-shape-fallback.cc
@@ -161,8 +161,8 @@ recategorize_combining_class (hb_codepoint_t u,
}
void
-_hb_ot_shape_fallback_position_recategorize_marks (const hb_ot_shape_plan_t *plan,
- hb_font_t *font,
+_hb_ot_shape_fallback_position_recategorize_marks (const hb_ot_shape_plan_t *plan HB_UNUSED,
+ hb_font_t *font HB_UNUSED,
hb_buffer_t *buffer)
{
unsigned int count = buffer->len;
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-ot-shape-normalize-private.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-ot-shape-normalize-private.hh
index 8112f03aee9..8112f03aee9 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-ot-shape-normalize-private.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-ot-shape-normalize-private.hh
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-ot-shape-normalize.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-ot-shape-normalize.cc
index c5325e42b53..c5325e42b53 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-ot-shape-normalize.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-ot-shape-normalize.cc
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-ot-shape-private.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-ot-shape-private.hh
index 23e80b7bdfa..23e80b7bdfa 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-ot-shape-private.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-ot-shape-private.hh
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-ot-shape.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-ot-shape.cc
index 96461d7079e..96461d7079e 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-ot-shape.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-ot-shape.cc
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-ot-tag.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-ot-tag.cc
index 0004a753647..91ebec76ee3 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-ot-tag.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-ot-tag.cc
@@ -23,7 +23,7 @@
* PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
*
* Red Hat Author(s): Behdad Esfahbod
- * Google Author(s): Behdad Esfahbod
+ * Google Author(s): Behdad Esfahbod, Roozbeh Pournader
*/
#include "hb-private.hh"
@@ -169,7 +169,9 @@ typedef struct {
* Draft OpenType 1.5 spec, with with the ISO 639-3 codes from
* 2008/08/04, matching on name, and finally adjusted manually.
*
- * Many items still missing. Those are commented out at the end.
+ * Updated on 2012/12/07 with more research into remaining codes.
+ *
+ * Some items still missing. Those are commented out at the end.
* Keep sorted for bsearch.
*/
@@ -177,43 +179,63 @@ static const LangTag ot_languages[] = {
{"aa", HB_TAG('A','F','R',' ')}, /* Afar */
{"ab", HB_TAG('A','B','K',' ')}, /* Abkhazian */
{"abq", HB_TAG('A','B','A',' ')}, /* Abaza */
+ {"ada", HB_TAG('D','N','G',' ')}, /* Dangme */
{"ady", HB_TAG('A','D','Y',' ')}, /* Adyghe */
{"af", HB_TAG('A','F','K',' ')}, /* Afrikaans */
+ {"aii", HB_TAG('S','W','A',' ')}, /* Swadaya Aramaic */
{"aiw", HB_TAG('A','R','I',' ')}, /* Aari */
+ {"alt", HB_TAG('A','L','T',' ')}, /* [Southern] Altai */
{"am", HB_TAG('A','M','H',' ')}, /* Amharic */
+ {"amf", HB_TAG('H','B','N',' ')}, /* Hammer-Banna */
{"ar", HB_TAG('A','R','A',' ')}, /* Arabic */
{"arn", HB_TAG('M','A','P',' ')}, /* Mapudungun */
{"as", HB_TAG('A','S','M',' ')}, /* Assamese */
+ {"ath", HB_TAG('A','T','H',' ')}, /* Athapaskan [family] */
+ {"atv", HB_TAG('A','L','T',' ')}, /* [Northern] Altai */
{"av", HB_TAG('A','V','R',' ')}, /* Avaric */
{"awa", HB_TAG('A','W','A',' ')}, /* Awadhi */
{"ay", HB_TAG('A','Y','M',' ')}, /* Aymara */
{"az", HB_TAG('A','Z','E',' ')}, /* Azerbaijani */
{"ba", HB_TAG('B','S','H',' ')}, /* Bashkir */
+ {"bai", HB_TAG('B','M','L',' ')}, /* Bamileke [family] */
{"bal", HB_TAG('B','L','I',' ')}, /* Baluchi */
+ {"bci", HB_TAG('B','A','U',' ')}, /* Baule */
{"bcq", HB_TAG('B','C','H',' ')}, /* Bench */
+ {"be", HB_TAG('B','E','L',' ')}, /* Belarussian */
{"bem", HB_TAG('B','E','M',' ')}, /* Bemba (Zambia) */
+ {"ber", HB_TAG('B','E','R',' ')}, /* Berber [family] */
{"bfq", HB_TAG('B','A','D',' ')}, /* Badaga */
{"bft", HB_TAG('B','L','T',' ')}, /* Balti */
+ {"bfy", HB_TAG('B','A','G',' ')}, /* Baghelkhandi */
{"bg", HB_TAG('B','G','R',' ')}, /* Bulgarian */
{"bhb", HB_TAG('B','H','I',' ')}, /* Bhili */
{"bho", HB_TAG('B','H','O',' ')}, /* Bhojpuri */
{"bik", HB_TAG('B','I','K',' ')}, /* Bikol */
{"bin", HB_TAG('E','D','O',' ')}, /* Bini */
+ {"bjt", HB_TAG('B','L','N',' ')}, /* Balanta-Ganja */
+ {"bla", HB_TAG('B','K','F',' ')}, /* Blackfoot */
+ {"ble", HB_TAG('B','L','N',' ')}, /* Balanta-Kentohe */
{"bm", HB_TAG('B','M','B',' ')}, /* Bambara */
{"bn", HB_TAG('B','E','N',' ')}, /* Bengali */
{"bo", HB_TAG('T','I','B',' ')}, /* Tibetan */
{"br", HB_TAG('B','R','E',' ')}, /* Breton */
+ {"bra", HB_TAG('B','R','I',' ')}, /* Braj Bhasha */
{"brh", HB_TAG('B','R','H',' ')}, /* Brahui */
{"bs", HB_TAG('B','O','S',' ')}, /* Bosnian */
{"btb", HB_TAG('B','T','I',' ')}, /* Beti (Cameroon) */
+ {"bxr", HB_TAG('R','B','U',' ')}, /* Russian Buriat */
+ {"byn", HB_TAG('B','I','L',' ')}, /* Bilen */
{"ca", HB_TAG('C','A','T',' ')}, /* Catalan */
{"ce", HB_TAG('C','H','E',' ')}, /* Chechen */
{"ceb", HB_TAG('C','E','B',' ')}, /* Cebuano */
{"chp", HB_TAG('C','H','P',' ')}, /* Chipewyan */
{"chr", HB_TAG('C','H','R',' ')}, /* Cherokee */
+ {"ckt", HB_TAG('C','H','K',' ')}, /* Chukchi */
{"cop", HB_TAG('C','O','P',' ')}, /* Coptic */
{"cr", HB_TAG('C','R','E',' ')}, /* Cree */
{"crh", HB_TAG('C','R','T',' ')}, /* Crimean Tatar */
+ {"crj", HB_TAG('E','C','R',' ')}, /* [Southern] East Cree */
+ {"crl", HB_TAG('E','C','R',' ')}, /* [Northern] East Cree */
{"crm", HB_TAG('M','C','R',' ')}, /* Moose Cree */
{"crx", HB_TAG('C','R','R',' ')}, /* Carrier */
{"cs", HB_TAG('C','S','Y',' ')}, /* Czech */
@@ -226,10 +248,12 @@ static const LangTag ot_languages[] = {
{"dar", HB_TAG('D','A','R',' ')}, /* Dargwa */
{"de", HB_TAG('D','E','U',' ')}, /* German */
{"din", HB_TAG('D','N','K',' ')}, /* Dinka */
+ {"dje", HB_TAG('D','J','R',' ')}, /* Djerma */
{"dng", HB_TAG('D','U','N',' ')}, /* Dungan */
{"doi", HB_TAG('D','G','R',' ')}, /* Dogri */
{"dsb", HB_TAG('L','S','B',' ')}, /* Lower Sorbian */
{"dv", HB_TAG('D','I','V',' ')}, /* Dhivehi */
+ {"dyu", HB_TAG('J','U','L',' ')}, /* Jula */
{"dz", HB_TAG('D','Z','N',' ')}, /* Dzongkha */
{"ee", HB_TAG('E','W','E',' ')}, /* Ewe */
{"efi", HB_TAG('E','F','I',' ')}, /* Efik */
@@ -257,20 +281,27 @@ static const LangTag ot_languages[] = {
{"gag", HB_TAG('G','A','G',' ')}, /* Gagauz */
{"gbm", HB_TAG('G','A','W',' ')}, /* Garhwali */
{"gd", HB_TAG('G','A','E',' ')}, /* Scottish Gaelic */
+ {"gez", HB_TAG('G','E','Z',' ')}, /* Ge'ez */
{"gl", HB_TAG('G','A','L',' ')}, /* Galician */
{"gld", HB_TAG('N','A','N',' ')}, /* Nanai */
{"gn", HB_TAG('G','U','A',' ')}, /* Guarani */
{"gon", HB_TAG('G','O','N',' ')}, /* Gondi */
{"grt", HB_TAG('G','R','O',' ')}, /* Garo */
+ {"gru", HB_TAG('S','O','G',' ')}, /* Sodo Gurage */
{"gu", HB_TAG('G','U','J',' ')}, /* Gujarati */
{"guk", HB_TAG('G','M','Z',' ')}, /* Gumuz */
{"gv", HB_TAG('M','N','X',' ')}, /* Manx Gaelic */
{"ha", HB_TAG('H','A','U',' ')}, /* Hausa */
{"har", HB_TAG('H','R','I',' ')}, /* Harari */
+ {"haw", HB_TAG('H','A','W',' ')}, /* Hawaiin */
{"he", HB_TAG('I','W','R',' ')}, /* Hebrew */
{"hi", HB_TAG('H','I','N',' ')}, /* Hindi */
{"hil", HB_TAG('H','I','L',' ')}, /* Hiligaynon */
+ {"hnd", HB_TAG('H','N','D',' ')}, /* [Southern] Hindko */
+ {"hne", HB_TAG('C','H','H',' ')}, /* Chattisgarhi */
+ {"hno", HB_TAG('H','N','D',' ')}, /* [Northern] Hindko */
{"hoc", HB_TAG('H','O',' ',' ')}, /* Ho */
+ {"hoj", HB_TAG('H','A','R',' ')}, /* Harauti */
{"hr", HB_TAG('H','R','V',' ')}, /* Croatian */
{"hsb", HB_TAG('U','S','B',' ')}, /* Upper Sorbian */
{"ht", HB_TAG('H','A','I',' ')}, /* Haitian */
@@ -279,6 +310,8 @@ static const LangTag ot_languages[] = {
{"id", HB_TAG('I','N','D',' ')}, /* Indonesian */
{"ig", HB_TAG('I','B','O',' ')}, /* Igbo */
{"igb", HB_TAG('E','B','I',' ')}, /* Ebira */
+ {"ijo", HB_TAG('I','J','O',' ')}, /* Ijo [family] */
+ {"ilo", HB_TAG('I','L','O',' ')}, /* Ilokano */
{"inh", HB_TAG('I','N','G',' ')}, /* Ingush */
{"is", HB_TAG('I','S','L',' ')}, /* Icelandic */
{"it", HB_TAG('I','T','A',' ')}, /* Italian */
@@ -286,19 +319,25 @@ static const LangTag ot_languages[] = {
{"ja", HB_TAG('J','A','N',' ')}, /* Japanese */
{"jv", HB_TAG('J','A','V',' ')}, /* Javanese */
{"ka", HB_TAG('K','A','T',' ')}, /* Georgian */
+ {"kaa", HB_TAG('K','R','K',' ')}, /* Karakalpak */
{"kam", HB_TAG('K','M','B',' ')}, /* Kamba (Kenya) */
+ {"kar", HB_TAG('K','R','N',' ')}, /* Karen [family] */
{"kbd", HB_TAG('K','A','B',' ')}, /* Kabardian */
{"kdr", HB_TAG('K','R','M',' ')}, /* Karaim */
{"kdt", HB_TAG('K','U','Y',' ')}, /* Kuy */
+ {"kex", HB_TAG('K','K','N',' ')}, /* Kokni */
{"kfr", HB_TAG('K','A','C',' ')}, /* Kachchi */
{"kfy", HB_TAG('K','M','N',' ')}, /* Kumaoni */
{"kha", HB_TAG('K','S','I',' ')}, /* Khasi */
+ {"khb", HB_TAG('X','B','D',' ')}, /* Tai Lue */
{"khw", HB_TAG('K','H','W',' ')}, /* Khowar */
{"ki", HB_TAG('K','I','K',' ')}, /* Kikuyu */
+ {"kjh", HB_TAG('K','H','A',' ')}, /* Khakass */
{"kk", HB_TAG('K','A','Z',' ')}, /* Kazakh */
{"kl", HB_TAG('G','R','N',' ')}, /* Kalaallisut */
{"kln", HB_TAG('K','A','L',' ')}, /* Kalenjin */
{"km", HB_TAG('K','H','M',' ')}, /* Central Khmer */
+ {"kmb", HB_TAG('M','B','N',' ')}, /* [North] Mbundu */
{"kmw", HB_TAG('K','M','O',' ')}, /* Komo (Democratic Republic of Congo) */
{"kn", HB_TAG('K','A','N',' ')}, /* Kannada */
{"ko", HB_TAG('K','O','R',' ')}, /* Korean */
@@ -316,6 +355,7 @@ static const LangTag ot_languages[] = {
{"ku", HB_TAG('K','U','R',' ')}, /* Kurdish */
{"kum", HB_TAG('K','U','M',' ')}, /* Kumyk */
{"kvd", HB_TAG('K','U','I',' ')}, /* Kui (Indonesia) */
+ {"kxc", HB_TAG('K','M','S',' ')}, /* Komso */
{"kxu", HB_TAG('K','U','I',' ')}, /* Kui (India) */
{"ky", HB_TAG('K','I','R',' ')}, /* Kirghiz */
{"la", HB_TAG('L','A','T',' ')}, /* Latin */
@@ -323,13 +363,19 @@ static const LangTag ot_languages[] = {
{"lb", HB_TAG('L','T','Z',' ')}, /* Luxembourgish */
{"lbe", HB_TAG('L','A','K',' ')}, /* Lak */
{"lbj", HB_TAG('L','D','K',' ')}, /* Ladakhi */
+ {"lez", HB_TAG('L','E','Z',' ')}, /* Lezgi */
+ {"lg", HB_TAG('L','U','G',' ')}, /* Luganda */
{"lif", HB_TAG('L','M','B',' ')}, /* Limbu */
{"lld", HB_TAG('L','A','D',' ')}, /* Ladin */
+ {"lmn", HB_TAG('L','A','M',' ')}, /* Lambani */
{"ln", HB_TAG('L','I','N',' ')}, /* Lingala */
{"lo", HB_TAG('L','A','O',' ')}, /* Lao */
{"lt", HB_TAG('L','T','H',' ')}, /* Lithuanian */
+ {"lu", HB_TAG('L','U','B',' ')}, /* Luba-Katanga */
+ {"lua", HB_TAG('L','U','B',' ')}, /* Luba-Kasai */
{"luo", HB_TAG('L','U','O',' ')}, /* Luo (Kenya and Tanzania) */
- {"luw", HB_TAG('L','U','O',' ')}, /* Luo (Cameroon) */
+ {"lus", HB_TAG('M','I','Z',' ')}, /* Mizo */
+ {"luy", HB_TAG('L','U','H',' ')}, /* Luhya [macrolanguage] */
{"lv", HB_TAG('L','V','I',' ')}, /* Latvian */
{"lzz", HB_TAG('L','A','Z',' ')}, /* Laz */
{"mai", HB_TAG('M','T','H',' ')}, /* Maithili */
@@ -338,6 +384,7 @@ static const LangTag ot_languages[] = {
{"mdy", HB_TAG('M','L','E',' ')}, /* Male (Ethiopia) */
{"men", HB_TAG('M','D','E',' ')}, /* Mende (Sierra Leone) */
{"mg", HB_TAG('M','L','G',' ')}, /* Malagasy */
+ {"mhr", HB_TAG('L','M','A',' ')}, /* Low Mari */
{"mi", HB_TAG('M','R','I',' ')}, /* Maori */
{"mk", HB_TAG('M','K','D',' ')}, /* Macedonian */
{"ml", HB_TAG('M','L','R',' ')}, /* Malayalam */
@@ -351,14 +398,17 @@ static const LangTag ot_languages[] = {
{"moh", HB_TAG('M','O','H',' ')}, /* Mohawk */
{"mpe", HB_TAG('M','A','J',' ')}, /* Majang */
{"mr", HB_TAG('M','A','R',' ')}, /* Marathi */
+ {"mrj", HB_TAG('H','M','A',' ')}, /* High Mari */
{"ms", HB_TAG('M','L','Y',' ')}, /* Malay */
{"mt", HB_TAG('M','T','S',' ')}, /* Maltese */
{"mwr", HB_TAG('M','A','W',' ')}, /* Marwari */
{"my", HB_TAG('B','R','M',' ')}, /* Burmese */
{"mym", HB_TAG('M','E','N',' ')}, /* Me'en */
{"myv", HB_TAG('E','R','Z',' ')}, /* Erzya */
+ {"nag", HB_TAG('N','A','G',' ')}, /* Naga-Assamese */
{"nb", HB_TAG('N','O','R',' ')}, /* Norwegian Bokmål */
{"nco", HB_TAG('S','I','B',' ')}, /* Sibe */
+ {"nd", HB_TAG('N','D','B',' ')}, /* [North] Ndebele */
{"ne", HB_TAG('N','E','P',' ')}, /* Nepali */
{"new", HB_TAG('N','E','W',' ')}, /* Newari */
{"ng", HB_TAG('N','D','G',' ')}, /* Ndonga */
@@ -368,33 +418,45 @@ static const LangTag ot_languages[] = {
{"nl", HB_TAG('N','L','D',' ')}, /* Dutch */
{"nn", HB_TAG('N','Y','N',' ')}, /* Norwegian Nynorsk */
{"no", HB_TAG('N','O','R',' ')}, /* Norwegian (deprecated) */
+ {"nod", HB_TAG('N','T','A',' ')}, /* Northern Tai */
{"nog", HB_TAG('N','O','G',' ')}, /* Nogai */
{"nqo", HB_TAG('N','K','O',' ')}, /* N'Ko */
+ {"nr", HB_TAG('N','D','B',' ')}, /* [South] Ndebele */
{"nsk", HB_TAG('N','A','S',' ')}, /* Naskapi */
+ {"nso", HB_TAG('S','O','T',' ')}, /* [Northern] Sotho */
{"ny", HB_TAG('C','H','I',' ')}, /* Nyanja */
+ {"nyn", HB_TAG('N','K','L',' ')}, /* Nkole */
{"oc", HB_TAG('O','C','I',' ')}, /* Occitan (post 1500) */
{"oj", HB_TAG('O','J','B',' ')}, /* Ojibwa */
+ {"ojs", HB_TAG('O','C','R',' ')}, /* Oji-Cree */
{"om", HB_TAG('O','R','O',' ')}, /* Oromo */
{"or", HB_TAG('O','R','I',' ')}, /* Oriya */
{"os", HB_TAG('O','S','S',' ')}, /* Ossetian */
{"pa", HB_TAG('P','A','N',' ')}, /* Panjabi */
+ {"pce", HB_TAG('P','L','G',' ')}, /* [Ruching] Palaung */
{"pi", HB_TAG('P','A','L',' ')}, /* Pali */
{"pl", HB_TAG('P','L','K',' ')}, /* Polish */
+ {"pll", HB_TAG('P','L','G',' ')}, /* [Shwe] Palaung */
{"plp", HB_TAG('P','A','P',' ')}, /* Palpa */
{"prs", HB_TAG('D','R','I',' ')}, /* Dari */
{"ps", HB_TAG('P','A','S',' ')}, /* Pushto */
{"pt", HB_TAG('P','T','G',' ')}, /* Portuguese */
{"raj", HB_TAG('R','A','J',' ')}, /* Rajasthani */
+ {"rbb", HB_TAG('P','L','G',' ')}, /* [Rumai] Palaung */
{"ria", HB_TAG('R','I','A',' ')}, /* Riang (India) */
{"ril", HB_TAG('R','I','A',' ')}, /* Riang (Myanmar) */
+ {"rki", HB_TAG('A','R','K',' ')}, /* Arakanese */
+ {"rm", HB_TAG('R','M','S',' ')}, /* Rhaeto-Romanic */
{"ro", HB_TAG('R','O','M',' ')}, /* Romanian */
{"rom", HB_TAG('R','O','Y',' ')}, /* Romany */
{"ru", HB_TAG('R','U','S',' ')}, /* Russian */
{"rue", HB_TAG('R','S','Y',' ')}, /* Rusyn */
+ {"rw", HB_TAG('R','U','A',' ')}, /* Ruanda */
{"sa", HB_TAG('S','A','N',' ')}, /* Sanskrit */
{"sah", HB_TAG('Y','A','K',' ')}, /* Yakut */
{"sat", HB_TAG('S','A','T',' ')}, /* Santali */
{"sck", HB_TAG('S','A','D',' ')}, /* Sadri */
+ {"scs", HB_TAG('S','L','A',' ')}, /* [North] Slavey */
{"sd", HB_TAG('S','N','D',' ')}, /* Sindhi */
{"se", HB_TAG('N','S','M',' ')}, /* Northern Sami */
{"seh", HB_TAG('S','N','A',' ')}, /* Sena */
@@ -417,6 +479,8 @@ static const LangTag ot_languages[] = {
{"sq", HB_TAG('S','Q','I',' ')}, /* Albanian */
{"sr", HB_TAG('S','R','B',' ')}, /* Serbian */
{"srr", HB_TAG('S','R','R',' ')}, /* Serer */
+ {"ss", HB_TAG('S','W','Z',' ')}, /* Swazi */
+ {"st", HB_TAG('S','O','T',' ')}, /* [Southern] Sotho */
{"suq", HB_TAG('S','U','R',' ')}, /* Suri */
{"sv", HB_TAG('S','V','E',' ')}, /* Swedish */
{"sva", HB_TAG('S','V','A',' ')}, /* Svan */
@@ -424,31 +488,34 @@ static const LangTag ot_languages[] = {
{"swb", HB_TAG('C','M','R',' ')}, /* Comorian */
{"syr", HB_TAG('S','Y','R',' ')}, /* Syriac */
{"ta", HB_TAG('T','A','M',' ')}, /* Tamil */
+ {"tab", HB_TAG('T','A','B',' ')}, /* Tabasaran */
{"tcy", HB_TAG('T','U','L',' ')}, /* Tulu */
{"te", HB_TAG('T','E','L',' ')}, /* Telugu */
+ {"tem", HB_TAG('T','M','N',' ')}, /* Temne */
{"tg", HB_TAG('T','A','J',' ')}, /* Tajik */
{"th", HB_TAG('T','H','A',' ')}, /* Thai */
{"ti", HB_TAG('T','G','Y',' ')}, /* Tigrinya */
{"tig", HB_TAG('T','G','R',' ')}, /* Tigre */
{"tk", HB_TAG('T','K','M',' ')}, /* Turkmen */
{"tn", HB_TAG('T','N','A',' ')}, /* Tswana */
- {"tnz", HB_TAG('T','N','G',' ')}, /* Tonga (Thailand) */
- {"to", HB_TAG('T','N','G',' ')}, /* Tonga (Tonga Islands) */
- {"tog", HB_TAG('T','N','G',' ')}, /* Tonga (Nyasa) */
- {"toi", HB_TAG('T','N','G',' ')}, /* Tonga (Zambia) */
+ {"to", HB_TAG('T','G','N',' ')}, /* Tonga (Tonga Islands) */
{"tr", HB_TAG('T','R','K',' ')}, /* Turkish */
+ {"tru", HB_TAG('T','U','A',' ')}, /* Turoyo Aramaic */
{"ts", HB_TAG('T','S','G',' ')}, /* Tsonga */
{"tt", HB_TAG('T','A','T',' ')}, /* Tatar */
{"tw", HB_TAG('T','W','I',' ')}, /* Twi */
{"ty", HB_TAG('T','H','T',' ')}, /* Tahitian */
+ {"tyv", HB_TAG('T','U','V',' ')}, /* Tuvin */
{"udm", HB_TAG('U','D','M',' ')}, /* Udmurt */
{"ug", HB_TAG('U','Y','G',' ')}, /* Uighur */
{"uk", HB_TAG('U','K','R',' ')}, /* Ukrainian */
+ {"umb", HB_TAG('M','B','N',' ')}, /* [South] Mbundu */
{"unr", HB_TAG('M','U','N',' ')}, /* Mundari */
{"ur", HB_TAG('U','R','D',' ')}, /* Urdu */
{"uz", HB_TAG('U','Z','B',' ')}, /* Uzbek */
{"ve", HB_TAG('V','E','N',' ')}, /* Venda */
{"vi", HB_TAG('V','I','T',' ')}, /* Vietnamese */
+ {"vmw", HB_TAG('M','A','K',' ')}, /* Makua */
{"wbm", HB_TAG('W','A',' ',' ')}, /* Wa */
{"wbr", HB_TAG('W','A','G',' ')}, /* Wagdi */
{"wo", HB_TAG('W','L','F',' ')}, /* Wolof */
@@ -462,115 +529,56 @@ static const LangTag ot_languages[] = {
{"zne", HB_TAG('Z','N','D',' ')}, /* Zande */
{"zu", HB_TAG('Z','U','L',' ')} /* Zulu */
- /* I couldn't find the language id for these */
-
-/*{"??", HB_TAG('A','G','W',' ')},*/ /* Agaw */
-/*{"??", HB_TAG('A','L','S',' ')},*/ /* Alsatian */
-/*{"??", HB_TAG('A','L','T',' ')},*/ /* Altai */
-/*{"??", HB_TAG('A','R','K',' ')},*/ /* Arakanese */
-/*{"??", HB_TAG('A','T','H',' ')},*/ /* Athapaskan */
-/*{"??", HB_TAG('B','A','G',' ')},*/ /* Baghelkhandi */
-/*{"??", HB_TAG('B','A','L',' ')},*/ /* Balkar */
-/*{"??", HB_TAG('B','A','U',' ')},*/ /* Baule */
-/*{"??", HB_TAG('B','B','R',' ')},*/ /* Berber */
+ /* The corresponding languages IDs for the following IDs are unclear,
+ * overlap, or are architecturally weird. Needs more research. */
+
+/*{"ahg/awn/xan?", HB_TAG('A','G','W',' ')},*/ /* Agaw */
+/*{"gsw?/gsw-FR?", HB_TAG('A','L','S',' ')},*/ /* Alsatian */
+/*{"krc", HB_TAG('B','A','L',' ')},*/ /* Balkar */
/*{"??", HB_TAG('B','C','R',' ')},*/ /* Bible Cree */
-/*{"??", HB_TAG('B','E','L',' ')},*/ /* Belarussian */
-/*{"??", HB_TAG('B','I','L',' ')},*/ /* Bilen */
-/*{"??", HB_TAG('B','K','F',' ')},*/ /* Blackfoot */
-/*{"??", HB_TAG('B','L','N',' ')},*/ /* Balante */
-/*{"??", HB_TAG('B','M','L',' ')},*/ /* Bamileke */
-/*{"??", HB_TAG('B','R','I',' ')},*/ /* Braj Bhasha */
-/*{"??", HB_TAG('C','H','G',' ')},*/ /* Chaha Gurage */
-/*{"??", HB_TAG('C','H','H',' ')},*/ /* Chattisgarhi */
-/*{"??", HB_TAG('C','H','K',' ')},*/ /* Chukchi */
-/*{"??", HB_TAG('D','J','R',' ')},*/ /* Djerma */
-/*{"??", HB_TAG('D','N','G',' ')},*/ /* Dangme */
-/*{"??", HB_TAG('E','C','R',' ')},*/ /* Eastern Cree */
-/*{"??", HB_TAG('F','A','N',' ')},*/ /* French Antillean */
-/*{"??", HB_TAG('F','L','E',' ')},*/ /* Flemish */
-/*{"??", HB_TAG('F','N','E',' ')},*/ /* Forest Nenets */
-/*{"??", HB_TAG('F','T','A',' ')},*/ /* Futa */
-/*{"??", HB_TAG('G','A','R',' ')},*/ /* Garshuni */
-/*{"??", HB_TAG('G','E','Z',' ')},*/ /* Ge'ez */
-/*{"??", HB_TAG('H','A','L',' ')},*/ /* Halam */
-/*{"??", HB_TAG('H','A','R',' ')},*/ /* Harauti */
-/*{"??", HB_TAG('H','A','W',' ')},*/ /* Hawaiin */
-/*{"??", HB_TAG('H','B','N',' ')},*/ /* Hammer-Banna */
-/*{"??", HB_TAG('H','M','A',' ')},*/ /* High Mari */
-/*{"??", HB_TAG('H','N','D',' ')},*/ /* Hindko */
-/*{"??", HB_TAG('I','J','O',' ')},*/ /* Ijo */
-/*{"??", HB_TAG('I','L','O',' ')},*/ /* Ilokano */
-/*{"??", HB_TAG('I','R','T',' ')},*/ /* Irish Traditional */
-/*{"??", HB_TAG('J','U','L',' ')},*/ /* Jula */
-/*{"??", HB_TAG('K','A','R',' ')},*/ /* Karachay */
-/*{"??", HB_TAG('K','E','B',' ')},*/ /* Kebena */
-/*{"??", HB_TAG('K','G','E',' ')},*/ /* Khutsuri Georgian */
-/*{"??", HB_TAG('K','H','A',' ')},*/ /* Khakass */
-/*{"??", HB_TAG('K','H','K',' ')},*/ /* Khanty-Kazim */
-/*{"??", HB_TAG('K','H','S',' ')},*/ /* Khanty-Shurishkar */
-/*{"??", HB_TAG('K','H','V',' ')},*/ /* Khanty-Vakhi */
-/*{"??", HB_TAG('K','I','S',' ')},*/ /* Kisii */
-/*{"??", HB_TAG('K','K','N',' ')},*/ /* Kokni */
-/*{"??", HB_TAG('K','M','S',' ')},*/ /* Komso */
-/*{"??", HB_TAG('K','O','D',' ')},*/ /* Kodagu */
-/*{"??", HB_TAG('K','O','H',' ')},*/ /* Korean Old Hangul */
-/*{"??", HB_TAG('K','O','N',' ')},*/ /* Kikongo */
-/*{"??", HB_TAG('K','R','K',' ')},*/ /* Karakalpak */
-/*{"??", HB_TAG('K','R','N',' ')},*/ /* Karen */
-/*{"??", HB_TAG('K','U','L',' ')},*/ /* Kulvi */
+/*{"sgw?", HB_TAG('C','H','G',' ')},*/ /* Chaha Gurage */
+/*{"acf/gcf?", HB_TAG('F','A','N',' ')},*/ /* French Antillean */
+/*{"vls/nl-be", HB_TAG('F','L','E',' ')},*/ /* Flemish */
+/*{"enf?/yrk?", HB_TAG('F','N','E',' ')},*/ /* Forest Nenets */
+/*{"fuf?", HB_TAG('F','T','A',' ')},*/ /* Futa */
+/*{"ar-Syrc?", HB_TAG('G','A','R',' ')},*/ /* Garshuni */
+/*{"cfm/rnl?", HB_TAG('H','A','L',' ')},*/ /* Halam */
+/*{"ga-Latg?/Latg?", HB_TAG('I','R','T',' ')},*/ /* Irish Traditional */
+/*{"krc", HB_TAG('K','A','R',' ')},*/ /* Karachay */
+/*{"alw?/ktb?", HB_TAG('K','E','B',' ')},*/ /* Kebena */
+/*{"Geok", HB_TAG('K','G','E',' ')},*/ /* Khutsuri Georgian */
+/*{"kca", HB_TAG('K','H','K',' ')},*/ /* Khanty-Kazim */
+/*{"kca", HB_TAG('K','H','S',' ')},*/ /* Khanty-Shurishkar */
+/*{"kca", HB_TAG('K','H','V',' ')},*/ /* Khanty-Vakhi */
+/*{"guz?/kqs?/kss?", HB_TAG('K','I','S',' ')},*/ /* Kisii */
+/*{"kfa/kfi?/kpb?/xua?/xuj?", HB_TAG('K','O','D',' ')},*/ /* Kodagu */
+/*{"okm?/oko?", HB_TAG('K','O','H',' ')},*/ /* Korean Old Hangul */
+/*{"kon?/ktu?/...", HB_TAG('K','O','N',' ')},*/ /* Kikongo */
+/*{"kfx?", HB_TAG('K','U','L',' ')},*/ /* Kulvi */
/*{"??", HB_TAG('L','A','H',' ')},*/ /* Lahuli */
-/*{"??", HB_TAG('L','A','M',' ')},*/ /* Lambani */
/*{"??", HB_TAG('L','C','R',' ')},*/ /* L-Cree */
-/*{"??", HB_TAG('L','E','Z',' ')},*/ /* Lezgi */
-/*{"??", HB_TAG('L','M','A',' ')},*/ /* Low Mari */
-/*{"??", HB_TAG('L','U','B',' ')},*/ /* Luba */
-/*{"??", HB_TAG('L','U','G',' ')},*/ /* Luganda */
-/*{"??", HB_TAG('L','U','H',' ')},*/ /* Luhya */
-/*{"??", HB_TAG('M','A','K',' ')},*/ /* Makua */
/*{"??", HB_TAG('M','A','L',' ')},*/ /* Malayalam Traditional */
-/*{"??", HB_TAG('M','B','N',' ')},*/ /* Mbundu */
-/*{"??", HB_TAG('M','I','Z',' ')},*/ /* Mizo */
-/*{"??", HB_TAG('M','L','N',' ')},*/ /* Malinke */
-/*{"??", HB_TAG('M','N','K',' ')},*/ /* Maninka */
+/*{"mnk?/mlq?/...", HB_TAG('M','L','N',' ')},*/ /* Malinke */
+/*{"man?/myq?/mku?/msc?/...", HB_TAG('M','N','K',' ')},*/ /* Maninka */
/*{"??", HB_TAG('M','O','R',' ')},*/ /* Moroccan */
-/*{"??", HB_TAG('N','A','G',' ')},*/ /* Naga-Assamese */
/*{"??", HB_TAG('N','C','R',' ')},*/ /* N-Cree */
-/*{"??", HB_TAG('N','D','B',' ')},*/ /* Ndebele */
-/*{"??", HB_TAG('N','G','R',' ')},*/ /* Nagari */
/*{"??", HB_TAG('N','H','C',' ')},*/ /* Norway House Cree */
-/*{"??", HB_TAG('N','K','L',' ')},*/ /* Nkole */
-/*{"??", HB_TAG('N','T','A',' ')},*/ /* Northern Tai */
-/*{"??", HB_TAG('O','C','R',' ')},*/ /* Oji-Cree */
-/*{"??", HB_TAG('P','A','A',' ')},*/ /* Palestinian Aramaic */
-/*{"??", HB_TAG('P','G','R',' ')},*/ /* Polytonic Greek */
-/*{"??", HB_TAG('P','L','G',' ')},*/ /* Palaung */
-/*{"??", HB_TAG('Q','I','N',' ')},*/ /* Chin */
-/*{"??", HB_TAG('R','B','U',' ')},*/ /* Russian Buriat */
+/*{"jpa?/sam?", HB_TAG('P','A','A',' ')},*/ /* Palestinian Aramaic */
+/*{"polyton", HB_TAG('P','G','R',' ')},*/ /* Polytonic Greek */
+/*{"??", HB_TAG('Q','I','N',' ')},*/ /* Asho Chin */
/*{"??", HB_TAG('R','C','R',' ')},*/ /* R-Cree */
-/*{"??", HB_TAG('R','M','S',' ')},*/ /* Rhaeto-Romanic */
-/*{"??", HB_TAG('R','U','A',' ')},*/ /* Ruanda */
-/*{"??", HB_TAG('S','A','Y',' ')},*/ /* Sayisi */
-/*{"??", HB_TAG('S','E','K',' ')},*/ /* Sekota */
-/*{"??", HB_TAG('S','I','G',' ')},*/ /* Silte Gurage */
-/*{"??", HB_TAG('S','L','A',' ')},*/ /* Slavey */
-/*{"??", HB_TAG('S','O','G',' ')},*/ /* Sodo Gurage */
-/*{"??", HB_TAG('S','O','T',' ')},*/ /* Sotho */
-/*{"??", HB_TAG('S','W','A',' ')},*/ /* Swadaya Aramaic */
-/*{"??", HB_TAG('S','W','Z',' ')},*/ /* Swazi */
-/*{"??", HB_TAG('S','X','T',' ')},*/ /* Sutu */
-/*{"??", HB_TAG('T','A','B',' ')},*/ /* Tabasaran */
+/*{"chp?", HB_TAG('S','A','Y',' ')},*/ /* Sayisi */
+/*{"xan?", HB_TAG('S','E','K',' ')},*/ /* Sekota */
+/*{"stv/wle?/xst?", HB_TAG('S','I','G',' ')},*/ /* Silte Gurage */
+/*{"ngo?", HB_TAG('S','X','T',' ')},*/ /* Sutu */
/*{"??", HB_TAG('T','C','R',' ')},*/ /* TH-Cree */
-/*{"??", HB_TAG('T','G','N',' ')},*/ /* Tongan */
-/*{"??", HB_TAG('T','M','N',' ')},*/ /* Temne */
-/*{"??", HB_TAG('T','N','E',' ')},*/ /* Tundra Nenets */
+/*{"tnz?/tog?/toi?", HB_TAG('T','N','G',' ')},*/ /* Tonga */
+/*{"enh?/yrk?", HB_TAG('T','N','E',' ')},*/ /* Tundra Nenets */
/*{"??", HB_TAG('T','O','D',' ')},*/ /* Todo */
-/*{"??", HB_TAG('T','U','A',' ')},*/ /* Turoyo Aramaic */
-/*{"??", HB_TAG('T','U','V',' ')},*/ /* Tuvin */
/*{"??", HB_TAG('W','C','R',' ')},*/ /* West-Cree */
-/*{"??", HB_TAG('X','B','D',' ')},*/ /* Tai Lue */
/*{"??", HB_TAG('Y','C','R',' ')},*/ /* Y-Cree */
/*{"??", HB_TAG('Y','I','C',' ')},*/ /* Yi Classic */
-/*{"??", HB_TAG('Y','I','M',' ')},*/ /* Yi Modern */
+/*{"ii?/Yiii?", HB_TAG('Y','I','M',' ')},*/ /* Yi Modern */
/*{"??", HB_TAG('Z','H','P',' ')},*/ /* Chinese Phonetic */
};
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-ot-tag.h b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-ot-tag.h
index 1bf12ab3c09..1bf12ab3c09 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-ot-tag.h
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-ot-tag.h
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-ot.h b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-ot.h
index 80739063991..80739063991 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-ot.h
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-ot.h
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-private.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-private.hh
index fc555d5a0a6..be0d505f7b5 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-private.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-private.hh
@@ -63,9 +63,9 @@
/* Void! */
-struct _void_t {};
-typedef const _void_t &void_t;
-#define HB_VOID (* (const _void_t *) NULL)
+struct _hb_void_t {};
+typedef const _hb_void_t &hb_void_t;
+#define HB_VOID (* (const _hb_void_t *) NULL)
/* Basics */
@@ -82,7 +82,7 @@ static inline Type MAX (const Type &a, const Type &b) { return a > b ? a : b; }
#undef ARRAY_LENGTH
template <typename Type, unsigned int n>
-static inline unsigned int ARRAY_LENGTH (const Type (&a)[n]) { return n; }
+static inline unsigned int ARRAY_LENGTH (const Type (&)[n]) { return n; }
/* A const version, but does not detect erratically being called on pointers. */
#define ARRAY_LENGTH_CONST(__array) ((signed int) (sizeof (__array) / sizeof (__array[0])))
@@ -509,6 +509,10 @@ static inline uint32_t hb_uint32_swap (const uint32_t v)
#define hb_be_uint32_get(v) (uint32_t) ((v[0] << 24) + (v[1] << 16) + (v[2] << 8) + v[3])
#define hb_be_uint32_eq(a,b) (a[0] == b[0] && a[1] == b[1] && a[2] == b[2] && a[3] == b[3])
+#define hb_be_uint24_put(v,V) HB_STMT_START { v[0] = (V>>16); v[1] = (V>>8); v[2] (V); } HB_STMT_END
+#define hb_be_uint24_get(v) (uint32_t) ((v[0] << 16) + (v[1] << 8) + v[2])
+#define hb_be_uint24_eq(a,b) (a[0] == b[0] && a[1] == b[1] && a[2] == b[2])
+
/* ASCII tag/character handling */
@@ -679,8 +683,8 @@ struct hb_printer_t<bool> {
};
template <>
-struct hb_printer_t<void_t> {
- const char *print (void_t v) { return ""; }
+struct hb_printer_t<hb_void_t> {
+ const char *print (hb_void_t) { return ""; }
};
@@ -696,7 +700,7 @@ static inline void _hb_warn_no_return (bool returned)
}
}
template <>
-inline void _hb_warn_no_return<void_t> (bool returned)
+inline void _hb_warn_no_return<hb_void_t> (bool returned HB_UNUSED)
{}
template <int max_level, typename ret_t>
@@ -755,7 +759,7 @@ struct hb_auto_trace_t<0, ret_t> {
const char *message HB_UNUSED,
...) {}
- inline ret_t ret (ret_t v, unsigned int line = 0) { return v; }
+ inline ret_t ret (ret_t v, unsigned int line HB_UNUSED = 0) { return v; }
};
#define TRACE_RETURN(RET) trace.ret (RET, __LINE__)
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-set-private.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-set-private.hh
index c736b69936c..5e30a7e3616 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-set-private.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-set-private.hh
@@ -137,6 +137,7 @@ struct hb_set_t
{
hb_object_header_t header;
ASSERT_POD ();
+ bool in_error;
inline void init (void) {
header.init ();
@@ -145,6 +146,9 @@ struct hb_set_t
inline void fini (void) {
}
inline void clear (void) {
+ if (unlikely (hb_object_is_inert (this)))
+ return;
+ in_error = false;
memset (elts, 0, sizeof elts);
}
inline bool is_empty (void) const {
@@ -155,23 +159,27 @@ struct hb_set_t
}
inline void add (hb_codepoint_t g)
{
+ if (unlikely (in_error)) return;
if (unlikely (g == SENTINEL)) return;
if (unlikely (g > MAX_G)) return;
elt (g) |= mask (g);
}
inline void add_range (hb_codepoint_t a, hb_codepoint_t b)
{
+ if (unlikely (in_error)) return;
/* TODO Speedup */
for (unsigned int i = a; i < b + 1; i++)
add (i);
}
inline void del (hb_codepoint_t g)
{
+ if (unlikely (in_error)) return;
if (unlikely (g > MAX_G)) return;
elt (g) &= ~mask (g);
}
inline void del_range (hb_codepoint_t a, hb_codepoint_t b)
{
+ if (unlikely (in_error)) return;
/* TODO Speedup */
for (unsigned int i = a; i < b + 1; i++)
del (i);
@@ -201,29 +209,40 @@ struct hb_set_t
}
inline void set (const hb_set_t *other)
{
+ if (unlikely (in_error)) return;
for (unsigned int i = 0; i < ELTS; i++)
elts[i] = other->elts[i];
}
inline void union_ (const hb_set_t *other)
{
+ if (unlikely (in_error)) return;
for (unsigned int i = 0; i < ELTS; i++)
elts[i] |= other->elts[i];
}
inline void intersect (const hb_set_t *other)
{
+ if (unlikely (in_error)) return;
for (unsigned int i = 0; i < ELTS; i++)
elts[i] &= other->elts[i];
}
inline void subtract (const hb_set_t *other)
{
+ if (unlikely (in_error)) return;
for (unsigned int i = 0; i < ELTS; i++)
elts[i] &= ~other->elts[i];
}
inline void symmetric_difference (const hb_set_t *other)
{
+ if (unlikely (in_error)) return;
for (unsigned int i = 0; i < ELTS; i++)
elts[i] ^= other->elts[i];
}
+ inline void invert (void)
+ {
+ if (unlikely (in_error)) return;
+ for (unsigned int i = 0; i < ELTS; i++)
+ elts[i] = ~elts[i];
+ }
inline bool next (hb_codepoint_t *codepoint) const
{
if (unlikely (*codepoint == SENTINEL)) {
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-set.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-set.cc
index 93f983aeb77..5f427a5d8e0 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-set.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-set.cc
@@ -49,6 +49,7 @@ hb_set_get_empty (void)
{
static const hb_set_t _hb_set_nil = {
HB_OBJECT_HEADER_STATIC,
+ true, /* in_error */
{0} /* elts */
};
@@ -93,7 +94,7 @@ hb_set_get_user_data (hb_set_t *set,
hb_bool_t
hb_set_allocation_successful (const hb_set_t *set HB_UNUSED)
{
- return true;
+ return !set->in_error;
}
void
@@ -187,6 +188,12 @@ hb_set_symmetric_difference (hb_set_t *set,
set->symmetric_difference (other);
}
+void
+hb_set_invert (hb_set_t *set)
+{
+ set->invert ();
+}
+
unsigned int
hb_set_get_population (const hb_set_t *set)
{
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-set.h b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-set.h
index ec3d119e1e3..291e24974e6 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-set.h
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-set.h
@@ -121,6 +121,9 @@ void
hb_set_symmetric_difference (hb_set_t *set,
const hb_set_t *other);
+void
+hb_set_invert (hb_set_t *set);
+
unsigned int
hb_set_get_population (const hb_set_t *set);
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-shape-plan-private.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-shape-plan-private.hh
index dd014e38d01..dd014e38d01 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-shape-plan-private.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-shape-plan-private.hh
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-shape-plan.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-shape-plan.cc
index 22a226f3a6c..22a226f3a6c 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-shape-plan.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-shape-plan.cc
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-shape-plan.h b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-shape-plan.h
index 8f54552f90b..8f54552f90b 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-shape-plan.h
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-shape-plan.h
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-shape.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-shape.cc
index 389ce3e34b1..389ce3e34b1 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-shape.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-shape.cc
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-shape.h b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-shape.h
index 90a188d2a9c..10a35cb517e 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-shape.h
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-shape.h
@@ -52,7 +52,7 @@ hb_bool_t
hb_feature_from_string (const char *str, int len,
hb_feature_t *feature);
-/* something like 128 bytes is more than enough.
+/* Something like 128 bytes is more than enough.
* nul-terminates. */
void
hb_feature_to_string (hb_feature_t *feature,
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-shaper-impl-private.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-shaper-impl-private.hh
index 7844081e95b..7844081e95b 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-shaper-impl-private.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-shaper-impl-private.hh
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-shaper-list.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-shaper-list.hh
index b9c029e58f1..b9c029e58f1 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-shaper-list.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-shaper-list.hh
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-shaper-private.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-shaper-private.hh
index 9d30c1ea0c2..9d30c1ea0c2 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-shaper-private.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-shaper-private.hh
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-shaper.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-shaper.cc
index 1c1aed9034a..1c1aed9034a 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-shaper.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-shaper.cc
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-tt-font.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-tt-font.cc
index c503a404380..c503a404380 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-tt-font.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-tt-font.cc
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-ucdn.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-ucdn.cc
index 35063043fd6..61e6ad36229 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-ucdn.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-ucdn.cc
@@ -129,57 +129,60 @@ static const hb_script_t ucdn_script_translate[] =
static hb_unicode_combining_class_t
hb_ucdn_combining_class(hb_unicode_funcs_t *ufuncs, hb_codepoint_t unicode,
- void *user_data)
+ void *user_data HB_UNUSED)
{
return (hb_unicode_combining_class_t) ucdn_get_combining_class(unicode);
}
static unsigned int
hb_ucdn_eastasian_width(hb_unicode_funcs_t *ufuncs, hb_codepoint_t unicode,
- void *user_data)
+ void *user_data HB_UNUSED)
{
int w = ucdn_get_east_asian_width(unicode);
return (w == UCDN_EAST_ASIAN_F || w == UCDN_EAST_ASIAN_W) ? 2 : 1;
}
static hb_unicode_general_category_t
-hb_ucdn_general_category(hb_unicode_funcs_t *ufuncs,
- hb_codepoint_t unicode, void *user_data)
+hb_ucdn_general_category(hb_unicode_funcs_t *ufuncs, hb_codepoint_t unicode,
+ void *user_data HB_UNUSED)
{
return (hb_unicode_general_category_t)ucdn_get_general_category(unicode);
}
static hb_codepoint_t
hb_ucdn_mirroring(hb_unicode_funcs_t *ufuncs, hb_codepoint_t unicode,
- void *user_data)
+ void *user_data HB_UNUSED)
{
return ucdn_mirror(unicode);
}
static hb_script_t
hb_ucdn_script(hb_unicode_funcs_t *ufuncs, hb_codepoint_t unicode,
- void *user_data)
+ void *user_data HB_UNUSED)
{
return ucdn_script_translate[ucdn_get_script(unicode)];
}
static hb_bool_t
-hb_ucdn_compose(hb_unicode_funcs_t *ufuncs, hb_codepoint_t a,
- hb_codepoint_t b, hb_codepoint_t *ab, void *user_data)
+hb_ucdn_compose(hb_unicode_funcs_t *ufuncs,
+ hb_codepoint_t a, hb_codepoint_t b, hb_codepoint_t *ab,
+ void *user_data HB_UNUSED)
{
return ucdn_compose(ab, a, b);
}
static hb_bool_t
-hb_ucdn_decompose(hb_unicode_funcs_t *ufuncs, hb_codepoint_t ab,
- hb_codepoint_t *a, hb_codepoint_t *b, void *user_data)
+hb_ucdn_decompose(hb_unicode_funcs_t *ufuncs,
+ hb_codepoint_t ab, hb_codepoint_t *a, hb_codepoint_t *b,
+ void *user_data HB_UNUSED)
{
return ucdn_decompose(ab, a, b);
}
static unsigned int
-hb_ucdn_decompose_compatibility(hb_unicode_funcs_t *ufuncs, hb_codepoint_t u,
- hb_codepoint_t *decomposed, void *user_data)
+hb_ucdn_decompose_compatibility(hb_unicode_funcs_t *ufuncs,
+ hb_codepoint_t u, hb_codepoint_t *decomposed,
+ void *user_data HB_UNUSED)
{
return ucdn_compat_decompose(u, decomposed);
}
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-unicode-private.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-unicode-private.hh
index 7be4b04da6b..7be4b04da6b 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-unicode-private.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-unicode-private.hh
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-unicode.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-unicode.cc
index 0a3907eec8c..0a3907eec8c 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-unicode.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-unicode.cc
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-unicode.h b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-unicode.h
index 2e10d98a3b3..2e10d98a3b3 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-unicode.h
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-unicode.h
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-uniscribe.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-uniscribe.cc
index 18b88b2234f..2f01c28778f 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-uniscribe.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-uniscribe.cc
@@ -188,6 +188,22 @@ _hb_uniscribe_shaper_font_data_destroy (hb_uniscribe_shaper_font_data_t *data)
free (data);
}
+LOGFONTW *
+hb_uniscribe_font_get_logfontw (hb_font_t *font)
+{
+ if (unlikely (!hb_uniscribe_shaper_font_data_ensure (font))) return NULL;
+ hb_uniscribe_shaper_font_data_t *font_data = HB_SHAPER_DATA_GET (font);
+ return &font_data->log_font;
+}
+
+HFONT
+hb_uniscribe_font_get_hfont (hb_font_t *font)
+{
+ if (unlikely (!hb_uniscribe_shaper_font_data_ensure (font))) return NULL;
+ hb_uniscribe_shaper_font_data_t *font_data = HB_SHAPER_DATA_GET (font);
+ return font_data->hfont;
+}
+
/*
* shaper shape_plan data
@@ -213,23 +229,6 @@ _hb_uniscribe_shaper_shape_plan_data_destroy (hb_uniscribe_shaper_shape_plan_dat
* shaper
*/
-LOGFONTW *
-hb_uniscribe_font_get_logfontw (hb_font_t *font)
-{
- if (unlikely (!hb_uniscribe_shaper_font_data_ensure (font))) return NULL;
- return NULL;
- hb_uniscribe_shaper_font_data_t *font_data = HB_SHAPER_DATA_GET (font);
- return &font_data->log_font;
-}
-
-HFONT
-hb_uniscribe_font_get_hfont (hb_font_t *font)
-{
- if (unlikely (!hb_uniscribe_shaper_font_data_ensure (font))) return NULL;
- hb_uniscribe_shaper_font_data_t *font_data = HB_SHAPER_DATA_GET (font);
- return font_data->hfont;
-}
-
hb_bool_t
_hb_uniscribe_shape (hb_shape_plan_t *shape_plan,
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-uniscribe.h b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-uniscribe.h
index 51887c8794b..51887c8794b 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-uniscribe.h
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-uniscribe.h
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-utf-private.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-utf-private.hh
index ae36ef864e6..b9a6519d28e 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-utf-private.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-utf-private.hh
@@ -176,7 +176,7 @@ hb_utf_strlen (const uint16_t *text)
static inline const uint32_t *
hb_utf_next (const uint32_t *text,
- const uint32_t *end,
+ const uint32_t *end HB_UNUSED,
hb_codepoint_t *unicode)
{
*unicode = *text++;
@@ -185,7 +185,7 @@ hb_utf_next (const uint32_t *text,
static inline const uint32_t *
hb_utf_prev (const uint32_t *text,
- const uint32_t *start,
+ const uint32_t *start HB_UNUSED,
hb_codepoint_t *unicode)
{
*unicode = *--text;
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-version.h.in b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-version.h.in
index 43634f91ce8..43634f91ce8 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-version.h.in
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-version.h.in
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-warning.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-warning.cc
index 01adceac325..01adceac325 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-warning.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb-warning.cc
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb.h b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb.h
index 52c479cc2e5..52c479cc2e5 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb.h
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/hb.h
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/main.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/main.cc
index b362744e213..b362744e213 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/main.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/main.cc
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/test-size-params.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/test-size-params.cc
index a60aa10e1be..947b5669a14 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/test-size-params.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/test-size-params.cc
@@ -84,15 +84,10 @@ main (int argc, char **argv)
hb_blob_destroy (blob);
blob = NULL;
- uint16_t params[5];
- if (!hb_ot_layout_get_size_params (face, params))
- return 1;
+ unsigned int p[5];
+ bool ret = hb_ot_layout_get_size_params (face, p, p+1, p+2, p+3, p+4);
- for (unsigned int i = 0; i < 5; i++) {
- if (i) printf (" ");
- printf ("%u", params[i]);
- }
- printf ("\n");
+ printf ("%g %u %u %g %g\n", p[0]/10., p[1], p[2], p[3]/10., p[4]/10.);
- return 0;
+ return !ret;
}
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/test-would-substitute.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/test-would-substitute.cc
index 4731e265607..4731e265607 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/test-would-substitute.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/test-would-substitute.cc
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/test.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/test.cc
index 22108b86b7a..22108b86b7a 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/test.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.10/src/test.cc
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.8-PATCHES/patch-03-VOID b/Build/source/libs/harfbuzz/harfbuzz-0.9.8-PATCHES/patch-03-VOID
deleted file mode 100644
index 5472ee2dd69..00000000000
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.8-PATCHES/patch-03-VOID
+++ /dev/null
@@ -1,57 +0,0 @@
- Replace VOID by HB_VOID because winnt.h wants to '#define VOID void'
-
-diff -ur harfbuzz-0.9.8.orig/src/hb-ot-layout-gsubgpos-private.hh harfbuzz-0.9.8/src/hb-ot-layout-gsubgpos-private.hh
---- harfbuzz-0.9.8.orig/src/hb-ot-layout-gsubgpos-private.hh 2012-12-04 21:43:38.000000000 +0100
-+++ harfbuzz-0.9.8/src/hb-ot-layout-gsubgpos-private.hh 2012-12-05 11:03:08.000000000 +0100
-@@ -60,8 +60,8 @@
- typedef void_t return_t;
- typedef return_t (*recurse_func_t) (hb_closure_context_t *c, unsigned int lookup_index);
- template <typename T>
-- inline return_t process (const T &obj) { obj.closure (this); return VOID; }
-- static return_t default_return_value (void) { return VOID; }
-+ inline return_t process (const T &obj) { obj.closure (this); return HB_VOID; }
-+ static return_t default_return_value (void) { return HB_VOID; }
- bool stop_sublookup_iteration (const return_t r) const { return false; }
- return_t recurse (unsigned int lookup_index)
- {
-@@ -71,7 +71,7 @@
- nesting_level_left--;
- recurse_func (this, lookup_index);
- nesting_level_left++;
-- return VOID;
-+ return HB_VOID;
- }
-
- hb_face_t *face;
-@@ -148,8 +148,8 @@
- typedef void_t return_t;
- typedef return_t (*recurse_func_t) (hb_collect_glyphs_context_t *c, unsigned int lookup_index);
- template <typename T>
-- inline return_t process (const T &obj) { obj.collect_glyphs (this); return VOID; }
-- static return_t default_return_value (void) { return VOID; }
-+ inline return_t process (const T &obj) { obj.collect_glyphs (this); return HB_VOID; }
-+ static return_t default_return_value (void) { return HB_VOID; }
- bool stop_sublookup_iteration (const return_t r) const { return false; }
- return_t recurse (unsigned int lookup_index)
- {
-@@ -161,7 +161,7 @@
- hb_collect_glyphs_context_t new_c (this->face, NULL, NULL, NULL, &output, nesting_level_left);
- recurse_func (&new_c, lookup_index);
- nesting_level_left++;
-- return VOID;
-+ return HB_VOID;
- }
-
- hb_face_t *face;
-diff -ur harfbuzz-0.9.8.orig/src/hb-private.hh harfbuzz-0.9.8/src/hb-private.hh
---- harfbuzz-0.9.8.orig/src/hb-private.hh 2012-12-04 21:43:38.000000000 +0100
-+++ harfbuzz-0.9.8/src/hb-private.hh 2012-12-05 11:03:12.000000000 +0100
-@@ -65,7 +65,7 @@
- /* Void! */
- struct _void_t;
- typedef const _void_t &void_t;
--#define VOID (* (const _void_t *) NULL)
-+#define HB_VOID (* (const _void_t *) NULL)
-
-
- /* Basics */
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.8-PATCHES/patch-04-MSV b/Build/source/libs/harfbuzz/harfbuzz-0.9.8-PATCHES/patch-04-MSV
deleted file mode 100644
index 8951bbc738e..00000000000
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.8-PATCHES/patch-04-MSV
+++ /dev/null
@@ -1,14 +0,0 @@
- Required for MS Visual Studio 2005.
-
-diff -ur harfbuzz-0.9.8.orig/src/hb-private.hh harfbuzz-0.9.8/src/hb-private.hh
---- harfbuzz-0.9.8.orig/src/hb-private.hh 2012-12-05 11:03:12.000000000 +0100
-+++ harfbuzz-0.9.8/src/hb-private.hh 2012-12-06 16:40:07.414531612 +0100
-@@ -63,7 +63,7 @@
-
-
- /* Void! */
--struct _void_t;
-+struct _void_t {};
- typedef const _void_t &void_t;
- #define HB_VOID (* (const _void_t *) NULL)
-
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/git.mk b/Build/source/libs/harfbuzz/harfbuzz-0.9.8/git.mk
deleted file mode 100644
index 4da8fe2ee37..00000000000
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/git.mk
+++ /dev/null
@@ -1,224 +0,0 @@
-# git.mk
-#
-# Copyright 2009, Red Hat, Inc.
-# Copyright 2010,2011 Behdad Esfahbod
-# Written by Behdad Esfahbod
-#
-# Copying and distribution of this file, with or without modification,
-# is permitted in any medium without royalty provided the copyright
-# notice and this notice are preserved.
-#
-# The canonical source for this file is https://github.com/behdad/git.mk.
-#
-# To use in your project, import this file in your git repo's toplevel,
-# then do "make -f git.mk". This modifies all Makefile.am files in
-# your project to -include git.mk. Remember to add that line to new
-# Makefile.am files you create in your project, or just rerun the
-# "make -f git.mk".
-#
-# This enables automatic .gitignore generation. If you need to ignore
-# more files, add them to the GITIGNOREFILES variable in your Makefile.am.
-# But think twice before doing that. If a file has to be in .gitignore,
-# chances are very high that it's a generated file and should be in one
-# of MOSTLYCLEANFILES, CLEANFILES, DISTCLEANFILES, or MAINTAINERCLEANFILES.
-#
-# The only case that you need to manually add a file to GITIGNOREFILES is
-# when remove files in one of mostlyclean-local, clean-local, distclean-local,
-# or maintainer-clean-local make targets.
-#
-# Note that for files like editor backup, etc, there are better places to
-# ignore them. See "man gitignore".
-#
-# If "make maintainer-clean" removes the files but they are not recognized
-# by this script (that is, if "git status" shows untracked files still), send
-# me the output of "git status" as well as your Makefile.am and Makefile for
-# the directories involved and I'll diagnose.
-#
-# For a list of toplevel files that should be in MAINTAINERCLEANFILES, see
-# Makefile.am.sample in the git.mk git repo.
-#
-# Don't EXTRA_DIST this file. It is supposed to only live in git clones,
-# not tarballs. It serves no useful purpose in tarballs and clutters the
-# build dir.
-#
-# This file knows how to handle autoconf, automake, libtool, gtk-doc,
-# gnome-doc-utils, yelp.m4, mallard, intltool, gsettings, dejagnu.
-#
-# This makefile provides the following targets:
-#
-# - all: "make all" will build all gitignore files.
-# - gitignore: makes all gitignore files in the current dir and subdirs.
-# - .gitignore: make gitignore file for the current dir.
-# - gitignore-recurse: makes all gitignore files in the subdirs.
-#
-# KNOWN ISSUES:
-#
-# - Recursive configure doesn't work as $(top_srcdir)/git.mk inside the
-# submodule doesn't find us. If you have configure.{in,ac} files in
-# subdirs, add a proxy git.mk file in those dirs that simply does:
-# "include $(top_srcdir)/../git.mk". Add more ..'s to your taste.
-# And add those files to git. See vte/gnome-pty-helper/git.mk for
-# example.
-#
-
-git-all: git-mk-install
-
-git-mk-install:
- @echo Installing git makefile
- @any_failed=; \
- find "`test -z "$(top_srcdir)" && echo . || echo "$(top_srcdir)"`" -name Makefile.am | while read x; do \
- if grep 'include .*/git.mk' $$x >/dev/null; then \
- echo $$x already includes git.mk; \
- else \
- failed=; \
- echo "Updating $$x"; \
- { cat $$x; \
- echo ''; \
- echo '-include $$(top_srcdir)/git.mk'; \
- } > $$x.tmp || failed=1; \
- if test x$$failed = x; then \
- mv $$x.tmp $$x || failed=1; \
- fi; \
- if test x$$failed = x; then : else \
- echo Failed updating $$x; >&2 \
- any_failed=1; \
- fi; \
- fi; done; test -z "$$any_failed"
-
-.PHONY: git-all git-mk-install
-
-
-### .gitignore generation
-
-$(srcdir)/.gitignore: Makefile.am $(top_srcdir)/git.mk
- $(AM_V_GEN) \
- { \
- if test "x$(DOC_MODULE)" = x -o "x$(DOC_MAIN_SGML_FILE)" = x; then :; else \
- for x in \
- $(DOC_MODULE)-decl-list.txt \
- $(DOC_MODULE)-decl.txt \
- tmpl/$(DOC_MODULE)-unused.sgml \
- "tmpl/*.bak" \
- xml html \
- ; do echo /$$x; done; \
- fi; \
- if test "x$(DOC_MODULE)$(DOC_ID)" = x -o "x$(DOC_LINGUAS)" = x; then :; else \
- for lc in $(DOC_LINGUAS); do \
- for x in \
- $(if $(DOC_MODULE),$(DOC_MODULE).xml) \
- $(DOC_PAGES) \
- $(DOC_INCLUDES) \
- ; do echo /$$lc/$$x; done; \
- done; \
- for x in \
- $(_DOC_OMF_ALL) \
- $(_DOC_DSK_ALL) \
- $(_DOC_HTML_ALL) \
- $(_DOC_MOFILES) \
- $(DOC_H_FILE) \
- "*/.xml2po.mo" \
- "*/*.omf.out" \
- ; do echo /$$x; done; \
- fi; \
- if test "x$(HELP_ID)" = x -o "x$(HELP_LINGUAS)" = x; then :; else \
- for lc in $(HELP_LINGUAS); do \
- for x in \
- $(HELP_FILES) \
- "$$lc.stamp" \
- "$$lc.mo" \
- ; do echo /$$lc/$$x; done; \
- done; \
- fi; \
- if test "x$(gsettings_SCHEMAS)" = x; then :; else \
- for x in \
- $(gsettings_SCHEMAS:.xml=.valid) \
- $(gsettings__enum_file) \
- ; do echo /$$x; done; \
- fi; \
- if test -f $(srcdir)/po/Makefile.in.in; then \
- for x in \
- po/Makefile.in.in \
- po/Makefile.in \
- po/Makefile \
- po/POTFILES \
- po/stamp-it \
- po/.intltool-merge-cache \
- "po/*.gmo" \
- "po/*.mo" \
- po/$(GETTEXT_PACKAGE).pot \
- intltool-extract.in \
- intltool-merge.in \
- intltool-update.in \
- ; do echo /$$x; done; \
- fi; \
- if test -f $(srcdir)/configure; then \
- for x in \
- autom4te.cache \
- configure \
- config.h \
- stamp-h1 \
- libtool \
- config.lt \
- ; do echo /$$x; done; \
- fi; \
- if test "x$(DEJATOOL)" = x; then :; else \
- for x in \
- $(DEJATOOL) \
- ; do echo /$$x.sum; echo /$$x.log; done; \
- echo /site.exp; \
- fi; \
- for x in \
- .gitignore \
- $(GITIGNOREFILES) \
- $(CLEANFILES) \
- $(PROGRAMS) $(check_PROGRAMS) $(EXTRA_PROGRAMS) \
- $(LIBRARIES) $(check_LIBRARIES) $(EXTRA_LIBRARIES) \
- $(LTLIBRARIES) $(check_LTLIBRARIES) $(EXTRA_LTLIBRARIES) \
- so_locations \
- .libs _libs \
- $(MOSTLYCLEANFILES) \
- "*.$(OBJEXT)" \
- "*.lo" \
- $(DISTCLEANFILES) \
- $(am__CONFIG_DISTCLEAN_FILES) \
- $(CONFIG_CLEAN_FILES) \
- TAGS ID GTAGS GRTAGS GSYMS GPATH tags \
- "*.tab.c" \
- $(MAINTAINERCLEANFILES) \
- $(BUILT_SOURCES) \
- $(DEPDIR) \
- Makefile \
- Makefile.in \
- "*.orig" \
- "*.rej" \
- "*.bak" \
- "*~" \
- ".*.sw[nop]" \
- ".dirstamp" \
- ; do echo /$$x; done; \
- } | \
- sed "s@^/`echo "$(srcdir)" | sed 's/\(.\)/[\1]/g'`/@/@" | \
- sed 's@/[.]/@/@g' | \
- LC_ALL=C sort | uniq > $@.tmp && \
- mv $@.tmp $@;
-
-all: $(srcdir)/.gitignore gitignore-recurse-maybe
-gitignore: $(srcdir)/.gitignore gitignore-recurse
-
-gitignore-recurse-maybe:
- @for subdir in $(DIST_SUBDIRS); do \
- case " $(SUBDIRS) " in \
- *" $$subdir "*) :;; \
- *) test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) .gitignore gitignore-recurse-maybe || echo "Skipping $$subdir");; \
- esac; \
- done
-gitignore-recurse:
- @for subdir in $(DIST_SUBDIRS); do \
- test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) .gitignore gitignore-recurse || echo "Skipping $$subdir"); \
- done
-
-maintainer-clean: gitignore-clean
-gitignore-clean:
- -rm -f $(srcdir)/.gitignore
-
-.PHONY: gitignore-clean gitignore gitignore-recurse gitignore-recurse-maybe
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-ot-shape-complex-indic-machine.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-ot-shape-complex-indic-machine.hh
deleted file mode 100644
index 1c0e7f224c1..00000000000
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.8/src/hb-ot-shape-complex-indic-machine.hh
+++ /dev/null
@@ -1,1322 +0,0 @@
-
-#line 1 "../../src/hb-ot-shape-complex-indic-machine.rl"
-/*
- * Copyright © 2011,2012 Google, Inc.
- *
- * This is part of HarfBuzz, a text shaping library.
- *
- * Permission is hereby granted, without written agreement and without
- * license or royalty fees, to use, copy, modify, and distribute this
- * software and its documentation for any purpose, provided that the
- * above copyright notice and the following two paragraphs appear in
- * all copies of this software.
- *
- * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
- * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
- * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
- * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
- * DAMAGE.
- *
- * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
- * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
- * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
- * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
- *
- * Google Author(s): Behdad Esfahbod
- */
-
-#ifndef HB_OT_SHAPE_COMPLEX_INDIC_MACHINE_HH
-#define HB_OT_SHAPE_COMPLEX_INDIC_MACHINE_HH
-
-#include "hb-private.hh"
-
-
-#line 36 "../../src/hb-ot-shape-complex-indic-machine.hh.tmp"
-static const unsigned char _indic_syllable_machine_trans_keys[] = {
- 1u, 16u, 13u, 13u, 5u, 7u, 5u, 7u, 7u, 7u, 5u, 7u, 5u, 7u, 7u, 7u,
- 5u, 7u, 5u, 7u, 7u, 7u, 5u, 7u, 5u, 7u, 7u, 7u, 4u, 4u, 6u, 6u,
- 16u, 16u, 4u, 7u, 6u, 6u, 16u, 16u, 4u, 7u, 6u, 6u, 16u, 16u, 4u, 7u,
- 6u, 6u, 16u, 16u, 4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u,
- 4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u, 1u, 16u, 13u, 13u, 5u, 7u, 5u, 7u,
- 7u, 7u, 5u, 7u, 5u, 7u, 7u, 7u, 5u, 7u, 5u, 7u, 7u, 7u, 5u, 7u,
- 5u, 7u, 7u, 7u, 4u, 4u, 6u, 6u, 16u, 16u, 4u, 7u, 6u, 6u, 16u, 16u,
- 4u, 7u, 6u, 6u, 16u, 16u, 4u, 7u, 6u, 6u, 16u, 16u, 4u, 14u, 4u, 14u,
- 4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u,
- 1u, 16u, 13u, 13u, 5u, 7u, 5u, 7u, 7u, 7u, 5u, 7u, 5u, 7u, 7u, 7u,
- 5u, 7u, 5u, 7u, 7u, 7u, 5u, 7u, 5u, 7u, 7u, 7u, 4u, 4u, 6u, 6u,
- 16u, 16u, 4u, 7u, 6u, 6u, 16u, 16u, 4u, 7u, 6u, 6u, 16u, 16u, 4u, 7u,
- 6u, 6u, 16u, 16u, 4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u,
- 4u, 14u, 4u, 14u, 4u, 14u, 1u, 16u, 13u, 13u, 5u, 7u, 5u, 7u, 7u, 7u,
- 5u, 7u, 5u, 7u, 7u, 7u, 5u, 7u, 5u, 7u, 7u, 7u, 5u, 7u, 5u, 7u,
- 7u, 7u, 4u, 4u, 6u, 6u, 16u, 16u, 4u, 7u, 6u, 6u, 16u, 16u, 4u, 7u,
- 6u, 6u, 16u, 16u, 4u, 7u, 6u, 6u, 16u, 16u, 4u, 14u, 4u, 14u, 4u, 14u,
- 4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u, 1u, 16u,
- 3u, 17u, 3u, 14u, 4u, 14u, 1u, 16u, 3u, 17u, 3u, 14u, 4u, 14u, 1u, 16u,
- 3u, 17u, 3u, 14u, 4u, 14u, 1u, 16u, 3u, 17u, 3u, 14u, 4u, 14u, 1u, 16u,
- 3u, 17u, 3u, 14u, 4u, 14u, 5u, 14u, 8u, 14u, 5u, 9u, 9u, 9u, 9u, 9u,
- 3u, 17u, 3u, 9u, 8u, 9u, 3u, 9u, 3u, 13u, 3u, 14u, 3u, 14u, 4u, 14u,
- 5u, 14u, 3u, 14u, 4u, 14u, 5u, 14u, 3u, 14u, 4u, 14u, 5u, 14u, 3u, 14u,
- 4u, 14u, 6u, 14u, 3u, 14u, 4u, 14u, 1u, 16u, 3u, 14u, 3u, 14u, 1u, 16u,
- 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u, 3u, 14u, 3u, 14u, 1u, 16u, 1u, 16u,
- 1u, 16u, 1u, 16u, 1u, 16u, 3u, 14u, 3u, 14u, 1u, 16u, 1u, 16u, 1u, 16u,
- 1u, 16u, 1u, 16u, 3u, 14u, 3u, 14u, 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u,
- 1u, 16u, 3u, 14u, 3u, 14u, 3u, 14u, 3u, 14u, 4u, 14u, 1u, 16u, 3u, 17u,
- 3u, 14u, 4u, 14u, 1u, 16u, 3u, 17u, 3u, 14u, 4u, 14u, 1u, 16u, 3u, 17u,
- 3u, 14u, 4u, 14u, 1u, 16u, 3u, 17u, 3u, 14u, 4u, 14u, 5u, 14u, 8u, 14u,
- 5u, 9u, 9u, 9u, 9u, 9u, 3u, 17u, 3u, 9u, 8u, 9u, 3u, 9u, 3u, 13u,
- 3u, 14u, 3u, 14u, 4u, 14u, 5u, 14u, 3u, 14u, 4u, 14u, 5u, 14u, 3u, 14u,
- 4u, 14u, 5u, 14u, 3u, 14u, 4u, 14u, 6u, 14u, 3u, 14u, 1u, 16u, 3u, 14u,
- 3u, 14u, 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u, 3u, 14u, 3u, 14u,
- 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u, 3u, 14u, 3u, 14u, 1u, 16u,
- 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u, 3u, 14u, 3u, 14u, 1u, 16u, 1u, 16u,
- 1u, 16u, 1u, 16u, 4u, 14u, 1u, 16u, 3u, 14u, 3u, 14u, 4u, 14u, 1u, 16u,
- 3u, 17u, 3u, 14u, 4u, 14u, 1u, 16u, 3u, 17u, 3u, 14u, 4u, 14u, 1u, 16u,
- 3u, 17u, 3u, 14u, 4u, 14u, 1u, 16u, 3u, 17u, 3u, 14u, 4u, 14u, 5u, 14u,
- 8u, 14u, 5u, 9u, 9u, 9u, 9u, 9u, 3u, 17u, 3u, 9u, 8u, 9u, 3u, 9u,
- 3u, 13u, 3u, 14u, 3u, 14u, 4u, 14u, 5u, 14u, 3u, 14u, 4u, 14u, 5u, 14u,
- 3u, 14u, 4u, 14u, 5u, 14u, 3u, 14u, 4u, 14u, 6u, 14u, 3u, 14u, 1u, 16u,
- 3u, 14u, 3u, 14u, 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u, 3u, 14u,
- 3u, 14u, 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u, 3u, 14u, 3u, 14u,
- 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u, 3u, 14u, 3u, 14u, 1u, 16u,
- 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u, 4u, 14u, 3u, 14u, 4u, 14u, 3u, 14u,
- 3u, 14u, 4u, 14u, 1u, 16u, 3u, 17u, 3u, 14u, 4u, 14u, 1u, 16u, 3u, 17u,
- 3u, 14u, 4u, 14u, 1u, 16u, 3u, 17u, 3u, 14u, 4u, 14u, 1u, 16u, 3u, 17u,
- 3u, 14u, 4u, 14u, 5u, 14u, 8u, 14u, 5u, 9u, 9u, 9u, 9u, 9u, 3u, 17u,
- 3u, 9u, 8u, 9u, 3u, 9u, 3u, 13u, 3u, 14u, 3u, 14u, 4u, 14u, 5u, 14u,
- 3u, 14u, 4u, 14u, 5u, 14u, 3u, 14u, 4u, 14u, 5u, 14u, 3u, 14u, 4u, 14u,
- 6u, 14u, 3u, 14u, 1u, 16u, 3u, 14u, 3u, 14u, 1u, 16u, 1u, 16u, 1u, 16u,
- 1u, 16u, 1u, 16u, 3u, 14u, 3u, 14u, 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u,
- 1u, 16u, 3u, 14u, 3u, 14u, 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u,
- 3u, 14u, 3u, 14u, 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u, 3u, 14u,
- 1u, 16u, 3u, 17u, 1u, 16u, 0
-};
-
-static const char _indic_syllable_machine_key_spans[] = {
- 16, 1, 3, 3, 1, 3, 3, 1,
- 3, 3, 1, 3, 3, 1, 1, 1,
- 1, 4, 1, 1, 4, 1, 1, 4,
- 1, 1, 11, 11, 11, 11, 11, 11,
- 11, 11, 11, 11, 16, 1, 3, 3,
- 1, 3, 3, 1, 3, 3, 1, 3,
- 3, 1, 1, 1, 1, 4, 1, 1,
- 4, 1, 1, 4, 1, 1, 11, 11,
- 11, 11, 11, 11, 11, 11, 11, 11,
- 16, 1, 3, 3, 1, 3, 3, 1,
- 3, 3, 1, 3, 3, 1, 1, 1,
- 1, 4, 1, 1, 4, 1, 1, 4,
- 1, 1, 11, 11, 11, 11, 11, 11,
- 11, 11, 11, 16, 1, 3, 3, 1,
- 3, 3, 1, 3, 3, 1, 3, 3,
- 1, 1, 1, 1, 4, 1, 1, 4,
- 1, 1, 4, 1, 1, 11, 11, 11,
- 11, 11, 11, 11, 11, 11, 11, 16,
- 15, 12, 11, 16, 15, 12, 11, 16,
- 15, 12, 11, 16, 15, 12, 11, 16,
- 15, 12, 11, 10, 7, 5, 1, 1,
- 15, 7, 2, 7, 11, 12, 12, 11,
- 10, 12, 11, 10, 12, 11, 10, 12,
- 11, 9, 12, 11, 16, 12, 12, 16,
- 16, 16, 16, 16, 12, 12, 16, 16,
- 16, 16, 16, 12, 12, 16, 16, 16,
- 16, 16, 12, 12, 16, 16, 16, 16,
- 16, 12, 12, 12, 12, 11, 16, 15,
- 12, 11, 16, 15, 12, 11, 16, 15,
- 12, 11, 16, 15, 12, 11, 10, 7,
- 5, 1, 1, 15, 7, 2, 7, 11,
- 12, 12, 11, 10, 12, 11, 10, 12,
- 11, 10, 12, 11, 9, 12, 16, 12,
- 12, 16, 16, 16, 16, 16, 12, 12,
- 16, 16, 16, 16, 16, 12, 12, 16,
- 16, 16, 16, 16, 12, 12, 16, 16,
- 16, 16, 11, 16, 12, 12, 11, 16,
- 15, 12, 11, 16, 15, 12, 11, 16,
- 15, 12, 11, 16, 15, 12, 11, 10,
- 7, 5, 1, 1, 15, 7, 2, 7,
- 11, 12, 12, 11, 10, 12, 11, 10,
- 12, 11, 10, 12, 11, 9, 12, 16,
- 12, 12, 16, 16, 16, 16, 16, 12,
- 12, 16, 16, 16, 16, 16, 12, 12,
- 16, 16, 16, 16, 16, 12, 12, 16,
- 16, 16, 16, 16, 11, 12, 11, 12,
- 12, 11, 16, 15, 12, 11, 16, 15,
- 12, 11, 16, 15, 12, 11, 16, 15,
- 12, 11, 10, 7, 5, 1, 1, 15,
- 7, 2, 7, 11, 12, 12, 11, 10,
- 12, 11, 10, 12, 11, 10, 12, 11,
- 9, 12, 16, 12, 12, 16, 16, 16,
- 16, 16, 12, 12, 16, 16, 16, 16,
- 16, 12, 12, 16, 16, 16, 16, 16,
- 12, 12, 16, 16, 16, 16, 16, 12,
- 16, 15, 16
-};
-
-static const short _indic_syllable_machine_index_offsets[] = {
- 0, 17, 19, 23, 27, 29, 33, 37,
- 39, 43, 47, 49, 53, 57, 59, 61,
- 63, 65, 70, 72, 74, 79, 81, 83,
- 88, 90, 92, 104, 116, 128, 140, 152,
- 164, 176, 188, 200, 212, 229, 231, 235,
- 239, 241, 245, 249, 251, 255, 259, 261,
- 265, 269, 271, 273, 275, 277, 282, 284,
- 286, 291, 293, 295, 300, 302, 304, 316,
- 328, 340, 352, 364, 376, 388, 400, 412,
- 424, 441, 443, 447, 451, 453, 457, 461,
- 463, 467, 471, 473, 477, 481, 483, 485,
- 487, 489, 494, 496, 498, 503, 505, 507,
- 512, 514, 516, 528, 540, 552, 564, 576,
- 588, 600, 612, 624, 641, 643, 647, 651,
- 653, 657, 661, 663, 667, 671, 673, 677,
- 681, 683, 685, 687, 689, 694, 696, 698,
- 703, 705, 707, 712, 714, 716, 728, 740,
- 752, 764, 776, 788, 800, 812, 824, 836,
- 853, 869, 882, 894, 911, 927, 940, 952,
- 969, 985, 998, 1010, 1027, 1043, 1056, 1068,
- 1085, 1101, 1114, 1126, 1137, 1145, 1151, 1153,
- 1155, 1171, 1179, 1182, 1190, 1202, 1215, 1228,
- 1240, 1251, 1264, 1276, 1287, 1300, 1312, 1323,
- 1336, 1348, 1358, 1371, 1383, 1400, 1413, 1426,
- 1443, 1460, 1477, 1494, 1511, 1524, 1537, 1554,
- 1571, 1588, 1605, 1622, 1635, 1648, 1665, 1682,
- 1699, 1716, 1733, 1746, 1759, 1776, 1793, 1810,
- 1827, 1844, 1857, 1870, 1883, 1896, 1908, 1925,
- 1941, 1954, 1966, 1983, 1999, 2012, 2024, 2041,
- 2057, 2070, 2082, 2099, 2115, 2128, 2140, 2151,
- 2159, 2165, 2167, 2169, 2185, 2193, 2196, 2204,
- 2216, 2229, 2242, 2254, 2265, 2278, 2290, 2301,
- 2314, 2326, 2337, 2350, 2362, 2372, 2385, 2402,
- 2415, 2428, 2445, 2462, 2479, 2496, 2513, 2526,
- 2539, 2556, 2573, 2590, 2607, 2624, 2637, 2650,
- 2667, 2684, 2701, 2718, 2735, 2748, 2761, 2778,
- 2795, 2812, 2829, 2841, 2858, 2871, 2884, 2896,
- 2913, 2929, 2942, 2954, 2971, 2987, 3000, 3012,
- 3029, 3045, 3058, 3070, 3087, 3103, 3116, 3128,
- 3139, 3147, 3153, 3155, 3157, 3173, 3181, 3184,
- 3192, 3204, 3217, 3230, 3242, 3253, 3266, 3278,
- 3289, 3302, 3314, 3325, 3338, 3350, 3360, 3373,
- 3390, 3403, 3416, 3433, 3450, 3467, 3484, 3501,
- 3514, 3527, 3544, 3561, 3578, 3595, 3612, 3625,
- 3638, 3655, 3672, 3689, 3706, 3723, 3736, 3749,
- 3766, 3783, 3800, 3817, 3834, 3846, 3859, 3871,
- 3884, 3897, 3909, 3926, 3942, 3955, 3967, 3984,
- 4000, 4013, 4025, 4042, 4058, 4071, 4083, 4100,
- 4116, 4129, 4141, 4152, 4160, 4166, 4168, 4170,
- 4186, 4194, 4197, 4205, 4217, 4230, 4243, 4255,
- 4266, 4279, 4291, 4302, 4315, 4327, 4338, 4351,
- 4363, 4373, 4386, 4403, 4416, 4429, 4446, 4463,
- 4480, 4497, 4514, 4527, 4540, 4557, 4574, 4591,
- 4608, 4625, 4638, 4651, 4668, 4685, 4702, 4719,
- 4736, 4749, 4762, 4779, 4796, 4813, 4830, 4847,
- 4860, 4877, 4893
-};
-
-static const short _indic_syllable_machine_indicies[] = {
- 1, 2, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 1,
- 0, 3, 0, 4, 4, 5, 0, 6,
- 6, 5, 0, 5, 0, 7, 7, 8,
- 0, 9, 9, 8, 0, 8, 0, 10,
- 10, 11, 0, 12, 12, 11, 0, 11,
- 0, 13, 13, 14, 0, 15, 15, 14,
- 0, 14, 0, 16, 0, 17, 0, 18,
- 0, 19, 13, 13, 14, 0, 20, 0,
- 21, 0, 22, 10, 10, 11, 0, 23,
- 0, 24, 0, 25, 7, 7, 8, 0,
- 26, 0, 27, 0, 28, 4, 4, 5,
- 0, 0, 0, 0, 0, 0, 28, 0,
- 28, 4, 4, 5, 0, 0, 0, 0,
- 0, 29, 28, 0, 30, 4, 4, 5,
- 0, 0, 0, 0, 0, 0, 30, 0,
- 30, 4, 4, 5, 0, 0, 0, 0,
- 0, 31, 30, 0, 32, 4, 4, 5,
- 0, 0, 0, 0, 0, 0, 32, 0,
- 32, 4, 4, 5, 0, 0, 0, 0,
- 0, 33, 32, 0, 34, 4, 4, 5,
- 0, 0, 0, 0, 0, 0, 34, 0,
- 34, 4, 4, 5, 0, 0, 0, 0,
- 0, 35, 34, 0, 36, 4, 4, 5,
- 0, 0, 0, 0, 0, 0, 36, 0,
- 36, 4, 4, 5, 0, 0, 0, 0,
- 0, 37, 36, 0, 39, 40, 38, 38,
- 38, 38, 38, 38, 38, 38, 38, 38,
- 38, 38, 38, 39, 38, 41, 38, 42,
- 42, 43, 38, 44, 44, 43, 38, 43,
- 38, 45, 45, 46, 38, 47, 47, 46,
- 38, 46, 38, 48, 48, 49, 38, 50,
- 50, 49, 38, 49, 38, 51, 51, 52,
- 38, 53, 53, 52, 38, 52, 38, 54,
- 38, 55, 38, 56, 38, 57, 51, 51,
- 52, 38, 58, 38, 59, 38, 60, 48,
- 48, 49, 38, 61, 38, 62, 38, 63,
- 45, 45, 46, 38, 64, 38, 65, 38,
- 66, 42, 42, 43, 38, 38, 38, 38,
- 38, 38, 66, 38, 66, 42, 42, 43,
- 38, 38, 38, 38, 38, 67, 66, 38,
- 68, 42, 42, 43, 38, 38, 38, 38,
- 38, 38, 68, 38, 68, 42, 42, 43,
- 38, 38, 38, 38, 38, 69, 68, 38,
- 70, 42, 42, 43, 38, 38, 38, 38,
- 38, 38, 70, 38, 70, 42, 42, 43,
- 38, 38, 38, 38, 38, 71, 70, 38,
- 72, 42, 42, 43, 38, 38, 38, 38,
- 38, 38, 72, 38, 72, 42, 42, 43,
- 38, 38, 38, 38, 38, 73, 72, 38,
- 74, 42, 42, 43, 38, 38, 38, 38,
- 38, 38, 74, 38, 74, 42, 42, 43,
- 38, 38, 38, 38, 38, 75, 74, 38,
- 77, 78, 76, 76, 76, 76, 76, 76,
- 76, 76, 76, 76, 76, 76, 76, 77,
- 76, 79, 76, 80, 80, 81, 76, 83,
- 83, 81, 82, 81, 82, 84, 84, 85,
- 76, 86, 86, 85, 76, 85, 76, 87,
- 87, 88, 76, 89, 89, 88, 76, 88,
- 76, 90, 90, 91, 76, 92, 92, 91,
- 76, 91, 76, 93, 76, 94, 76, 95,
- 76, 96, 90, 90, 91, 76, 97, 76,
- 98, 76, 99, 87, 87, 88, 76, 100,
- 76, 101, 76, 102, 84, 84, 85, 76,
- 103, 76, 104, 76, 105, 80, 80, 81,
- 76, 76, 76, 76, 76, 76, 105, 76,
- 105, 80, 80, 81, 76, 76, 76, 76,
- 76, 106, 105, 76, 107, 80, 80, 81,
- 76, 76, 76, 76, 76, 76, 107, 76,
- 107, 80, 80, 81, 76, 76, 76, 76,
- 76, 108, 107, 76, 109, 80, 80, 81,
- 76, 76, 76, 76, 76, 76, 109, 76,
- 109, 80, 80, 81, 76, 76, 76, 76,
- 76, 110, 109, 76, 111, 80, 80, 81,
- 76, 76, 76, 76, 76, 76, 111, 76,
- 111, 80, 80, 81, 76, 76, 76, 76,
- 76, 112, 111, 76, 113, 80, 80, 81,
- 76, 76, 76, 76, 76, 76, 113, 76,
- 115, 116, 114, 114, 114, 114, 114, 114,
- 114, 114, 114, 114, 114, 114, 114, 115,
- 114, 117, 114, 118, 118, 119, 114, 120,
- 120, 119, 114, 119, 114, 121, 121, 122,
- 114, 123, 123, 122, 114, 122, 114, 124,
- 124, 125, 114, 126, 126, 125, 114, 125,
- 114, 127, 127, 128, 114, 129, 129, 128,
- 114, 128, 114, 130, 114, 131, 114, 132,
- 114, 133, 127, 127, 128, 114, 134, 114,
- 135, 114, 136, 124, 124, 125, 114, 137,
- 114, 138, 114, 139, 121, 121, 122, 114,
- 140, 114, 141, 114, 142, 118, 118, 119,
- 114, 114, 114, 114, 114, 114, 142, 114,
- 142, 118, 118, 119, 114, 114, 114, 114,
- 114, 143, 142, 114, 144, 118, 118, 119,
- 114, 114, 114, 114, 114, 114, 144, 114,
- 144, 118, 118, 119, 114, 114, 114, 114,
- 114, 145, 144, 114, 146, 118, 118, 119,
- 114, 114, 114, 114, 114, 114, 146, 114,
- 146, 118, 118, 119, 114, 114, 114, 114,
- 114, 147, 146, 114, 148, 118, 118, 119,
- 114, 114, 114, 114, 114, 114, 148, 114,
- 148, 118, 118, 119, 114, 114, 114, 114,
- 114, 149, 148, 114, 150, 118, 118, 119,
- 114, 114, 114, 114, 114, 114, 150, 114,
- 150, 118, 118, 119, 114, 114, 114, 114,
- 114, 151, 150, 114, 153, 154, 155, 156,
- 157, 158, 81, 159, 160, 152, 161, 161,
- 162, 163, 164, 165, 152, 167, 168, 169,
- 170, 5, 171, 172, 173, 166, 166, 37,
- 174, 166, 166, 153, 166, 175, 168, 176,
- 176, 5, 171, 172, 173, 166, 166, 166,
- 174, 166, 168, 176, 176, 5, 171, 172,
- 173, 166, 166, 166, 174, 166, 177, 166,
- 166, 166, 18, 178, 166, 171, 172, 166,
- 166, 166, 166, 179, 166, 177, 166, 180,
- 181, 182, 183, 5, 171, 172, 173, 166,
- 166, 35, 184, 166, 166, 177, 166, 185,
- 181, 186, 186, 5, 171, 172, 173, 166,
- 166, 166, 184, 166, 181, 186, 186, 5,
- 171, 172, 173, 166, 166, 166, 184, 166,
- 187, 166, 166, 166, 18, 188, 166, 171,
- 172, 166, 166, 166, 166, 179, 166, 187,
- 166, 189, 190, 191, 192, 5, 171, 172,
- 173, 166, 166, 33, 193, 166, 166, 187,
- 166, 194, 190, 195, 195, 5, 171, 172,
- 173, 166, 166, 166, 193, 166, 190, 195,
- 195, 5, 171, 172, 173, 166, 166, 166,
- 193, 166, 196, 166, 166, 166, 18, 197,
- 166, 171, 172, 166, 166, 166, 166, 179,
- 166, 196, 166, 198, 199, 200, 201, 5,
- 171, 172, 173, 166, 166, 31, 202, 166,
- 166, 196, 166, 203, 199, 204, 204, 5,
- 171, 172, 173, 166, 166, 166, 202, 166,
- 199, 204, 204, 5, 171, 172, 173, 166,
- 166, 166, 202, 166, 205, 166, 166, 166,
- 18, 206, 166, 171, 172, 166, 166, 166,
- 166, 179, 166, 205, 166, 207, 208, 209,
- 210, 5, 171, 172, 173, 166, 166, 29,
- 211, 166, 166, 205, 166, 212, 208, 213,
- 213, 5, 171, 172, 173, 166, 166, 166,
- 211, 166, 208, 213, 213, 5, 171, 172,
- 173, 166, 166, 166, 211, 166, 18, 214,
- 166, 171, 172, 166, 166, 166, 166, 179,
- 166, 171, 172, 166, 166, 166, 166, 179,
- 166, 215, 166, 166, 166, 172, 166, 172,
- 166, 216, 166, 217, 166, 218, 219, 166,
- 171, 172, 166, 166, 166, 3, 166, 166,
- 166, 1, 166, 2, 166, 166, 166, 166,
- 171, 172, 166, 171, 172, 166, 217, 166,
- 166, 166, 166, 171, 172, 166, 217, 166,
- 218, 166, 166, 171, 172, 166, 166, 166,
- 3, 166, 18, 166, 220, 220, 5, 171,
- 172, 166, 166, 166, 166, 179, 166, 221,
- 27, 222, 223, 8, 171, 172, 166, 166,
- 166, 166, 179, 166, 27, 222, 223, 8,
- 171, 172, 166, 166, 166, 166, 179, 166,
- 222, 222, 8, 171, 172, 166, 166, 166,
- 166, 179, 166, 224, 24, 225, 226, 11,
- 171, 172, 166, 166, 166, 166, 179, 166,
- 24, 225, 226, 11, 171, 172, 166, 166,
- 166, 166, 179, 166, 225, 225, 11, 171,
- 172, 166, 166, 166, 166, 179, 166, 227,
- 21, 228, 229, 14, 171, 172, 166, 166,
- 166, 166, 179, 166, 21, 228, 229, 14,
- 171, 172, 166, 166, 166, 166, 179, 166,
- 228, 228, 14, 171, 172, 166, 166, 166,
- 166, 179, 166, 230, 18, 166, 231, 166,
- 171, 172, 166, 166, 166, 166, 179, 166,
- 18, 166, 231, 166, 171, 172, 166, 166,
- 166, 166, 179, 166, 232, 166, 171, 172,
- 166, 166, 166, 166, 179, 166, 18, 166,
- 166, 166, 166, 171, 172, 166, 166, 166,
- 166, 179, 166, 208, 213, 213, 5, 171,
- 172, 166, 166, 166, 166, 211, 166, 1,
- 2, 166, 166, 18, 214, 166, 171, 172,
- 166, 166, 166, 166, 179, 166, 1, 166,
- 207, 208, 213, 213, 5, 171, 172, 173,
- 166, 166, 166, 211, 166, 207, 208, 209,
- 213, 5, 171, 172, 173, 166, 166, 29,
- 211, 166, 205, 166, 233, 166, 220, 220,
- 5, 171, 172, 166, 166, 166, 166, 179,
- 166, 205, 166, 205, 166, 166, 166, 166,
- 166, 166, 171, 172, 166, 166, 166, 166,
- 179, 166, 205, 166, 205, 166, 166, 166,
- 166, 234, 166, 171, 172, 166, 166, 166,
- 166, 179, 166, 205, 166, 205, 166, 233,
- 166, 166, 166, 166, 171, 172, 166, 166,
- 166, 166, 179, 166, 205, 166, 205, 2,
- 166, 166, 18, 206, 166, 171, 172, 166,
- 166, 166, 166, 179, 166, 205, 166, 198,
- 199, 204, 204, 5, 171, 172, 173, 166,
- 166, 166, 202, 166, 198, 199, 200, 204,
- 5, 171, 172, 173, 166, 166, 31, 202,
- 166, 196, 166, 235, 166, 220, 220, 5,
- 171, 172, 166, 166, 166, 166, 179, 166,
- 196, 166, 196, 166, 166, 166, 166, 166,
- 166, 171, 172, 166, 166, 166, 166, 179,
- 166, 196, 166, 196, 166, 166, 166, 166,
- 236, 166, 171, 172, 166, 166, 166, 166,
- 179, 166, 196, 166, 196, 166, 235, 166,
- 166, 166, 166, 171, 172, 166, 166, 166,
- 166, 179, 166, 196, 166, 196, 2, 166,
- 166, 18, 197, 166, 171, 172, 166, 166,
- 166, 166, 179, 166, 196, 166, 189, 190,
- 195, 195, 5, 171, 172, 173, 166, 166,
- 166, 193, 166, 189, 190, 191, 195, 5,
- 171, 172, 173, 166, 166, 33, 193, 166,
- 187, 166, 237, 166, 220, 220, 5, 171,
- 172, 166, 166, 166, 166, 179, 166, 187,
- 166, 187, 166, 166, 166, 166, 166, 166,
- 171, 172, 166, 166, 166, 166, 179, 166,
- 187, 166, 187, 166, 166, 166, 166, 238,
- 166, 171, 172, 166, 166, 166, 166, 179,
- 166, 187, 166, 187, 166, 237, 166, 166,
- 166, 166, 171, 172, 166, 166, 166, 166,
- 179, 166, 187, 166, 187, 2, 166, 166,
- 18, 188, 166, 171, 172, 166, 166, 166,
- 166, 179, 166, 187, 166, 180, 181, 186,
- 186, 5, 171, 172, 173, 166, 166, 166,
- 184, 166, 180, 181, 182, 186, 5, 171,
- 172, 173, 166, 166, 35, 184, 166, 177,
- 166, 239, 166, 220, 220, 5, 171, 172,
- 166, 166, 166, 166, 179, 166, 177, 166,
- 177, 166, 166, 166, 166, 166, 166, 171,
- 172, 166, 166, 166, 166, 179, 166, 177,
- 166, 177, 166, 166, 166, 166, 240, 166,
- 171, 172, 166, 166, 166, 166, 179, 166,
- 177, 166, 177, 166, 239, 166, 166, 166,
- 166, 171, 172, 166, 166, 166, 166, 179,
- 166, 177, 166, 177, 2, 166, 166, 18,
- 178, 166, 171, 172, 166, 166, 166, 166,
- 179, 166, 177, 166, 167, 168, 176, 176,
- 5, 171, 172, 173, 166, 166, 166, 174,
- 166, 167, 168, 169, 176, 5, 171, 172,
- 173, 166, 166, 37, 174, 166, 242, 243,
- 244, 245, 43, 246, 247, 241, 241, 241,
- 75, 248, 241, 249, 243, 250, 245, 43,
- 246, 247, 241, 241, 241, 241, 248, 241,
- 243, 250, 245, 43, 246, 247, 241, 241,
- 241, 241, 248, 241, 251, 241, 241, 241,
- 56, 252, 241, 246, 247, 241, 241, 241,
- 241, 253, 241, 251, 241, 254, 255, 256,
- 257, 43, 246, 247, 241, 241, 241, 73,
- 258, 241, 241, 251, 241, 259, 255, 260,
- 260, 43, 246, 247, 241, 241, 241, 241,
- 258, 241, 255, 260, 260, 43, 246, 247,
- 241, 241, 241, 241, 258, 241, 261, 241,
- 241, 241, 56, 262, 241, 246, 247, 241,
- 241, 241, 241, 253, 241, 261, 241, 263,
- 264, 265, 266, 43, 246, 247, 241, 241,
- 241, 71, 267, 241, 241, 261, 241, 268,
- 264, 269, 269, 43, 246, 247, 241, 241,
- 241, 241, 267, 241, 264, 269, 269, 43,
- 246, 247, 241, 241, 241, 241, 267, 241,
- 270, 241, 241, 241, 56, 271, 241, 246,
- 247, 241, 241, 241, 241, 253, 241, 270,
- 241, 272, 273, 274, 275, 43, 246, 247,
- 241, 241, 241, 69, 276, 241, 241, 270,
- 241, 277, 273, 278, 278, 43, 246, 247,
- 241, 241, 241, 241, 276, 241, 273, 278,
- 278, 43, 246, 247, 241, 241, 241, 241,
- 276, 241, 279, 241, 241, 241, 56, 280,
- 241, 246, 247, 241, 241, 241, 241, 253,
- 241, 279, 241, 281, 282, 283, 284, 43,
- 246, 247, 241, 241, 241, 67, 285, 241,
- 241, 279, 241, 286, 282, 287, 287, 43,
- 246, 247, 241, 241, 241, 241, 285, 241,
- 282, 287, 287, 43, 246, 247, 241, 241,
- 241, 241, 285, 241, 56, 288, 241, 246,
- 247, 241, 241, 241, 241, 253, 241, 246,
- 247, 241, 241, 241, 241, 253, 241, 289,
- 241, 241, 241, 247, 241, 247, 241, 290,
- 241, 291, 241, 292, 293, 241, 246, 247,
- 241, 241, 241, 41, 241, 241, 241, 39,
- 241, 40, 241, 241, 241, 241, 246, 247,
- 241, 246, 247, 241, 291, 241, 241, 241,
- 241, 246, 247, 241, 291, 241, 292, 241,
- 241, 246, 247, 241, 241, 241, 41, 241,
- 56, 241, 294, 294, 43, 246, 247, 241,
- 241, 241, 241, 253, 241, 295, 65, 296,
- 297, 46, 246, 247, 241, 241, 241, 241,
- 253, 241, 65, 296, 297, 46, 246, 247,
- 241, 241, 241, 241, 253, 241, 296, 296,
- 46, 246, 247, 241, 241, 241, 241, 253,
- 241, 298, 62, 299, 300, 49, 246, 247,
- 241, 241, 241, 241, 253, 241, 62, 299,
- 300, 49, 246, 247, 241, 241, 241, 241,
- 253, 241, 299, 299, 49, 246, 247, 241,
- 241, 241, 241, 253, 241, 301, 59, 302,
- 303, 52, 246, 247, 241, 241, 241, 241,
- 253, 241, 59, 302, 303, 52, 246, 247,
- 241, 241, 241, 241, 253, 241, 302, 302,
- 52, 246, 247, 241, 241, 241, 241, 253,
- 241, 304, 56, 241, 305, 241, 246, 247,
- 241, 241, 241, 241, 253, 241, 56, 241,
- 305, 241, 246, 247, 241, 241, 241, 241,
- 253, 241, 306, 241, 246, 247, 241, 241,
- 241, 241, 253, 241, 56, 241, 241, 241,
- 241, 246, 247, 241, 241, 241, 241, 253,
- 241, 39, 40, 241, 241, 56, 288, 241,
- 246, 247, 241, 241, 241, 241, 253, 241,
- 39, 241, 281, 282, 287, 287, 43, 246,
- 247, 241, 241, 241, 241, 285, 241, 281,
- 282, 283, 287, 43, 246, 247, 241, 241,
- 241, 67, 285, 241, 279, 241, 307, 241,
- 294, 294, 43, 246, 247, 241, 241, 241,
- 241, 253, 241, 279, 241, 279, 241, 241,
- 241, 241, 241, 241, 246, 247, 241, 241,
- 241, 241, 253, 241, 279, 241, 279, 241,
- 241, 241, 241, 308, 241, 246, 247, 241,
- 241, 241, 241, 253, 241, 279, 241, 279,
- 241, 307, 241, 241, 241, 241, 246, 247,
- 241, 241, 241, 241, 253, 241, 279, 241,
- 279, 40, 241, 241, 56, 280, 241, 246,
- 247, 241, 241, 241, 241, 253, 241, 279,
- 241, 272, 273, 278, 278, 43, 246, 247,
- 241, 241, 241, 241, 276, 241, 272, 273,
- 274, 278, 43, 246, 247, 241, 241, 241,
- 69, 276, 241, 270, 241, 309, 241, 294,
- 294, 43, 246, 247, 241, 241, 241, 241,
- 253, 241, 270, 241, 270, 241, 241, 241,
- 241, 241, 241, 246, 247, 241, 241, 241,
- 241, 253, 241, 270, 241, 270, 241, 241,
- 241, 241, 310, 241, 246, 247, 241, 241,
- 241, 241, 253, 241, 270, 241, 270, 241,
- 309, 241, 241, 241, 241, 246, 247, 241,
- 241, 241, 241, 253, 241, 270, 241, 270,
- 40, 241, 241, 56, 271, 241, 246, 247,
- 241, 241, 241, 241, 253, 241, 270, 241,
- 263, 264, 269, 269, 43, 246, 247, 241,
- 241, 241, 241, 267, 241, 263, 264, 265,
- 269, 43, 246, 247, 241, 241, 241, 71,
- 267, 241, 261, 241, 311, 241, 294, 294,
- 43, 246, 247, 241, 241, 241, 241, 253,
- 241, 261, 241, 261, 241, 241, 241, 241,
- 241, 241, 246, 247, 241, 241, 241, 241,
- 253, 241, 261, 241, 261, 241, 241, 241,
- 241, 312, 241, 246, 247, 241, 241, 241,
- 241, 253, 241, 261, 241, 261, 241, 311,
- 241, 241, 241, 241, 246, 247, 241, 241,
- 241, 241, 253, 241, 261, 241, 261, 40,
- 241, 241, 56, 262, 241, 246, 247, 241,
- 241, 241, 241, 253, 241, 261, 241, 254,
- 255, 260, 260, 43, 246, 247, 241, 241,
- 241, 241, 258, 241, 254, 255, 256, 260,
- 43, 246, 247, 241, 241, 241, 73, 258,
- 241, 251, 241, 313, 241, 294, 294, 43,
- 246, 247, 241, 241, 241, 241, 253, 241,
- 251, 241, 251, 241, 241, 241, 241, 241,
- 241, 246, 247, 241, 241, 241, 241, 253,
- 241, 251, 241, 251, 241, 241, 241, 241,
- 314, 241, 246, 247, 241, 241, 241, 241,
- 253, 241, 251, 241, 251, 241, 313, 241,
- 241, 241, 241, 246, 247, 241, 241, 241,
- 241, 253, 241, 251, 241, 74, 42, 42,
- 43, 241, 241, 241, 241, 241, 241, 74,
- 241, 251, 40, 241, 241, 56, 252, 241,
- 246, 247, 241, 241, 241, 241, 253, 241,
- 251, 241, 242, 243, 250, 245, 43, 246,
- 247, 241, 241, 241, 241, 248, 241, 316,
- 156, 317, 317, 81, 159, 160, 315, 315,
- 315, 315, 163, 315, 156, 317, 317, 81,
- 159, 160, 315, 315, 315, 315, 163, 315,
- 318, 315, 315, 315, 95, 319, 315, 159,
- 160, 315, 315, 315, 315, 320, 315, 318,
- 315, 321, 322, 323, 324, 81, 159, 160,
- 315, 315, 315, 112, 325, 315, 315, 318,
- 315, 326, 322, 327, 327, 81, 159, 160,
- 315, 315, 315, 315, 325, 315, 322, 327,
- 327, 81, 159, 160, 315, 315, 315, 315,
- 325, 315, 328, 315, 315, 315, 95, 329,
- 315, 159, 160, 315, 315, 315, 315, 320,
- 315, 328, 315, 330, 331, 332, 333, 81,
- 159, 160, 315, 315, 315, 110, 334, 315,
- 315, 328, 315, 335, 331, 336, 336, 81,
- 159, 160, 315, 315, 315, 315, 334, 315,
- 331, 336, 336, 81, 159, 160, 315, 315,
- 315, 315, 334, 315, 337, 315, 315, 315,
- 95, 338, 315, 159, 160, 315, 315, 315,
- 315, 320, 315, 337, 315, 339, 340, 341,
- 342, 81, 159, 160, 315, 315, 315, 108,
- 343, 315, 315, 337, 315, 344, 340, 345,
- 345, 81, 159, 160, 315, 315, 315, 315,
- 343, 315, 340, 345, 345, 81, 159, 160,
- 315, 315, 315, 315, 343, 315, 346, 315,
- 315, 315, 95, 347, 315, 159, 160, 315,
- 315, 315, 315, 320, 315, 346, 315, 348,
- 349, 350, 351, 81, 159, 160, 315, 315,
- 315, 106, 352, 315, 315, 346, 315, 353,
- 349, 354, 354, 81, 159, 160, 315, 315,
- 315, 315, 352, 315, 349, 354, 354, 81,
- 159, 160, 315, 315, 315, 315, 352, 315,
- 95, 355, 315, 159, 160, 315, 315, 315,
- 315, 320, 315, 159, 160, 315, 315, 315,
- 315, 320, 315, 356, 315, 315, 315, 160,
- 315, 160, 315, 357, 315, 358, 315, 359,
- 360, 315, 159, 160, 315, 315, 315, 79,
- 315, 315, 315, 77, 315, 78, 315, 315,
- 315, 315, 159, 160, 315, 159, 160, 315,
- 358, 315, 315, 315, 315, 159, 160, 315,
- 358, 315, 359, 315, 315, 159, 160, 315,
- 315, 315, 79, 315, 95, 315, 361, 361,
- 81, 159, 160, 315, 315, 315, 315, 320,
- 315, 362, 104, 363, 364, 85, 159, 160,
- 315, 315, 315, 315, 320, 315, 104, 363,
- 364, 85, 159, 160, 315, 315, 315, 315,
- 320, 315, 363, 363, 85, 159, 160, 315,
- 315, 315, 315, 320, 315, 365, 101, 366,
- 367, 88, 159, 160, 315, 315, 315, 315,
- 320, 315, 101, 366, 367, 88, 159, 160,
- 315, 315, 315, 315, 320, 315, 366, 366,
- 88, 159, 160, 315, 315, 315, 315, 320,
- 315, 368, 98, 369, 370, 91, 159, 160,
- 315, 315, 315, 315, 320, 315, 98, 369,
- 370, 91, 159, 160, 315, 315, 315, 315,
- 320, 315, 369, 369, 91, 159, 160, 315,
- 315, 315, 315, 320, 315, 371, 95, 315,
- 372, 315, 159, 160, 315, 315, 315, 315,
- 320, 315, 95, 315, 372, 315, 159, 160,
- 315, 315, 315, 315, 320, 315, 373, 315,
- 159, 160, 315, 315, 315, 315, 320, 315,
- 95, 315, 315, 315, 315, 159, 160, 315,
- 315, 315, 315, 320, 315, 77, 78, 315,
- 315, 95, 355, 315, 159, 160, 315, 315,
- 315, 315, 320, 315, 77, 315, 348, 349,
- 354, 354, 81, 159, 160, 315, 315, 315,
- 315, 352, 315, 348, 349, 350, 354, 81,
- 159, 160, 315, 315, 315, 106, 352, 315,
- 346, 315, 374, 315, 361, 361, 81, 159,
- 160, 315, 315, 315, 315, 320, 315, 346,
- 315, 346, 315, 315, 315, 315, 315, 315,
- 159, 160, 315, 315, 315, 315, 320, 315,
- 346, 315, 346, 315, 315, 315, 315, 375,
- 315, 159, 160, 315, 315, 315, 315, 320,
- 315, 346, 315, 346, 315, 374, 315, 315,
- 315, 315, 159, 160, 315, 315, 315, 315,
- 320, 315, 346, 315, 346, 78, 315, 315,
- 95, 347, 315, 159, 160, 315, 315, 315,
- 315, 320, 315, 346, 315, 339, 340, 345,
- 345, 81, 159, 160, 315, 315, 315, 315,
- 343, 315, 339, 340, 341, 345, 81, 159,
- 160, 315, 315, 315, 108, 343, 315, 337,
- 315, 376, 315, 361, 361, 81, 159, 160,
- 315, 315, 315, 315, 320, 315, 337, 315,
- 337, 315, 315, 315, 315, 315, 315, 159,
- 160, 315, 315, 315, 315, 320, 315, 337,
- 315, 337, 315, 315, 315, 315, 377, 315,
- 159, 160, 315, 315, 315, 315, 320, 315,
- 337, 315, 337, 315, 376, 315, 315, 315,
- 315, 159, 160, 315, 315, 315, 315, 320,
- 315, 337, 315, 337, 78, 315, 315, 95,
- 338, 315, 159, 160, 315, 315, 315, 315,
- 320, 315, 337, 315, 330, 331, 336, 336,
- 81, 159, 160, 315, 315, 315, 315, 334,
- 315, 330, 331, 332, 336, 81, 159, 160,
- 315, 315, 315, 110, 334, 315, 328, 315,
- 378, 315, 361, 361, 81, 159, 160, 315,
- 315, 315, 315, 320, 315, 328, 315, 328,
- 315, 315, 315, 315, 315, 315, 159, 160,
- 315, 315, 315, 315, 320, 315, 328, 315,
- 328, 315, 315, 315, 315, 379, 315, 159,
- 160, 315, 315, 315, 315, 320, 315, 328,
- 315, 328, 315, 378, 315, 315, 315, 315,
- 159, 160, 315, 315, 315, 315, 320, 315,
- 328, 315, 328, 78, 315, 315, 95, 329,
- 315, 159, 160, 315, 315, 315, 315, 320,
- 315, 328, 315, 321, 322, 327, 327, 81,
- 159, 160, 315, 315, 315, 315, 325, 315,
- 321, 322, 323, 327, 81, 159, 160, 315,
- 315, 315, 112, 325, 315, 318, 315, 380,
- 315, 361, 361, 81, 159, 160, 315, 315,
- 315, 315, 320, 315, 318, 315, 318, 315,
- 315, 315, 315, 315, 315, 159, 160, 315,
- 315, 315, 315, 320, 315, 318, 315, 318,
- 315, 315, 315, 315, 381, 315, 159, 160,
- 315, 315, 315, 315, 320, 315, 318, 315,
- 318, 315, 380, 315, 315, 315, 315, 159,
- 160, 315, 315, 315, 315, 320, 315, 318,
- 315, 318, 78, 315, 315, 95, 319, 315,
- 159, 160, 315, 315, 315, 315, 320, 315,
- 318, 315, 113, 80, 80, 81, 382, 382,
- 382, 382, 382, 162, 113, 382, 155, 156,
- 317, 317, 81, 159, 160, 315, 315, 315,
- 315, 163, 315, 113, 80, 80, 81, 382,
- 382, 382, 382, 382, 382, 113, 382, 384,
- 385, 386, 387, 119, 388, 389, 383, 383,
- 383, 151, 390, 383, 391, 385, 387, 387,
- 119, 388, 389, 383, 383, 383, 383, 390,
- 383, 385, 387, 387, 119, 388, 389, 383,
- 383, 383, 383, 390, 383, 392, 383, 383,
- 383, 132, 393, 383, 388, 389, 383, 383,
- 383, 383, 394, 383, 392, 383, 395, 396,
- 397, 398, 119, 388, 389, 383, 383, 383,
- 149, 399, 383, 383, 392, 383, 400, 396,
- 401, 401, 119, 388, 389, 383, 383, 383,
- 383, 399, 383, 396, 401, 401, 119, 388,
- 389, 383, 383, 383, 383, 399, 383, 402,
- 383, 383, 383, 132, 403, 383, 388, 389,
- 383, 383, 383, 383, 394, 383, 402, 383,
- 404, 405, 406, 407, 119, 388, 389, 383,
- 383, 383, 147, 408, 383, 383, 402, 383,
- 409, 405, 410, 410, 119, 388, 389, 383,
- 383, 383, 383, 408, 383, 405, 410, 410,
- 119, 388, 389, 383, 383, 383, 383, 408,
- 383, 411, 383, 383, 383, 132, 412, 383,
- 388, 389, 383, 383, 383, 383, 394, 383,
- 411, 383, 413, 414, 415, 416, 119, 388,
- 389, 383, 383, 383, 145, 417, 383, 383,
- 411, 383, 418, 414, 419, 419, 119, 388,
- 389, 383, 383, 383, 383, 417, 383, 414,
- 419, 419, 119, 388, 389, 383, 383, 383,
- 383, 417, 383, 420, 383, 383, 383, 132,
- 421, 383, 388, 389, 383, 383, 383, 383,
- 394, 383, 420, 383, 422, 423, 424, 425,
- 119, 388, 389, 383, 383, 383, 143, 426,
- 383, 383, 420, 383, 427, 423, 428, 428,
- 119, 388, 389, 383, 383, 383, 383, 426,
- 383, 423, 428, 428, 119, 388, 389, 383,
- 383, 383, 383, 426, 383, 132, 429, 383,
- 388, 389, 383, 383, 383, 383, 394, 383,
- 388, 389, 383, 383, 383, 383, 394, 383,
- 430, 383, 383, 383, 389, 383, 389, 383,
- 431, 383, 432, 383, 433, 434, 383, 388,
- 389, 383, 383, 383, 117, 383, 383, 383,
- 115, 383, 116, 383, 383, 383, 383, 388,
- 389, 383, 388, 389, 383, 432, 383, 383,
- 383, 383, 388, 389, 383, 432, 383, 433,
- 383, 383, 388, 389, 383, 383, 383, 117,
- 383, 132, 383, 435, 435, 119, 388, 389,
- 383, 383, 383, 383, 394, 383, 436, 141,
- 437, 438, 122, 388, 389, 383, 383, 383,
- 383, 394, 383, 141, 437, 438, 122, 388,
- 389, 383, 383, 383, 383, 394, 383, 437,
- 437, 122, 388, 389, 383, 383, 383, 383,
- 394, 383, 439, 138, 440, 441, 125, 388,
- 389, 383, 383, 383, 383, 394, 383, 138,
- 440, 441, 125, 388, 389, 383, 383, 383,
- 383, 394, 383, 440, 440, 125, 388, 389,
- 383, 383, 383, 383, 394, 383, 442, 135,
- 443, 444, 128, 388, 389, 383, 383, 383,
- 383, 394, 383, 135, 443, 444, 128, 388,
- 389, 383, 383, 383, 383, 394, 383, 443,
- 443, 128, 388, 389, 383, 383, 383, 383,
- 394, 383, 445, 132, 383, 446, 383, 388,
- 389, 383, 383, 383, 383, 394, 383, 132,
- 383, 446, 383, 388, 389, 383, 383, 383,
- 383, 394, 383, 447, 383, 388, 389, 383,
- 383, 383, 383, 394, 383, 132, 383, 383,
- 383, 383, 388, 389, 383, 383, 383, 383,
- 394, 383, 115, 116, 383, 383, 132, 429,
- 383, 388, 389, 383, 383, 383, 383, 394,
- 383, 115, 383, 422, 423, 428, 428, 119,
- 388, 389, 383, 383, 383, 383, 426, 383,
- 422, 423, 424, 428, 119, 388, 389, 383,
- 383, 383, 143, 426, 383, 420, 383, 448,
- 383, 435, 435, 119, 388, 389, 383, 383,
- 383, 383, 394, 383, 420, 383, 420, 383,
- 383, 383, 383, 383, 383, 388, 389, 383,
- 383, 383, 383, 394, 383, 420, 383, 420,
- 383, 383, 383, 383, 449, 383, 388, 389,
- 383, 383, 383, 383, 394, 383, 420, 383,
- 420, 383, 448, 383, 383, 383, 383, 388,
- 389, 383, 383, 383, 383, 394, 383, 420,
- 383, 420, 116, 383, 383, 132, 421, 383,
- 388, 389, 383, 383, 383, 383, 394, 383,
- 420, 383, 413, 414, 419, 419, 119, 388,
- 389, 383, 383, 383, 383, 417, 383, 413,
- 414, 415, 419, 119, 388, 389, 383, 383,
- 383, 145, 417, 383, 411, 383, 450, 383,
- 435, 435, 119, 388, 389, 383, 383, 383,
- 383, 394, 383, 411, 383, 411, 383, 383,
- 383, 383, 383, 383, 388, 389, 383, 383,
- 383, 383, 394, 383, 411, 383, 411, 383,
- 383, 383, 383, 451, 383, 388, 389, 383,
- 383, 383, 383, 394, 383, 411, 383, 411,
- 383, 450, 383, 383, 383, 383, 388, 389,
- 383, 383, 383, 383, 394, 383, 411, 383,
- 411, 116, 383, 383, 132, 412, 383, 388,
- 389, 383, 383, 383, 383, 394, 383, 411,
- 383, 404, 405, 410, 410, 119, 388, 389,
- 383, 383, 383, 383, 408, 383, 404, 405,
- 406, 410, 119, 388, 389, 383, 383, 383,
- 147, 408, 383, 402, 383, 452, 383, 435,
- 435, 119, 388, 389, 383, 383, 383, 383,
- 394, 383, 402, 383, 402, 383, 383, 383,
- 383, 383, 383, 388, 389, 383, 383, 383,
- 383, 394, 383, 402, 383, 402, 383, 383,
- 383, 383, 453, 383, 388, 389, 383, 383,
- 383, 383, 394, 383, 402, 383, 402, 383,
- 452, 383, 383, 383, 383, 388, 389, 383,
- 383, 383, 383, 394, 383, 402, 383, 402,
- 116, 383, 383, 132, 403, 383, 388, 389,
- 383, 383, 383, 383, 394, 383, 402, 383,
- 395, 396, 401, 401, 119, 388, 389, 383,
- 383, 383, 383, 399, 383, 395, 396, 397,
- 401, 119, 388, 389, 383, 383, 383, 149,
- 399, 383, 392, 383, 454, 383, 435, 435,
- 119, 388, 389, 383, 383, 383, 383, 394,
- 383, 392, 383, 392, 383, 383, 383, 383,
- 383, 383, 388, 389, 383, 383, 383, 383,
- 394, 383, 392, 383, 392, 383, 383, 383,
- 383, 455, 383, 388, 389, 383, 383, 383,
- 383, 394, 383, 392, 383, 392, 383, 454,
- 383, 383, 383, 383, 388, 389, 383, 383,
- 383, 383, 394, 383, 392, 383, 392, 116,
- 383, 383, 132, 393, 383, 388, 389, 383,
- 383, 383, 383, 394, 383, 392, 383, 384,
- 385, 387, 387, 119, 388, 389, 383, 383,
- 383, 383, 390, 383, 153, 154, 382, 382,
- 382, 382, 382, 382, 382, 382, 161, 161,
- 382, 382, 382, 153, 382, 167, 456, 169,
- 170, 5, 171, 172, 173, 166, 166, 37,
- 174, 166, 166, 153, 166, 177, 154, 166,
- 166, 18, 178, 166, 171, 172, 166, 161,
- 161, 166, 179, 166, 177, 166, 0
-};
-
-static const short _indic_syllable_machine_trans_targs[] = {
- 143, 168, 170, 171, 3, 174, 4, 6,
- 177, 7, 9, 180, 10, 12, 183, 13,
- 15, 16, 164, 18, 19, 182, 21, 22,
- 179, 24, 25, 176, 185, 189, 193, 196,
- 200, 203, 207, 210, 214, 217, 143, 243,
- 245, 246, 39, 249, 40, 42, 252, 43,
- 45, 255, 46, 48, 258, 49, 51, 52,
- 239, 54, 55, 257, 57, 58, 254, 60,
- 61, 251, 260, 263, 267, 270, 274, 277,
- 281, 284, 288, 292, 143, 316, 318, 319,
- 75, 322, 143, 76, 78, 325, 79, 81,
- 328, 82, 84, 331, 85, 87, 88, 312,
- 90, 91, 330, 93, 94, 327, 96, 97,
- 324, 333, 336, 340, 343, 347, 350, 354,
- 357, 361, 143, 391, 393, 394, 110, 397,
- 111, 113, 400, 114, 116, 403, 117, 119,
- 406, 120, 122, 123, 387, 125, 126, 405,
- 128, 129, 402, 131, 132, 399, 408, 411,
- 415, 418, 422, 425, 429, 432, 436, 439,
- 143, 144, 219, 293, 295, 364, 366, 313,
- 315, 367, 365, 363, 440, 441, 143, 145,
- 147, 35, 218, 165, 167, 187, 216, 146,
- 34, 148, 212, 0, 149, 151, 33, 211,
- 209, 150, 32, 152, 205, 153, 155, 31,
- 204, 202, 154, 30, 156, 198, 157, 159,
- 29, 197, 195, 158, 28, 160, 191, 161,
- 163, 27, 190, 188, 162, 26, 173, 166,
- 143, 169, 1, 172, 2, 175, 5, 23,
- 178, 8, 20, 181, 11, 17, 184, 14,
- 186, 192, 194, 199, 201, 206, 208, 213,
- 215, 143, 220, 222, 71, 290, 240, 242,
- 291, 221, 70, 223, 286, 36, 224, 226,
- 69, 285, 283, 225, 68, 227, 279, 228,
- 230, 67, 278, 276, 229, 66, 231, 272,
- 232, 234, 65, 271, 269, 233, 64, 235,
- 265, 236, 238, 63, 264, 262, 237, 62,
- 248, 241, 143, 244, 37, 247, 38, 250,
- 41, 59, 253, 44, 56, 256, 47, 53,
- 259, 50, 261, 266, 268, 273, 275, 280,
- 282, 287, 289, 143, 294, 106, 296, 359,
- 72, 297, 299, 105, 358, 356, 298, 104,
- 300, 352, 301, 303, 103, 351, 349, 302,
- 102, 304, 345, 305, 307, 101, 344, 342,
- 306, 100, 308, 338, 309, 311, 99, 337,
- 335, 310, 98, 321, 314, 143, 317, 73,
- 320, 74, 323, 77, 95, 326, 80, 92,
- 329, 83, 89, 332, 86, 334, 339, 341,
- 346, 348, 353, 355, 360, 362, 143, 143,
- 368, 370, 142, 141, 388, 390, 438, 369,
- 371, 434, 107, 372, 374, 140, 433, 431,
- 373, 139, 375, 427, 376, 378, 138, 426,
- 424, 377, 137, 379, 420, 380, 382, 136,
- 419, 417, 381, 135, 383, 413, 384, 386,
- 134, 412, 410, 385, 133, 396, 389, 143,
- 392, 108, 395, 109, 398, 112, 130, 401,
- 115, 127, 404, 118, 124, 407, 121, 409,
- 414, 416, 421, 423, 428, 430, 435, 437,
- 442
-};
-
-static const char _indic_syllable_machine_trans_actions[] = {
- 1, 2, 0, 0, 0, 2, 0, 0,
- 2, 0, 0, 2, 0, 0, 2, 0,
- 0, 0, 2, 0, 0, 2, 0, 0,
- 2, 0, 0, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 3, 2,
- 0, 0, 0, 2, 0, 0, 2, 0,
- 0, 2, 0, 0, 2, 0, 0, 0,
- 2, 0, 0, 2, 0, 0, 2, 0,
- 0, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 4, 2, 0, 0,
- 0, 2, 5, 0, 0, 2, 0, 0,
- 2, 0, 0, 2, 0, 0, 0, 2,
- 0, 0, 2, 0, 0, 2, 0, 0,
- 2, 2, 6, 2, 6, 2, 6, 2,
- 6, 2, 7, 2, 0, 0, 0, 2,
- 0, 0, 2, 0, 0, 2, 0, 0,
- 2, 0, 0, 0, 2, 0, 0, 2,
- 0, 0, 2, 0, 0, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2,
- 10, 2, 2, 6, 2, 11, 11, 0,
- 0, 2, 6, 2, 0, 2, 12, 2,
- 2, 0, 2, 0, 0, 2, 2, 2,
- 0, 2, 2, 0, 2, 2, 0, 2,
- 2, 2, 0, 2, 2, 2, 2, 0,
- 2, 2, 2, 0, 2, 2, 2, 2,
- 0, 2, 2, 2, 0, 2, 2, 2,
- 2, 0, 2, 2, 2, 0, 2, 0,
- 13, 0, 0, 2, 0, 2, 0, 0,
- 2, 0, 0, 2, 0, 0, 2, 0,
- 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 14, 2, 2, 0, 2, 0, 0,
- 2, 2, 0, 2, 2, 0, 2, 2,
- 0, 2, 2, 2, 0, 2, 2, 2,
- 2, 0, 2, 2, 2, 0, 2, 2,
- 2, 2, 0, 2, 2, 2, 0, 2,
- 2, 2, 2, 0, 2, 2, 2, 0,
- 2, 0, 15, 0, 0, 2, 0, 2,
- 0, 0, 2, 0, 0, 2, 0, 0,
- 2, 0, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 16, 6, 0, 6, 6,
- 0, 6, 2, 0, 6, 2, 6, 0,
- 6, 6, 6, 2, 0, 6, 2, 6,
- 0, 6, 6, 6, 2, 0, 6, 2,
- 6, 0, 6, 6, 6, 2, 0, 6,
- 2, 6, 0, 6, 0, 17, 0, 0,
- 2, 0, 2, 0, 0, 2, 0, 0,
- 2, 0, 0, 2, 0, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 18, 19,
- 2, 2, 0, 0, 0, 0, 2, 2,
- 2, 2, 0, 2, 2, 0, 2, 2,
- 2, 0, 2, 2, 2, 2, 0, 2,
- 2, 2, 0, 2, 2, 2, 2, 0,
- 2, 2, 2, 0, 2, 2, 2, 2,
- 0, 2, 2, 2, 0, 2, 0, 20,
- 0, 0, 2, 0, 2, 0, 0, 2,
- 0, 0, 2, 0, 0, 2, 0, 2,
- 2, 2, 2, 2, 2, 2, 2, 2,
- 2
-};
-
-static const char _indic_syllable_machine_to_state_actions[] = {
- 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,
- 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,
- 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,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 8,
- 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,
- 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,
- 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,
- 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,
- 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,
- 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,
- 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,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0
-};
-
-static const char _indic_syllable_machine_from_state_actions[] = {
- 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,
- 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,
- 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,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 9,
- 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,
- 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,
- 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,
- 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,
- 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,
- 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,
- 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,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0
-};
-
-static const short _indic_syllable_machine_eof_trans[] = {
- 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 39, 39, 39, 39,
- 39, 39, 39, 39, 39, 39, 39, 39,
- 39, 39, 39, 39, 39, 39, 39, 39,
- 39, 39, 39, 39, 39, 39, 39, 39,
- 39, 39, 39, 39, 39, 39, 39, 39,
- 77, 77, 77, 83, 83, 77, 77, 77,
- 77, 77, 77, 77, 77, 77, 77, 77,
- 77, 77, 77, 77, 77, 77, 77, 77,
- 77, 77, 77, 77, 77, 77, 77, 77,
- 77, 77, 77, 115, 115, 115, 115, 115,
- 115, 115, 115, 115, 115, 115, 115, 115,
- 115, 115, 115, 115, 115, 115, 115, 115,
- 115, 115, 115, 115, 115, 115, 115, 115,
- 115, 115, 115, 115, 115, 115, 115, 0,
- 167, 167, 167, 167, 167, 167, 167, 167,
- 167, 167, 167, 167, 167, 167, 167, 167,
- 167, 167, 167, 167, 167, 167, 167, 167,
- 167, 167, 167, 167, 167, 167, 167, 167,
- 167, 167, 167, 167, 167, 167, 167, 167,
- 167, 167, 167, 167, 167, 167, 167, 167,
- 167, 167, 167, 167, 167, 167, 167, 167,
- 167, 167, 167, 167, 167, 167, 167, 167,
- 167, 167, 167, 167, 167, 167, 167, 167,
- 167, 167, 167, 242, 242, 242, 242, 242,
- 242, 242, 242, 242, 242, 242, 242, 242,
- 242, 242, 242, 242, 242, 242, 242, 242,
- 242, 242, 242, 242, 242, 242, 242, 242,
- 242, 242, 242, 242, 242, 242, 242, 242,
- 242, 242, 242, 242, 242, 242, 242, 242,
- 242, 242, 242, 242, 242, 242, 242, 242,
- 242, 242, 242, 242, 242, 242, 242, 242,
- 242, 242, 242, 242, 242, 242, 242, 242,
- 242, 242, 242, 242, 242, 316, 316, 316,
- 316, 316, 316, 316, 316, 316, 316, 316,
- 316, 316, 316, 316, 316, 316, 316, 316,
- 316, 316, 316, 316, 316, 316, 316, 316,
- 316, 316, 316, 316, 316, 316, 316, 316,
- 316, 316, 316, 316, 316, 316, 316, 316,
- 316, 316, 316, 316, 316, 316, 316, 316,
- 316, 316, 316, 316, 316, 316, 316, 316,
- 316, 316, 316, 316, 316, 316, 316, 316,
- 316, 316, 316, 316, 383, 316, 383, 384,
- 384, 384, 384, 384, 384, 384, 384, 384,
- 384, 384, 384, 384, 384, 384, 384, 384,
- 384, 384, 384, 384, 384, 384, 384, 384,
- 384, 384, 384, 384, 384, 384, 384, 384,
- 384, 384, 384, 384, 384, 384, 384, 384,
- 384, 384, 384, 384, 384, 384, 384, 384,
- 384, 384, 384, 384, 384, 384, 384, 384,
- 384, 384, 384, 384, 384, 384, 384, 384,
- 384, 384, 384, 384, 384, 384, 384, 384,
- 383, 167, 167
-};
-
-static const int indic_syllable_machine_start = 143;
-static const int indic_syllable_machine_first_final = 143;
-static const int indic_syllable_machine_error = -1;
-
-static const int indic_syllable_machine_en_main = 143;
-
-
-#line 36 "../../src/hb-ot-shape-complex-indic-machine.rl"
-
-
-
-#line 91 "../../src/hb-ot-shape-complex-indic-machine.rl"
-
-
-#define found_syllable(syllable_type) \
- HB_STMT_START { \
- if (0) fprintf (stderr, "syllable %d..%d %s\n", last, p+1, #syllable_type); \
- for (unsigned int i = last; i < p+1; i++) \
- info[i].syllable() = (syllable_serial << 4) | syllable_type; \
- last = p+1; \
- syllable_serial++; \
- if (unlikely (syllable_serial == 16)) syllable_serial = 1; \
- } HB_STMT_END
-
-static void
-find_syllables (hb_buffer_t *buffer)
-{
- unsigned int p, pe, eof, ts, te, act;
- int cs;
- hb_glyph_info_t *info = buffer->info;
-
-#line 1161 "../../src/hb-ot-shape-complex-indic-machine.hh.tmp"
- {
- cs = indic_syllable_machine_start;
- ts = 0;
- te = 0;
- act = 0;
- }
-
-#line 112 "../../src/hb-ot-shape-complex-indic-machine.rl"
-
-
- p = 0;
- pe = eof = buffer->len;
-
- unsigned int last = 0;
- unsigned int syllable_serial = 1;
-
-#line 1178 "../../src/hb-ot-shape-complex-indic-machine.hh.tmp"
- {
- int _slen;
- int _trans;
- const unsigned char *_keys;
- const short *_inds;
- if ( p == pe )
- goto _test_eof;
-_resume:
- switch ( _indic_syllable_machine_from_state_actions[cs] ) {
- case 9:
-#line 1 "NONE"
- {ts = p;}
- break;
-#line 1192 "../../src/hb-ot-shape-complex-indic-machine.hh.tmp"
- }
-
- _keys = _indic_syllable_machine_trans_keys + (cs<<1);
- _inds = _indic_syllable_machine_indicies + _indic_syllable_machine_index_offsets[cs];
-
- _slen = _indic_syllable_machine_key_spans[cs];
- _trans = _inds[ _slen > 0 && _keys[0] <=( info[p].indic_category()) &&
- ( info[p].indic_category()) <= _keys[1] ?
- ( info[p].indic_category()) - _keys[0] : _slen ];
-
-_eof_trans:
- cs = _indic_syllable_machine_trans_targs[_trans];
-
- if ( _indic_syllable_machine_trans_actions[_trans] == 0 )
- goto _again;
-
- switch ( _indic_syllable_machine_trans_actions[_trans] ) {
- case 2:
-#line 1 "NONE"
- {te = p+1;}
- break;
- case 13:
-#line 83 "../../src/hb-ot-shape-complex-indic-machine.rl"
- {te = p+1;{ found_syllable (consonant_syllable); }}
- break;
- case 15:
-#line 84 "../../src/hb-ot-shape-complex-indic-machine.rl"
- {te = p+1;{ found_syllable (vowel_syllable); }}
- break;
- case 20:
-#line 85 "../../src/hb-ot-shape-complex-indic-machine.rl"
- {te = p+1;{ found_syllable (standalone_cluster); }}
- break;
- case 17:
-#line 86 "../../src/hb-ot-shape-complex-indic-machine.rl"
- {te = p+1;{ found_syllable (broken_cluster); }}
- break;
- case 10:
-#line 87 "../../src/hb-ot-shape-complex-indic-machine.rl"
- {te = p+1;{ found_syllable (non_indic_cluster); }}
- break;
- case 12:
-#line 83 "../../src/hb-ot-shape-complex-indic-machine.rl"
- {te = p;p--;{ found_syllable (consonant_syllable); }}
- break;
- case 14:
-#line 84 "../../src/hb-ot-shape-complex-indic-machine.rl"
- {te = p;p--;{ found_syllable (vowel_syllable); }}
- break;
- case 19:
-#line 85 "../../src/hb-ot-shape-complex-indic-machine.rl"
- {te = p;p--;{ found_syllable (standalone_cluster); }}
- break;
- case 16:
-#line 86 "../../src/hb-ot-shape-complex-indic-machine.rl"
- {te = p;p--;{ found_syllable (broken_cluster); }}
- break;
- case 18:
-#line 87 "../../src/hb-ot-shape-complex-indic-machine.rl"
- {te = p;p--;{ found_syllable (non_indic_cluster); }}
- break;
- case 1:
-#line 83 "../../src/hb-ot-shape-complex-indic-machine.rl"
- {{p = ((te))-1;}{ found_syllable (consonant_syllable); }}
- break;
- case 3:
-#line 84 "../../src/hb-ot-shape-complex-indic-machine.rl"
- {{p = ((te))-1;}{ found_syllable (vowel_syllable); }}
- break;
- case 7:
-#line 85 "../../src/hb-ot-shape-complex-indic-machine.rl"
- {{p = ((te))-1;}{ found_syllable (standalone_cluster); }}
- break;
- case 4:
-#line 86 "../../src/hb-ot-shape-complex-indic-machine.rl"
- {{p = ((te))-1;}{ found_syllable (broken_cluster); }}
- break;
- case 5:
-#line 1 "NONE"
- { switch( act ) {
- case 4:
- {{p = ((te))-1;} found_syllable (broken_cluster); }
- break;
- case 5:
- {{p = ((te))-1;} found_syllable (non_indic_cluster); }
- break;
- }
- }
- break;
- case 6:
-#line 1 "NONE"
- {te = p+1;}
-#line 86 "../../src/hb-ot-shape-complex-indic-machine.rl"
- {act = 4;}
- break;
- case 11:
-#line 1 "NONE"
- {te = p+1;}
-#line 87 "../../src/hb-ot-shape-complex-indic-machine.rl"
- {act = 5;}
- break;
-#line 1294 "../../src/hb-ot-shape-complex-indic-machine.hh.tmp"
- }
-
-_again:
- switch ( _indic_syllable_machine_to_state_actions[cs] ) {
- case 8:
-#line 1 "NONE"
- {ts = 0;}
- break;
-#line 1303 "../../src/hb-ot-shape-complex-indic-machine.hh.tmp"
- }
-
- if ( ++p != pe )
- goto _resume;
- _test_eof: {}
- if ( p == eof )
- {
- if ( _indic_syllable_machine_eof_trans[cs] > 0 ) {
- _trans = _indic_syllable_machine_eof_trans[cs] - 1;
- goto _eof_trans;
- }
- }
-
- }
-
-#line 121 "../../src/hb-ot-shape-complex-indic-machine.rl"
-
-}
-
-#endif /* HB_OT_SHAPE_COMPLEX_INDIC_MACHINE_HH */
diff --git a/Build/source/libs/harfbuzz/version.ac b/Build/source/libs/harfbuzz/version.ac
index 1465fa60192..22de668c57b 100644
--- a/Build/source/libs/harfbuzz/version.ac
+++ b/Build/source/libs/harfbuzz/version.ac
@@ -8,4 +8,4 @@ dnl
dnl --------------------------------------------------------
dnl
dnl m4-include this file to define the current harfbuzz version
-m4_define([harfbuzz_version], [0.9.8])
+m4_define([harfbuzz_version], [0.9.10])