summaryrefslogtreecommitdiff
path: root/Build
diff options
context:
space:
mode:
authorPeter Breitenlohner <peb@mppmu.mpg.de>2014-07-17 06:43:56 +0000
committerPeter Breitenlohner <peb@mppmu.mpg.de>2014-07-17 06:43:56 +0000
commit3f619bdd457ad5d7a32e2d97142aace3b5a76ab9 (patch)
treea608cc935082d1df0b607837bea2a6b8d7f76df3 /Build
parente85df5d9b4ca634bdcae2a7ea48a31f163ff6bd6 (diff)
harfbuzz 0.9.31
git-svn-id: svn://tug.org/texlive/trunk@34639 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build')
-rw-r--r--Build/source/libs/README2
-rw-r--r--Build/source/libs/harfbuzz/ChangeLog5
-rw-r--r--Build/source/libs/harfbuzz/Makefile.in4
-rwxr-xr-xBuild/source/libs/harfbuzz/configure32
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-ot-shape-complex-arabic-table.hh383
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-utf-private.hh204
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.31-PATCHES/ChangeLog (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.30-PATCHES/ChangeLog)7
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.31-PATCHES/TL-Changes (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.30-PATCHES/TL-Changes)2
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.31-PATCHES/patch-01-cygwin (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.30-PATCHES/patch-01-cygwin)6
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.31/AUTHORS (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.30/AUTHORS)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.31/Android.mk (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.30/Android.mk)67
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.31/ChangeLog (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.30/ChangeLog)393
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.31/Makefile.am (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.30/Makefile.am)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.31/NEWS (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.30/NEWS)29
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.31/README (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.30/README)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.31/THANKS (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.30/THANKS)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.31/TODO (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.30/TODO)0
-rwxr-xr-xBuild/source/libs/harfbuzz/harfbuzz-0.9.31/autogen.sh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.30/autogen.sh)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.31/config.h.in (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.30/config.h.in)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.31/configure.ac (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.30/configure.ac)2
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.31/gtk-doc.make (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.30/gtk-doc.make)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.31/harfbuzz.doap (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.30/harfbuzz.doap)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/Makefile.am (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/Makefile.am)0
-rwxr-xr-xBuild/source/libs/harfbuzz/harfbuzz-0.9.31/src/check-c-linkage-decls.sh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/check-c-linkage-decls.sh)0
-rwxr-xr-xBuild/source/libs/harfbuzz/harfbuzz-0.9.31/src/check-defs.sh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/check-defs.sh)0
-rwxr-xr-xBuild/source/libs/harfbuzz/harfbuzz-0.9.31/src/check-header-guards.sh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/check-header-guards.sh)0
-rwxr-xr-xBuild/source/libs/harfbuzz/harfbuzz-0.9.31/src/check-includes.sh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/check-includes.sh)0
-rwxr-xr-xBuild/source/libs/harfbuzz/harfbuzz-0.9.31/src/check-libstdc++.sh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/check-libstdc++.sh)0
-rwxr-xr-xBuild/source/libs/harfbuzz/harfbuzz-0.9.31/src/check-static-inits.sh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/check-static-inits.sh)0
-rwxr-xr-xBuild/source/libs/harfbuzz/harfbuzz-0.9.31/src/check-symbols.sh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/check-symbols.sh)0
-rwxr-xr-xBuild/source/libs/harfbuzz/harfbuzz-0.9.31/src/gen-arabic-table.py (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/gen-arabic-table.py)18
-rwxr-xr-xBuild/source/libs/harfbuzz/harfbuzz-0.9.31/src/gen-indic-table.py (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/gen-indic-table.py)10
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/harfbuzz-gobject.pc.in (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/harfbuzz-gobject.pc.in)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/harfbuzz-icu.pc.in (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/harfbuzz-icu.pc.in)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/harfbuzz.pc.in (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/harfbuzz.pc.in)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-atomic-private.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-atomic-private.hh)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-blob.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-blob.cc)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-blob.h (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-blob.h)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-buffer-deserialize-json.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-buffer-deserialize-json.hh)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-buffer-deserialize-json.rl (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-buffer-deserialize-json.rl)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-buffer-deserialize-text.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-buffer-deserialize-text.hh)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-buffer-deserialize-text.rl (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-buffer-deserialize-text.rl)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-buffer-private.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-buffer-private.hh)1
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-buffer-serialize.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-buffer-serialize.cc)2
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-buffer.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-buffer.cc)79
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-buffer.h (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-buffer.h)23
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-cache-private.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-cache-private.hh)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-common.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-common.cc)4
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-common.h (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-common.h)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-coretext.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-coretext.cc)16
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-coretext.h (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-coretext.h)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-deprecated.h (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-deprecated.h)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-face-private.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-face-private.hh)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-face.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-face.cc)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-face.h (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-face.h)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-fallback-shape.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-fallback-shape.cc)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-font-private.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-font-private.hh)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-font.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-font.cc)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-font.h (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-font.h)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-ft.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-ft.cc)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-ft.h (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-ft.h)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-glib.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-glib.cc)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-glib.h (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-glib.h)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-gobject-enums.cc.tmpl (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-gobject-enums.cc.tmpl)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-gobject-enums.h.tmpl (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-gobject-enums.h.tmpl)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-gobject-structs.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-gobject-structs.cc)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-gobject-structs.h (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-gobject-structs.h)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-gobject.h (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-gobject.h)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-graphite2.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-graphite2.cc)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-graphite2.h (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-graphite2.h)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-icu.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-icu.cc)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-icu.h (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-icu.h)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-mutex-private.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-mutex-private.hh)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-object-private.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-object-private.hh)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-open-file-private.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-open-file-private.hh)4
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-open-type-private.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-open-type-private.hh)2
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-ot-cmap-table.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-ot-cmap-table.hh)4
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-ot-font.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-ot-font.cc)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-ot-font.h (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-ot-font.h)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-ot-head-table.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-ot-head-table.hh)6
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-ot-hhea-table.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-ot-hhea-table.hh)2
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-ot-hmtx-table.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-ot-hmtx-table.hh)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-ot-layout-common-private.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-ot-layout-common-private.hh)14
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-ot-layout-gdef-table.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-ot-layout-gdef-table.hh)8
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-ot-layout-gpos-table.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-ot-layout-gpos-table.hh)24
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-ot-layout-gsub-table.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-ot-layout-gsub-table.hh)6
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-ot-layout-gsubgpos-private.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-ot-layout-gsubgpos-private.hh)28
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-ot-layout-jstf-table.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-ot-layout-jstf-table.hh)2
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-ot-layout-private.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-ot-layout-private.hh)4
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-ot-layout.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-ot-layout.cc)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-ot-layout.h (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-ot-layout.h)6
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-ot-map-private.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-ot-map-private.hh)8
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-ot-map.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-ot-map.cc)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-ot-maxp-table.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-ot-maxp-table.hh)4
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-ot-name-table.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-ot-name-table.hh)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-ot-shape-complex-arabic-fallback.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-ot-shape-complex-arabic-fallback.hh)2
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-ot-shape-complex-arabic-table.hh383
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-ot-shape-complex-arabic.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-ot-shape-complex-arabic.cc)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-ot-shape-complex-default.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-ot-shape-complex-default.cc)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-ot-shape-complex-hangul.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-ot-shape-complex-hangul.cc)36
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-ot-shape-complex-hebrew.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-ot-shape-complex-hebrew.cc)134
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-ot-shape-complex-indic-machine.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-ot-shape-complex-indic-machine.hh)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-ot-shape-complex-indic-machine.rl (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-ot-shape-complex-indic-machine.rl)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-ot-shape-complex-indic-private.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-ot-shape-complex-indic-private.hh)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-ot-shape-complex-indic-table.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-ot-shape-complex-indic-table.cc)88
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-ot-shape-complex-indic.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-ot-shape-complex-indic.cc)189
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-ot-shape-complex-myanmar-machine.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-ot-shape-complex-myanmar-machine.hh)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-ot-shape-complex-myanmar-machine.rl (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-ot-shape-complex-myanmar-machine.rl)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-ot-shape-complex-myanmar.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-ot-shape-complex-myanmar.cc)56
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-ot-shape-complex-private.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-ot-shape-complex-private.hh)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-ot-shape-complex-sea-machine.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-ot-shape-complex-sea-machine.hh)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-ot-shape-complex-sea-machine.rl (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-ot-shape-complex-sea-machine.rl)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-ot-shape-complex-sea.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-ot-shape-complex-sea.cc)8
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-ot-shape-complex-thai.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-ot-shape-complex-thai.cc)84
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-ot-shape-complex-tibetan.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-ot-shape-complex-tibetan.cc)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-ot-shape-fallback-private.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-ot-shape-fallback-private.hh)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-ot-shape-fallback.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-ot-shape-fallback.cc)40
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-ot-shape-normalize-private.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-ot-shape-normalize-private.hh)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-ot-shape-normalize.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-ot-shape-normalize.cc)7
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-ot-shape-private.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-ot-shape-private.hh)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-ot-shape.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-ot-shape.cc)30
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-ot-shape.h (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-ot-shape.h)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-ot-tag.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-ot-tag.cc)62
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-ot-tag.h (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-ot-tag.h)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-ot.h (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-ot.h)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-private.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-private.hh)16
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-set-private.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-set-private.hh)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-set.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-set.cc)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-set.h (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-set.h)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-shape-plan-private.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-shape-plan-private.hh)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-shape-plan.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-shape-plan.cc)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-shape-plan.h (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-shape-plan.h)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-shape.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-shape.cc)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-shape.h (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-shape.h)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-shaper-impl-private.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-shaper-impl-private.hh)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-shaper-list.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-shaper-list.hh)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-shaper-private.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-shaper-private.hh)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-shaper.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-shaper.cc)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-ucdn.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-ucdn.cc)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-unicode-private.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-unicode-private.hh)46
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-unicode.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-unicode.cc)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-unicode.h (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-unicode.h)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-uniscribe.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-uniscribe.cc)14
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-uniscribe.h (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-uniscribe.h)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-utf-private.hh249
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-version.h.in (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-version.h.in)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-warning.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-warning.cc)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb.h (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb.h)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/main.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/main.cc)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/test-buffer-serialize.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/test-buffer-serialize.cc)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/test-size-params.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/test-size-params.cc)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/test-would-substitute.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/test-would-substitute.cc)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/test.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/test.cc)0
-rw-r--r--Build/source/libs/harfbuzz/version.ac2
154 files changed, 1720 insertions, 1137 deletions
diff --git a/Build/source/libs/README b/Build/source/libs/README
index 92cb1e98cf5..a584cabb5c0 100644
--- a/Build/source/libs/README
+++ b/Build/source/libs/README
@@ -24,7 +24,7 @@ gmp 6.0.0 - checked 25mar14
graphite2 1.2.4 - checked 2dec13
http://sourceforge.net/projects/silgraphite/files/graphite2/
-harfbuzz 0.9.30 - checked 10jul14
+harfbuzz 0.9.31 - checked 17jul14
http://www.freedesktop.org/software/harfbuzz/release/
icu 53.1 (release) - checked 3apr14
diff --git a/Build/source/libs/harfbuzz/ChangeLog b/Build/source/libs/harfbuzz/ChangeLog
index 23af93f40e6..25c02524974 100644
--- a/Build/source/libs/harfbuzz/ChangeLog
+++ b/Build/source/libs/harfbuzz/ChangeLog
@@ -1,3 +1,8 @@
+2014-07-17 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ Import harfbuzz-0.9.31.
+ * configure.ac, version.ac: Adjust.
+
2014-07-10 Peter Breitenlohner <peb@mppmu.mpg.de>
Import harfbuzz-0.9.30.
diff --git a/Build/source/libs/harfbuzz/Makefile.in b/Build/source/libs/harfbuzz/Makefile.in
index 9b4a0e97262..9947bdbe566 100644
--- a/Build/source/libs/harfbuzz/Makefile.in
+++ b/Build/source/libs/harfbuzz/Makefile.in
@@ -83,7 +83,7 @@ DIST_COMMON = $(srcdir)/../../am/reconfig.am \
$(srcdir)/../../am/rebuild.am $(srcdir)/Makefile.in \
$(srcdir)/Makefile.am $(top_srcdir)/configure \
$(am__configure_deps) $(srcdir)/config.h.in \
- $(top_srcdir)/harfbuzz-0.9.30/src/hb-version.h.in \
+ $(top_srcdir)/harfbuzz-0.9.31/src/hb-version.h.in \
$(am__dist_check_SCRIPTS_DIST) \
$(top_srcdir)/../../build-aux/depcomp \
$(top_srcdir)/../../build-aux/test-driver ChangeLog \
@@ -778,7 +778,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.30/src/hb-version.h.in
+hb-version.h: $(top_builddir)/config.status $(top_srcdir)/harfbuzz-0.9.31/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 eda4f24019f..2573625afa3 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 (TeX Live) 0.9.30.
+# Generated by GNU Autoconf 2.69 for harfbuzz (TeX Live) 0.9.31.
#
# Report bugs to <tex-k@tug.org>.
#
@@ -580,12 +580,12 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='harfbuzz (TeX Live)'
PACKAGE_TARNAME='harfbuzz--tex-live-'
-PACKAGE_VERSION='0.9.30'
-PACKAGE_STRING='harfbuzz (TeX Live) 0.9.30'
+PACKAGE_VERSION='0.9.31'
+PACKAGE_STRING='harfbuzz (TeX Live) 0.9.31'
PACKAGE_BUGREPORT='tex-k@tug.org'
PACKAGE_URL=''
-ac_unique_file="harfbuzz-0.9.30/src/harfbuzz.pc.in"
+ac_unique_file="harfbuzz-0.9.31/src/harfbuzz.pc.in"
# Factoring default headers for most tests.
ac_includes_default="\
#include <stdio.h>
@@ -1325,7 +1325,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 (TeX Live) 0.9.30 to adapt to many kinds of systems.
+\`configure' configures harfbuzz (TeX Live) 0.9.31 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1396,7 +1396,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of harfbuzz (TeX Live) 0.9.30:";;
+ short | recursive ) echo "Configuration of harfbuzz (TeX Live) 0.9.31:";;
esac
cat <<\_ACEOF
@@ -1509,7 +1509,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-harfbuzz (TeX Live) configure 0.9.30
+harfbuzz (TeX Live) configure 0.9.31
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2099,7 +2099,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 (TeX Live) $as_me 0.9.30, which was
+It was created by harfbuzz (TeX Live) $as_me 0.9.31, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@@ -4022,7 +4022,7 @@ fi
# Define the identity of the package.
PACKAGE='harfbuzz--tex-live-'
- VERSION='0.9.30'
+ VERSION='0.9.31'
cat >>confdefs.h <<_ACEOF
@@ -4224,8 +4224,8 @@ WARNING_CFLAGS=$kpse_cv_warning_cflags
HB_VERSION_MAJOR=0
HB_VERSION_MINOR=9
-HB_VERSION_MICRO=30
-HB_VERSION=0.9.30
+HB_VERSION_MICRO=31
+HB_VERSION=0.9.31
ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
@@ -6641,14 +6641,14 @@ $as_echo "#define HAVE_INTEL_ATOMIC_PRIMITIVES 1" >>confdefs.h
fi
-HARFBUZZ_TREE=harfbuzz-0.9.30
+HARFBUZZ_TREE=harfbuzz-0.9.31
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.30/src/hb-version.h.in"
+ac_config_files="$ac_config_files Makefile include/Makefile hb-version.h:harfbuzz-0.9.31/src/hb-version.h.in"
cat >confcache <<\_ACEOF
@@ -7197,7 +7197,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 (TeX Live) $as_me 0.9.30, which was
+This file was extended by harfbuzz (TeX Live) $as_me 0.9.31, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -7263,7 +7263,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 (TeX Live) config.status 0.9.30
+harfbuzz (TeX Live) config.status 0.9.31
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
@@ -7396,7 +7396,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.30/src/hb-version.h.in" ;;
+ "hb-version.h") CONFIG_FILES="$CONFIG_FILES hb-version.h:harfbuzz-0.9.31/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.30/src/hb-ot-shape-complex-arabic-table.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-ot-shape-complex-arabic-table.hh
deleted file mode 100644
index ae7011ad3fd..00000000000
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-ot-shape-complex-arabic-table.hh
+++ /dev/null
@@ -1,383 +0,0 @@
-/* == Start of generated table == */
-/*
- * The following table is generated by running:
- *
- * ./gen-arabic-table.py ArabicShaping.txt UnicodeData.txt Blocks.txt
- *
- * on files with these headers:
- *
- * # ArabicShaping-7.0.0.txt
- * # Date: 2014-02-14, 21:00:00 GMT [RP, KW, LI]
- * # Blocks-7.0.0.txt
- * # Date: 2014-04-03, 23:23:00 GMT [RP, KW]
- * UnicodeData.txt does not have a header.
- */
-
-#ifndef HB_OT_SHAPE_COMPLEX_ARABIC_TABLE_HH
-#define HB_OT_SHAPE_COMPLEX_ARABIC_TABLE_HH
-
-
-#define X JOINING_TYPE_X
-#define R JOINING_TYPE_R
-#define U JOINING_TYPE_U
-#define A JOINING_GROUP_ALAPH
-#define DR JOINING_GROUP_DALATH_RISH
-#define L JOINING_TYPE_L
-#define C JOINING_TYPE_C
-#define D JOINING_TYPE_D
-
-static const uint8_t joining_table[] =
-{
-
-#define joining_offset_0x0600 0
-
- /* Arabic */
-
- /* 0600 */ U,U,U,U,U,U,X,X,U,X,X,U,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,
- /* 0620 */ D,U,R,R,R,R,D,R,D,R,D,D,D,D,D,R,R,R,R,D,D,D,D,D,D,D,D,D,D,D,D,D,
- /* 0640 */ C,D,D,D,D,D,D,D,R,D,D,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,
- /* 0660 */ X,X,X,X,X,X,X,X,X,X,X,X,X,X,D,D,X,R,R,R,U,R,R,R,D,D,D,D,D,D,D,D,
- /* 0680 */ D,D,D,D,D,D,D,D,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,D,D,D,D,D,D,
- /* 06A0 */ D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,
- /* 06C0 */ R,D,D,R,R,R,R,R,R,R,R,R,D,R,D,R,D,D,R,R,X,R,X,X,X,X,X,X,X,U,X,X,
- /* 06E0 */ X,X,X,X,X,X,X,X,X,X,X,X,X,X,R,R,X,X,X,X,X,X,X,X,X,X,D,D,D,X,X,D,
-
- /* Syriac */
-
- /* 0700 */ X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,A,X,D,D,D,DR,DR,R,R,R,D,D,D,D,R,D,
- /* 0720 */ D,D,D,D,D,D,D,D,R,D,DR,D,R,D,D,DR,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,
- /* 0740 */ X,X,X,X,X,X,X,X,X,X,X,X,X,R,D,D,
-
- /* Arabic Supplement */
-
- /* 0740 */ D,D,D,D,D,D,D,D,D,R,R,R,D,D,D,D,
- /* 0760 */ D,D,D,D,D,D,D,D,D,D,D,R,R,D,D,D,D,R,D,R,R,D,D,D,R,R,D,D,D,D,D,D,
-
- /* FILLER */
-
- /* 0780 */ X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,
- /* 07A0 */ X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,
-
- /* NKo */
-
- /* 07C0 */ X,X,X,X,X,X,X,X,X,X,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,
- /* 07E0 */ D,D,D,D,D,D,D,D,D,D,D,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,C,X,X,X,X,X,
-
- /* FILLER */
-
- /* 0800 */ X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,
- /* 0820 */ X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,
-
- /* Mandaic */
-
- /* 0840 */ R,D,D,D,D,D,R,D,D,R,D,D,D,D,D,R,D,D,D,D,R,D,U,U,U,X,X,X,X,X,X,X,
- /* 0860 */ X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,
- /* 0880 */ X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,
-
- /* Arabic Extended-A */
-
- /* 08A0 */ D,D,D,D,D,D,D,D,D,D,R,R,R,U,R,D,D,R,R,
-
-#define joining_offset_0x1806 691
-
- /* Mongolian */
-
- /* 1800 */ U,D,X,X,C,X,X,X,U,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,
- /* 1820 */ D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,
- /* 1840 */ D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,
- /* 1860 */ D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,X,X,X,X,X,X,X,X,
- /* 1880 */ U,U,U,U,U,U,U,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,
- /* 18A0 */ D,D,D,D,D,D,D,D,D,X,D,
-
-#define joining_offset_0x200c 856
-
- /* General Punctuation */
-
- /* 2000 */ U,C,
-
-#define joining_offset_0x2066 858
-
- /* General Punctuation */
-
- /* 2060 */ U,U,U,U,
-
-#define joining_offset_0xa840 862
-
- /* Phags-pa */
-
- /* A840 */ D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,
- /* A860 */ D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,L,U,
-
-#define joining_offset_0x10ac0 914
-
- /* Manichaean */
-
- /* 10AC0 */ D,D,D,D,D,R,U,R,U,R,R,U,U,L,R,R,R,R,R,D,D,D,D,L,D,D,D,D,D,R,D,D,
- /* 10AE0 */ D,R,U,U,R,X,X,X,X,X,X,D,D,D,D,R,
-
-#define joining_offset_0x10b80 962
-
- /* Psalter Pahlavi */
-
- /* 10B80 */ D,R,D,R,R,R,D,D,D,R,D,D,R,D,R,R,D,R,X,X,X,X,X,X,X,X,X,X,X,X,X,X,
- /* 10BA0 */ X,X,X,X,X,X,X,X,X,R,R,R,R,D,D,U,
-
-}; /* Table items: 1010; occupancy: 57% */
-
-
-static unsigned int
-joining_type (hb_codepoint_t u)
-{
- switch (u >> 12)
- {
- case 0x0:
- if (0x0600 <= u && u <= 0x08B2) return joining_table[u - 0x0600 + joining_offset_0x0600];
- break;
-
- case 0x1:
- if (0x1806 <= u && u <= 0x18AA) return joining_table[u - 0x1806 + joining_offset_0x1806];
- break;
-
- case 0x2:
- if (0x200C <= u && u <= 0x200D) return joining_table[u - 0x200C + joining_offset_0x200c];
- if (0x2066 <= u && u <= 0x2069) return joining_table[u - 0x2066 + joining_offset_0x2066];
- break;
-
- case 0xA:
- if (0xA840 <= u && u <= 0xA873) return joining_table[u - 0xA840 + joining_offset_0xa840];
- break;
-
- case 0x10:
- if (0x10AC0 <= u && u <= 0x10AEF) return joining_table[u - 0x10AC0 + joining_offset_0x10ac0];
- if (0x10B80 <= u && u <= 0x10BAF) return joining_table[u - 0x10B80 + joining_offset_0x10b80];
- break;
-
- default:
- break;
- }
- return X;
-}
-
-#undef X
-#undef R
-#undef U
-#undef A
-#undef DR
-#undef L
-#undef C
-#undef D
-
-
-static const uint16_t shaping_table[][4] =
-{
- {0x0000, 0x0000, 0x0000, 0xFE80}, /* U+0621 ARABIC LETTER HAMZA ISOLATED FORM */
- {0x0000, 0x0000, 0xFE82, 0xFE81}, /* U+0622 ARABIC LETTER ALEF WITH MADDA ABOVE */
- {0x0000, 0x0000, 0xFE84, 0xFE83}, /* U+0623 ARABIC LETTER ALEF WITH HAMZA ABOVE */
- {0x0000, 0x0000, 0xFE86, 0xFE85}, /* U+0624 ARABIC LETTER WAW WITH HAMZA ABOVE */
- {0x0000, 0x0000, 0xFE88, 0xFE87}, /* U+0625 ARABIC LETTER ALEF WITH HAMZA BELOW */
- {0xFE8B, 0xFE8C, 0xFE8A, 0xFE89}, /* U+0626 ARABIC LETTER YEH WITH HAMZA ABOVE */
- {0x0000, 0x0000, 0xFE8E, 0xFE8D}, /* U+0627 ARABIC LETTER ALEF */
- {0xFE91, 0xFE92, 0xFE90, 0xFE8F}, /* U+0628 ARABIC LETTER BEH */
- {0x0000, 0x0000, 0xFE94, 0xFE93}, /* U+0629 ARABIC LETTER TEH MARBUTA */
- {0xFE97, 0xFE98, 0xFE96, 0xFE95}, /* U+062A ARABIC LETTER TEH */
- {0xFE9B, 0xFE9C, 0xFE9A, 0xFE99}, /* U+062B ARABIC LETTER THEH */
- {0xFE9F, 0xFEA0, 0xFE9E, 0xFE9D}, /* U+062C ARABIC LETTER JEEM */
- {0xFEA3, 0xFEA4, 0xFEA2, 0xFEA1}, /* U+062D ARABIC LETTER HAH */
- {0xFEA7, 0xFEA8, 0xFEA6, 0xFEA5}, /* U+062E ARABIC LETTER KHAH */
- {0x0000, 0x0000, 0xFEAA, 0xFEA9}, /* U+062F ARABIC LETTER DAL */
- {0x0000, 0x0000, 0xFEAC, 0xFEAB}, /* U+0630 ARABIC LETTER THAL */
- {0x0000, 0x0000, 0xFEAE, 0xFEAD}, /* U+0631 ARABIC LETTER REH */
- {0x0000, 0x0000, 0xFEB0, 0xFEAF}, /* U+0632 ARABIC LETTER ZAIN */
- {0xFEB3, 0xFEB4, 0xFEB2, 0xFEB1}, /* U+0633 ARABIC LETTER SEEN */
- {0xFEB7, 0xFEB8, 0xFEB6, 0xFEB5}, /* U+0634 ARABIC LETTER SHEEN */
- {0xFEBB, 0xFEBC, 0xFEBA, 0xFEB9}, /* U+0635 ARABIC LETTER SAD */
- {0xFEBF, 0xFEC0, 0xFEBE, 0xFEBD}, /* U+0636 ARABIC LETTER DAD */
- {0xFEC3, 0xFEC4, 0xFEC2, 0xFEC1}, /* U+0637 ARABIC LETTER TAH */
- {0xFEC7, 0xFEC8, 0xFEC6, 0xFEC5}, /* U+0638 ARABIC LETTER ZAH */
- {0xFECB, 0xFECC, 0xFECA, 0xFEC9}, /* U+0639 ARABIC LETTER AIN */
- {0xFECF, 0xFED0, 0xFECE, 0xFECD}, /* U+063A ARABIC LETTER GHAIN */
- {0x0000, 0x0000, 0x0000, 0x0000}, /* U+063B */
- {0x0000, 0x0000, 0x0000, 0x0000}, /* U+063C */
- {0x0000, 0x0000, 0x0000, 0x0000}, /* U+063D */
- {0x0000, 0x0000, 0x0000, 0x0000}, /* U+063E */
- {0x0000, 0x0000, 0x0000, 0x0000}, /* U+063F */
- {0x0000, 0x0000, 0x0000, 0x0000}, /* U+0640 */
- {0xFED3, 0xFED4, 0xFED2, 0xFED1}, /* U+0641 ARABIC LETTER FEH */
- {0xFED7, 0xFED8, 0xFED6, 0xFED5}, /* U+0642 ARABIC LETTER QAF */
- {0xFEDB, 0xFEDC, 0xFEDA, 0xFED9}, /* U+0643 ARABIC LETTER KAF */
- {0xFEDF, 0xFEE0, 0xFEDE, 0xFEDD}, /* U+0644 ARABIC LETTER LAM */
- {0xFEE3, 0xFEE4, 0xFEE2, 0xFEE1}, /* U+0645 ARABIC LETTER MEEM */
- {0xFEE7, 0xFEE8, 0xFEE6, 0xFEE5}, /* U+0646 ARABIC LETTER NOON */
- {0xFEEB, 0xFEEC, 0xFEEA, 0xFEE9}, /* U+0647 ARABIC LETTER HEH */
- {0x0000, 0x0000, 0xFEEE, 0xFEED}, /* U+0648 ARABIC LETTER WAW */
- {0xFBE8, 0xFBE9, 0xFEF0, 0xFEEF}, /* U+0649 ARABIC LETTER */
- {0xFEF3, 0xFEF4, 0xFEF2, 0xFEF1}, /* U+064A ARABIC LETTER YEH */
- {0x0000, 0x0000, 0x0000, 0x0000}, /* U+064B */
- {0x0000, 0x0000, 0x0000, 0x0000}, /* U+064C */
- {0x0000, 0x0000, 0x0000, 0x0000}, /* U+064D */
- {0x0000, 0x0000, 0x0000, 0x0000}, /* U+064E */
- {0x0000, 0x0000, 0x0000, 0x0000}, /* U+064F */
- {0x0000, 0x0000, 0x0000, 0x0000}, /* U+0650 */
- {0x0000, 0x0000, 0x0000, 0x0000}, /* U+0651 */
- {0x0000, 0x0000, 0x0000, 0x0000}, /* U+0652 */
- {0x0000, 0x0000, 0x0000, 0x0000}, /* U+0653 */
- {0x0000, 0x0000, 0x0000, 0x0000}, /* U+0654 */
- {0x0000, 0x0000, 0x0000, 0x0000}, /* U+0655 */
- {0x0000, 0x0000, 0x0000, 0x0000}, /* U+0656 */
- {0x0000, 0x0000, 0x0000, 0x0000}, /* U+0657 */
- {0x0000, 0x0000, 0x0000, 0x0000}, /* U+0658 */
- {0x0000, 0x0000, 0x0000, 0x0000}, /* U+0659 */
- {0x0000, 0x0000, 0x0000, 0x0000}, /* U+065A */
- {0x0000, 0x0000, 0x0000, 0x0000}, /* U+065B */
- {0x0000, 0x0000, 0x0000, 0x0000}, /* U+065C */
- {0x0000, 0x0000, 0x0000, 0x0000}, /* U+065D */
- {0x0000, 0x0000, 0x0000, 0x0000}, /* U+065E */
- {0x0000, 0x0000, 0x0000, 0x0000}, /* U+065F */
- {0x0000, 0x0000, 0x0000, 0x0000}, /* U+0660 */
- {0x0000, 0x0000, 0x0000, 0x0000}, /* U+0661 */
- {0x0000, 0x0000, 0x0000, 0x0000}, /* U+0662 */
- {0x0000, 0x0000, 0x0000, 0x0000}, /* U+0663 */
- {0x0000, 0x0000, 0x0000, 0x0000}, /* U+0664 */
- {0x0000, 0x0000, 0x0000, 0x0000}, /* U+0665 */
- {0x0000, 0x0000, 0x0000, 0x0000}, /* U+0666 */
- {0x0000, 0x0000, 0x0000, 0x0000}, /* U+0667 */
- {0x0000, 0x0000, 0x0000, 0x0000}, /* U+0668 */
- {0x0000, 0x0000, 0x0000, 0x0000}, /* U+0669 */
- {0x0000, 0x0000, 0x0000, 0x0000}, /* U+066A */
- {0x0000, 0x0000, 0x0000, 0x0000}, /* U+066B */
- {0x0000, 0x0000, 0x0000, 0x0000}, /* U+066C */
- {0x0000, 0x0000, 0x0000, 0x0000}, /* U+066D */
- {0x0000, 0x0000, 0x0000, 0x0000}, /* U+066E */
- {0x0000, 0x0000, 0x0000, 0x0000}, /* U+066F */
- {0x0000, 0x0000, 0x0000, 0x0000}, /* U+0670 */
- {0x0000, 0x0000, 0xFB51, 0xFB50}, /* U+0671 ARABIC LETTER ALEF WASLA */
- {0x0000, 0x0000, 0x0000, 0x0000}, /* U+0672 */
- {0x0000, 0x0000, 0x0000, 0x0000}, /* U+0673 */
- {0x0000, 0x0000, 0x0000, 0x0000}, /* U+0674 */
- {0x0000, 0x0000, 0x0000, 0x0000}, /* U+0675 */
- {0x0000, 0x0000, 0x0000, 0x0000}, /* U+0676 */
- {0x0000, 0x0000, 0x0000, 0xFBDD}, /* U+0677 ARABIC LETTER U WITH HAMZA ABOVE ISOLATED FORM */
- {0x0000, 0x0000, 0x0000, 0x0000}, /* U+0678 */
- {0xFB68, 0xFB69, 0xFB67, 0xFB66}, /* U+0679 ARABIC LETTER TTEH */
- {0xFB60, 0xFB61, 0xFB5F, 0xFB5E}, /* U+067A ARABIC LETTER TTEHEH */
- {0xFB54, 0xFB55, 0xFB53, 0xFB52}, /* U+067B ARABIC LETTER BEEH */
- {0x0000, 0x0000, 0x0000, 0x0000}, /* U+067C */
- {0x0000, 0x0000, 0x0000, 0x0000}, /* U+067D */
- {0xFB58, 0xFB59, 0xFB57, 0xFB56}, /* U+067E ARABIC LETTER PEH */
- {0xFB64, 0xFB65, 0xFB63, 0xFB62}, /* U+067F ARABIC LETTER TEHEH */
- {0xFB5C, 0xFB5D, 0xFB5B, 0xFB5A}, /* U+0680 ARABIC LETTER BEHEH */
- {0x0000, 0x0000, 0x0000, 0x0000}, /* U+0681 */
- {0x0000, 0x0000, 0x0000, 0x0000}, /* U+0682 */
- {0xFB78, 0xFB79, 0xFB77, 0xFB76}, /* U+0683 ARABIC LETTER NYEH */
- {0xFB74, 0xFB75, 0xFB73, 0xFB72}, /* U+0684 ARABIC LETTER DYEH */
- {0x0000, 0x0000, 0x0000, 0x0000}, /* U+0685 */
- {0xFB7C, 0xFB7D, 0xFB7B, 0xFB7A}, /* U+0686 ARABIC LETTER TCHEH */
- {0xFB80, 0xFB81, 0xFB7F, 0xFB7E}, /* U+0687 ARABIC LETTER TCHEHEH */
- {0x0000, 0x0000, 0xFB89, 0xFB88}, /* U+0688 ARABIC LETTER DDAL */
- {0x0000, 0x0000, 0x0000, 0x0000}, /* U+0689 */
- {0x0000, 0x0000, 0x0000, 0x0000}, /* U+068A */
- {0x0000, 0x0000, 0x0000, 0x0000}, /* U+068B */
- {0x0000, 0x0000, 0xFB85, 0xFB84}, /* U+068C ARABIC LETTER DAHAL */
- {0x0000, 0x0000, 0xFB83, 0xFB82}, /* U+068D ARABIC LETTER DDAHAL */
- {0x0000, 0x0000, 0xFB87, 0xFB86}, /* U+068E ARABIC LETTER DUL */
- {0x0000, 0x0000, 0x0000, 0x0000}, /* U+068F */
- {0x0000, 0x0000, 0x0000, 0x0000}, /* U+0690 */
- {0x0000, 0x0000, 0xFB8D, 0xFB8C}, /* U+0691 ARABIC LETTER RREH */
- {0x0000, 0x0000, 0x0000, 0x0000}, /* U+0692 */
- {0x0000, 0x0000, 0x0000, 0x0000}, /* U+0693 */
- {0x0000, 0x0000, 0x0000, 0x0000}, /* U+0694 */
- {0x0000, 0x0000, 0x0000, 0x0000}, /* U+0695 */
- {0x0000, 0x0000, 0x0000, 0x0000}, /* U+0696 */
- {0x0000, 0x0000, 0x0000, 0x0000}, /* U+0697 */
- {0x0000, 0x0000, 0xFB8B, 0xFB8A}, /* U+0698 ARABIC LETTER JEH */
- {0x0000, 0x0000, 0x0000, 0x0000}, /* U+0699 */
- {0x0000, 0x0000, 0x0000, 0x0000}, /* U+069A */
- {0x0000, 0x0000, 0x0000, 0x0000}, /* U+069B */
- {0x0000, 0x0000, 0x0000, 0x0000}, /* U+069C */
- {0x0000, 0x0000, 0x0000, 0x0000}, /* U+069D */
- {0x0000, 0x0000, 0x0000, 0x0000}, /* U+069E */
- {0x0000, 0x0000, 0x0000, 0x0000}, /* U+069F */
- {0x0000, 0x0000, 0x0000, 0x0000}, /* U+06A0 */
- {0x0000, 0x0000, 0x0000, 0x0000}, /* U+06A1 */
- {0x0000, 0x0000, 0x0000, 0x0000}, /* U+06A2 */
- {0x0000, 0x0000, 0x0000, 0x0000}, /* U+06A3 */
- {0xFB6C, 0xFB6D, 0xFB6B, 0xFB6A}, /* U+06A4 ARABIC LETTER VEH */
- {0x0000, 0x0000, 0x0000, 0x0000}, /* U+06A5 */
- {0xFB70, 0xFB71, 0xFB6F, 0xFB6E}, /* U+06A6 ARABIC LETTER PEHEH */
- {0x0000, 0x0000, 0x0000, 0x0000}, /* U+06A7 */
- {0x0000, 0x0000, 0x0000, 0x0000}, /* U+06A8 */
- {0xFB90, 0xFB91, 0xFB8F, 0xFB8E}, /* U+06A9 ARABIC LETTER KEHEH */
- {0x0000, 0x0000, 0x0000, 0x0000}, /* U+06AA */
- {0x0000, 0x0000, 0x0000, 0x0000}, /* U+06AB */
- {0x0000, 0x0000, 0x0000, 0x0000}, /* U+06AC */
- {0xFBD5, 0xFBD6, 0xFBD4, 0xFBD3}, /* U+06AD ARABIC LETTER NG */
- {0x0000, 0x0000, 0x0000, 0x0000}, /* U+06AE */
- {0xFB94, 0xFB95, 0xFB93, 0xFB92}, /* U+06AF ARABIC LETTER GAF */
- {0x0000, 0x0000, 0x0000, 0x0000}, /* U+06B0 */
- {0xFB9C, 0xFB9D, 0xFB9B, 0xFB9A}, /* U+06B1 ARABIC LETTER NGOEH */
- {0x0000, 0x0000, 0x0000, 0x0000}, /* U+06B2 */
- {0xFB98, 0xFB99, 0xFB97, 0xFB96}, /* U+06B3 ARABIC LETTER GUEH */
- {0x0000, 0x0000, 0x0000, 0x0000}, /* U+06B4 */
- {0x0000, 0x0000, 0x0000, 0x0000}, /* U+06B5 */
- {0x0000, 0x0000, 0x0000, 0x0000}, /* U+06B6 */
- {0x0000, 0x0000, 0x0000, 0x0000}, /* U+06B7 */
- {0x0000, 0x0000, 0x0000, 0x0000}, /* U+06B8 */
- {0x0000, 0x0000, 0x0000, 0x0000}, /* U+06B9 */
- {0x0000, 0x0000, 0xFB9F, 0xFB9E}, /* U+06BA ARABIC LETTER NOON GHUNNA */
- {0xFBA2, 0xFBA3, 0xFBA1, 0xFBA0}, /* U+06BB ARABIC LETTER RNOON */
- {0x0000, 0x0000, 0x0000, 0x0000}, /* U+06BC */
- {0x0000, 0x0000, 0x0000, 0x0000}, /* U+06BD */
- {0xFBAC, 0xFBAD, 0xFBAB, 0xFBAA}, /* U+06BE ARABIC LETTER HEH DOACHASHMEE */
- {0x0000, 0x0000, 0x0000, 0x0000}, /* U+06BF */
- {0x0000, 0x0000, 0xFBA5, 0xFBA4}, /* U+06C0 ARABIC LETTER HEH WITH YEH ABOVE */
- {0xFBA8, 0xFBA9, 0xFBA7, 0xFBA6}, /* U+06C1 ARABIC LETTER HEH GOAL */
- {0x0000, 0x0000, 0x0000, 0x0000}, /* U+06C2 */
- {0x0000, 0x0000, 0x0000, 0x0000}, /* U+06C3 */
- {0x0000, 0x0000, 0x0000, 0x0000}, /* U+06C4 */
- {0x0000, 0x0000, 0xFBE1, 0xFBE0}, /* U+06C5 ARABIC LETTER KIRGHIZ OE */
- {0x0000, 0x0000, 0xFBDA, 0xFBD9}, /* U+06C6 ARABIC LETTER OE */
- {0x0000, 0x0000, 0xFBD8, 0xFBD7}, /* U+06C7 ARABIC LETTER U */
- {0x0000, 0x0000, 0xFBDC, 0xFBDB}, /* U+06C8 ARABIC LETTER YU */
- {0x0000, 0x0000, 0xFBE3, 0xFBE2}, /* U+06C9 ARABIC LETTER KIRGHIZ YU */
- {0x0000, 0x0000, 0x0000, 0x0000}, /* U+06CA */
- {0x0000, 0x0000, 0xFBDF, 0xFBDE}, /* U+06CB ARABIC LETTER VE */
- {0xFBFE, 0xFBFF, 0xFBFD, 0xFBFC}, /* U+06CC ARABIC LETTER FARSI YEH */
- {0x0000, 0x0000, 0x0000, 0x0000}, /* U+06CD */
- {0x0000, 0x0000, 0x0000, 0x0000}, /* U+06CE */
- {0x0000, 0x0000, 0x0000, 0x0000}, /* U+06CF */
- {0xFBE6, 0xFBE7, 0xFBE5, 0xFBE4}, /* U+06D0 ARABIC LETTER E */
- {0x0000, 0x0000, 0x0000, 0x0000}, /* U+06D1 */
- {0x0000, 0x0000, 0xFBAF, 0xFBAE}, /* U+06D2 ARABIC LETTER YEH BARREE */
- {0x0000, 0x0000, 0xFBB1, 0xFBB0}, /* U+06D3 ARABIC LETTER YEH BARREE WITH HAMZA ABOVE */
-};
-
-#define SHAPING_TABLE_FIRST 0x0621
-#define SHAPING_TABLE_LAST 0x06D3
-
-
-static const struct ligature_set_t {
- uint16_t first;
- struct ligature_pairs_t {
- uint16_t second;
- uint16_t ligature;
- } ligatures[4];
-} ligature_table[] =
-{
- { 0xFEDF, {
- { 0xFE88, 0xFEF9 }, /* ARABIC LIGATURE LAM WITH ALEF WITH HAMZA BELOW ISOLATED FORM */
- { 0xFE82, 0xFEF5 }, /* ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE ISOLATED FORM */
- { 0xFE8E, 0xFEFB }, /* ARABIC LIGATURE LAM WITH ALEF ISOLATED FORM */
- { 0xFE84, 0xFEF7 }, /* ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE ISOLATED FORM */
- }},
- { 0xFEE0, {
- { 0xFE88, 0xFEFA }, /* ARABIC LIGATURE LAM WITH ALEF WITH HAMZA BELOW FINAL FORM */
- { 0xFE82, 0xFEF6 }, /* ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE FINAL FORM */
- { 0xFE8E, 0xFEFC }, /* ARABIC LIGATURE LAM WITH ALEF FINAL FORM */
- { 0xFE84, 0xFEF8 }, /* ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE FINAL FORM */
- }},
-};
-
-
-#endif /* HB_OT_SHAPE_COMPLEX_ARABIC_TABLE_HH */
-
-/* == End of generated table == */
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-utf-private.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-utf-private.hh
deleted file mode 100644
index b9a6519d28e..00000000000
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-utf-private.hh
+++ /dev/null
@@ -1,204 +0,0 @@
-/*
- * 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_UTF_PRIVATE_HH
-#define HB_UTF_PRIVATE_HH
-
-#include "hb-private.hh"
-
-
-/* UTF-8 */
-
-#define HB_UTF8_COMPUTE(Char, Mask, Len) \
- if (Char < 128) { Len = 1; Mask = 0x7f; } \
- else if ((Char & 0xe0) == 0xc0) { Len = 2; Mask = 0x1f; } \
- else if ((Char & 0xf0) == 0xe0) { Len = 3; Mask = 0x0f; } \
- else if ((Char & 0xf8) == 0xf0) { Len = 4; Mask = 0x07; } \
- else Len = 0;
-
-static inline const uint8_t *
-hb_utf_next (const uint8_t *text,
- const uint8_t *end,
- hb_codepoint_t *unicode)
-{
- hb_codepoint_t c = *text, mask;
- unsigned int len;
-
- /* TODO check for overlong sequences? */
-
- HB_UTF8_COMPUTE (c, mask, len);
- if (unlikely (!len || (unsigned int) (end - text) < len)) {
- *unicode = -1;
- return text + 1;
- } else {
- hb_codepoint_t result;
- unsigned int i;
- result = c & mask;
- for (i = 1; i < len; i++)
- {
- if (unlikely ((text[i] & 0xc0) != 0x80))
- {
- *unicode = -1;
- return text + 1;
- }
- result <<= 6;
- result |= (text[i] & 0x3f);
- }
- *unicode = result;
- return text + len;
- }
-}
-
-static inline const uint8_t *
-hb_utf_prev (const uint8_t *text,
- const uint8_t *start,
- hb_codepoint_t *unicode)
-{
- const uint8_t *end = text--;
- while (start < text && (*text & 0xc0) == 0x80 && end - text < 4)
- text--;
-
- hb_codepoint_t c = *text, mask;
- unsigned int len;
-
- /* TODO check for overlong sequences? */
-
- HB_UTF8_COMPUTE (c, mask, len);
- if (unlikely (!len || (unsigned int) (end - text) != len)) {
- *unicode = -1;
- return end - 1;
- } else {
- hb_codepoint_t result;
- unsigned int i;
- result = c & mask;
- for (i = 1; i < len; i++)
- {
- result <<= 6;
- result |= (text[i] & 0x3f);
- }
- *unicode = result;
- return text;
- }
-}
-
-
-static inline unsigned int
-hb_utf_strlen (const uint8_t *text)
-{
- return strlen ((const char *) text);
-}
-
-
-/* UTF-16 */
-
-static inline const uint16_t *
-hb_utf_next (const uint16_t *text,
- const uint16_t *end,
- hb_codepoint_t *unicode)
-{
- hb_codepoint_t c = *text++;
-
- if (unlikely (hb_in_range<hb_codepoint_t> (c, 0xd800, 0xdbff)))
- {
- /* high surrogate */
- hb_codepoint_t l;
- if (text < end && ((l = *text), likely (hb_in_range<hb_codepoint_t> (l, 0xdc00, 0xdfff))))
- {
- /* low surrogate */
- *unicode = (c << 10) + l - ((0xd800 << 10) - 0x10000 + 0xdc00);
- text++;
- } else
- *unicode = -1;
- } else
- *unicode = c;
-
- return text;
-}
-
-static inline const uint16_t *
-hb_utf_prev (const uint16_t *text,
- const uint16_t *start,
- hb_codepoint_t *unicode)
-{
- hb_codepoint_t c = *--text;
-
- if (unlikely (hb_in_range<hb_codepoint_t> (c, 0xdc00, 0xdfff)))
- {
- /* low surrogate */
- hb_codepoint_t h;
- if (start < text && ((h = *(text - 1)), likely (hb_in_range<hb_codepoint_t> (h, 0xd800, 0xdbff))))
- {
- /* high surrogate */
- *unicode = (h << 10) + c - ((0xd800 << 10) - 0x10000 + 0xdc00);
- text--;
- } else
- *unicode = -1;
- } else
- *unicode = c;
-
- return text;
-}
-
-
-static inline unsigned int
-hb_utf_strlen (const uint16_t *text)
-{
- unsigned int l = 0;
- while (*text++) l++;
- return l;
-}
-
-
-/* UTF-32 */
-
-static inline const uint32_t *
-hb_utf_next (const uint32_t *text,
- const uint32_t *end HB_UNUSED,
- hb_codepoint_t *unicode)
-{
- *unicode = *text++;
- return text;
-}
-
-static inline const uint32_t *
-hb_utf_prev (const uint32_t *text,
- const uint32_t *start HB_UNUSED,
- hb_codepoint_t *unicode)
-{
- *unicode = *--text;
- return text;
-}
-
-static inline unsigned int
-hb_utf_strlen (const uint32_t *text)
-{
- unsigned int l = 0;
- while (*text++) l++;
- return l;
-}
-
-
-#endif /* HB_UTF_PRIVATE_HH */
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.30-PATCHES/ChangeLog b/Build/source/libs/harfbuzz/harfbuzz-0.9.31-PATCHES/ChangeLog
index d468c1c50ff..931ed64a213 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.30-PATCHES/ChangeLog
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.31-PATCHES/ChangeLog
@@ -1,3 +1,10 @@
+2014-07-17 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ Imported harfbuzz-0.9.31 source tree from:
+ http://www.freedesktop.org/software/harfbuzz/release/
+
+ * patch-01-cygwin: Adapted.
+
2014-07-10 Peter Breitenlohner <peb@mppmu.mpg.de>
Imported harfbuzz-0.9.30 source tree from:
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.30-PATCHES/TL-Changes b/Build/source/libs/harfbuzz/harfbuzz-0.9.31-PATCHES/TL-Changes
index 78dc71a9302..2faa6360a08 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.30-PATCHES/TL-Changes
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.31-PATCHES/TL-Changes
@@ -1,4 +1,4 @@
-Changes applied to the harfbuzz-0.9.30/ tree as obtained from:
+Changes applied to the harfbuzz-0.9.31/ tree as obtained from:
http://www.freedesktop.org/software/harfbuzz/release/
Removed:
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.30-PATCHES/patch-01-cygwin b/Build/source/libs/harfbuzz/harfbuzz-0.9.31-PATCHES/patch-01-cygwin
index 211d79cda2a..f9ae6553764 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.30-PATCHES/patch-01-cygwin
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.31-PATCHES/patch-01-cygwin
@@ -1,6 +1,6 @@
-diff -ur harfbuzz-0.9.30.orig/src/hb-private.hh harfbuzz-0.9.30/src/hb-private.hh
---- harfbuzz-0.9.30.orig/src/hb-private.hh 2014-06-27 21:17:01.000000000 +0200
-+++ harfbuzz-0.9.30/src/hb-private.hh 2014-07-10 08:37:35.000000000 +0200
+diff -ur harfbuzz-0.9.31.orig/src/hb-private.hh harfbuzz-0.9.31/src/hb-private.hh
+--- harfbuzz-0.9.31.orig/src/hb-private.hh 2014-07-11 20:14:31.000000000 +0200
++++ harfbuzz-0.9.31/src/hb-private.hh 2014-07-17 08:37:56.000000000 +0200
@@ -87,7 +87,7 @@
#endif
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/AUTHORS b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/AUTHORS
index 81cdc4cf37f..81cdc4cf37f 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/AUTHORS
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/AUTHORS
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/Android.mk b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/Android.mk
index 610b40ab4b0..07dfa5b1d87 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/Android.mk
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/Android.mk
@@ -14,6 +14,40 @@
## limitations under the License.
##
+#############################################################
+# Note:
+#
+# This file is used to build HarfBuzz within the Android
+# platform itself. If you need to compile HarfBuzz to
+# ship with your Android NDK app, you can use the autotools
+# build system to do so. To do that you need to install a
+# "standalone" toolchain with the NDK, eg:
+#
+# ndk/build/tools/make-standalone-toolchain.sh \
+# --platform=android-18 \
+# --install-dir=/prefix
+#
+# Set PLATFORM_PREFIX eng var to that prefix and make sure
+# the cross-compile tools from PLATFORM_PREFIX are in path.
+# Configure and install HarfBuzz:
+#
+# ./configure --host=arm-linux-androideabi \
+# --prefix=$PLATFORM_PREFIX \
+# --enable-static \
+# --with-freetype \
+# PKG_CONFIG_LIBDIR=$PLATFORM_PREFIX/lib/pkgconfig
+# make install
+#
+# You can first build FreeType the same way:
+#
+# ./configure --host=arm-linux-androideabi \
+# --prefix=$PLATFORM_PREFIX \
+# --enable-static \
+# --without-png \
+# PKG_CONFIG_LIBDIR=$PLATFORM_PREFIX/lib/pkgconfig
+# make install
+#
+
LOCAL_PATH:= $(call my-dir)
HARFBUZZ_SRC_FILES = \
@@ -59,33 +93,14 @@ LOCAL_SRC_FILES:= \
src/hb-icu.cc
LOCAL_CPP_EXTENSION := .cc
LOCAL_SHARED_LIBRARIES := \
- libcutils \
- libicuuc \
- libicui18n \
- libutils
+ libcutils \
+ libicuuc \
+ libicui18n \
+ libutils \
+ liblog
LOCAL_C_INCLUDES += \
$(LOCAL_PATH)/src \
- external/icu4c/common
-LOCAL_CFLAGS += -DHB_NO_MT -DHAVE_OT -DHAVE_ICU
+ external/icu/icu4c/source/common
+LOCAL_CFLAGS += -DHB_NO_MT -DHAVE_OT -DHAVE_ICU -DHAVE_ICU_BUILTIN
LOCAL_MODULE:= libharfbuzz_ng
include $(BUILD_SHARED_LIBRARY)
-
-#############################################################
-# build the harfbuzz static library
-#
-include $(CLEAR_VARS)
-LOCAL_ARM_MODE := arm
-LOCAL_MODULE_TAGS := optional
-LOCAL_SRC_FILES:= \
- $(HARFBUZZ_SRC_FILES) \
- src/hb-ucdn.cc \
- src/hb-ucdn/ucdn.c
-LOCAL_CPP_EXTENSION := .cc
-LOCAL_STATIC_LIBRARIES := libft2
-LOCAL_C_INCLUDES += \
- $(LOCAL_PATH)/src \
- external/freetype/include
-LOCAL_CFLAGS += -DHB_NO_MT -DHAVE_OT -DHAVE_UCDN -DHAVE_FREETYPE
-LOCAL_MODULE:= libharfbuzz_ng
-
-include $(BUILD_STATIC_LIBRARY)
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/ChangeLog b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/ChangeLog
index 37d59ffef05..c193ef18222 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/ChangeLog
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/ChangeLog
@@ -1,3 +1,396 @@
+commit 976c8f455221eb599d1c446eafd88d51d7d2aa65
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Wed Jul 16 15:34:20 2014 -0400
+
+ New API: hb_buffer_[sg]et_replacement_codepoint()
+
+ With this change, we now by default replace broken UTF-8/16/32 bits
+ with U+FFFD. This can be changed by calling new API on the buffer.
+ Previously the replacement value used to be (hb_codepoint_t)-1.
+
+ Note that hb_buffer_clear_contents() does NOT reset the replacement
+ character.
+
+ See discussion here:
+
+ https://github.com/behdad/harfbuzz/commit/6f13b6d62daae4989e3cc2fe4b168e5c59650964
+
+ New API:
+
+ hb_buffer_set_replacement_codepoint()
+ hb_buffer_get_replacement_codepoint()
+
+ src/hb-buffer-private.hh | 1 +
+ src/hb-buffer.cc | 45
+ ++++++++++++++++++++++++++++++++++++++++++---
+ src/hb-buffer.h | 15 ++++++++++++++-
+ src/hb-utf-private.hh | 34 ++++++++++++++++++++--------------
+ test/api/test-buffer.c | 26 +++++++++++++++-----------
+ 5 files changed, 92 insertions(+), 29 deletions(-)
+
+commit bcba8b45024e1eca8be77ca2657de1dc44dbf8fb
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Wed Jul 16 14:59:04 2014 -0400
+
+ New API hb_buffer_add_codepoints()
+
+ Like hb_buffer_add_utf32, but doesn't do any Unicode validation.
+ This is like what hb_buffer_add_utf32 used to be until a couple
+ commits ago.
+
+ src/hb-buffer.cc | 32 +++++++++++++++++++++++++++-----
+ src/hb-buffer.h | 8 ++++++++
+ 2 files changed, 35 insertions(+), 5 deletions(-)
+
+commit 625dbf141a05f1ae81a7b8cbc529996370101284
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Wed Jul 16 14:49:55 2014 -0400
+
+ [buffer] Templatize UTF-* functions
+
+ src/hb-buffer.cc | 10 +-
+ src/hb-utf-private.hh | 307
+ ++++++++++++++++++++++++++------------------------
+ 2 files changed, 166 insertions(+), 151 deletions(-)
+
+commit e634fed4285ce440d277345727ed01757df6d779
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Wed Jul 16 14:17:26 2014 -0400
+
+ [buffer] Validate UTF-32 input
+
+ Same as what we do for UTF-8 and UTF-16.
+
+ src/hb-utf-private.hh | 13 +++++++++---
+ test/api/test-buffer.c | 55
+ ++++++++++++++++++++++++++++++++++++++++++++++++++
+ 2 files changed, 65 insertions(+), 3 deletions(-)
+
+commit b98c5db32d15fcfb27ce2f6737203ce1ad124319
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Wed Jul 16 13:44:01 2014 -0400
+
+ Minor refactoring
+
+ src/hb-ot-layout-gsubgpos-private.hh | 25 ++++++-------------------
+ 1 file changed, 6 insertions(+), 19 deletions(-)
+
+commit 844f1a487d9c39724ebff20e89f6184c9a59be0b
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Wed Jul 16 13:32:51 2014 -0400
+
+ [tests] Add record-test.sh
+
+ test/shaping/Makefile.am | 1 +
+ test/shaping/record-test.sh | 49
+ +++++++++++++++++++++++++++++++++++++++++++++
+ 2 files changed, 50 insertions(+)
+
+commit 3b861421a772f52eb232ff93bd74b5a8214801ec
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Wed Jul 16 13:22:05 2014 -0400
+
+ Fix Mongolian Variation Selectors for fonts without GDEF
+
+ Originally we fixed those in 79d1007a501fd63c0ba4d51038c513e6b8b94740.
+ However, fonts like MongolianWhite don't have GDEF, but have
+ IgnoreMarks
+ in their LigatureSubstitute init/etc features. We were synthesizing a
+ GDEF class of mark for Mongolian Variation Selectors and as such the
+ ligature lookups where not matching. Uniscribe doesn't do that.
+
+ I tried with more sophisticated fixes, like, if there is no GDEF and
+ a lookup-flag mismatch happens, instead of rejecting a match, try
+ skipping that glyph. That surely produces some interesting behavior,
+ but since we don't want to support fonts missing GDEF more than
+ we have
+ to, I went for this simpler fix which is to always mark
+ default-ignorables as base when synthesizing GDEF.
+
+ Micro-test added.
+
+ Fixes rest of https://bugs.freedesktop.org/show_bug.cgi?id=65258
+
+ src/hb-ot-shape.cc | 13
+ +++++++++++--
+ .../sha1sum/37033cc5cf37bb223d7355153016b6ccece93b28.ttf | Bin 0 ->
+ 2780 bytes
+ test/shaping/fonts/sha1sum/MANIFEST | 1 +
+ test/shaping/tests/MANIFEST | 1 +
+ test/shaping/tests/mongolian-variation-selector.tests | 1 +
+ 5 files changed, 14 insertions(+), 2 deletions(-)
+
+commit 878a25375b2fdf64cf0cc30c23fca9fcd58548e8
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Wed Jul 16 13:21:26 2014 -0400
+
+ Minor
+
+ src/hb-ot-shape.cc | 1 +
+ src/hb-unicode-private.hh | 6 +++---
+ 2 files changed, 4 insertions(+), 3 deletions(-)
+
+commit ec181e50140fc65b32d6080e2f7f73bbe0269ba9
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Wed Jul 16 13:10:03 2014 -0400
+
+ Minor moving around
+
+ src/hb-ot-shape.cc | 14 +++++++++-----
+ 1 file changed, 9 insertions(+), 5 deletions(-)
+
+commit e7ce50d9eb6e3678f731b10dfeb308ffc478af8d
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Wed Jul 16 12:30:39 2014 -0400
+
+ [indic] Fix access past end of array
+
+ src/hb-ot-shape-complex-indic.cc | 7 ++++---
+ 1 file changed, 4 insertions(+), 3 deletions(-)
+
+commit 73e23b0acfd2948d500321769035c56c9e072d77
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Tue Jul 15 18:43:49 2014 -0400
+
+ Whitespace
+
+ src/hb-ot-layout-gsubgpos-private.hh | 1 -
+ 1 file changed, 1 deletion(-)
+
+commit f27be105afb86b337c7d940badc5a6462f0b58bb
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Fri Jul 11 18:15:34 2014 -0400
+
+ [Android.mk] Actually remove static library
+
+ Android.mk | 26 --------------------------
+ 1 file changed, 26 deletions(-)
+
+commit 96b80e9bcc4796eedac09d284dc8cc0439ced6ba
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Fri Jul 11 17:00:12 2014 -0400
+
+ [Android.mk] Remove static library, add note re how to build
+
+ Android.mk | 41 +++++++++++++++++++++++++++++++++++++----
+ 1 file changed, 37 insertions(+), 4 deletions(-)
+
+commit b7bc0b671d2d568cb64b647dad2ca866a4e0183b
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Fri Jul 11 16:20:28 2014 -0400
+
+ Simplify / speed up UTF-8 code
+
+ src/hb-utf-private.hh | 15 ++++++---------
+ 1 file changed, 6 insertions(+), 9 deletions(-)
+
+commit af2490c0959daa0fe7f32a8b3b3a3699c7fc5f48
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Fri Jul 11 16:10:58 2014 -0400
+
+ Only accept well-formed UTF-8 sequences
+
+ Enable tests that were disabled before, and adjust one test,
+ and add more tests.
+
+ src/hb-utf-private.hh | 93
+ +++++++++++++++++++++++++++++++++-----------------
+ test/api/test-buffer.c | 9 +++--
+ 2 files changed, 68 insertions(+), 34 deletions(-)
+
+commit 7323d385cc758c06671cb38239d240eb517b28bc
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Fri Jul 11 15:10:05 2014 -0400
+
+ Simplify hb_utf_prev<16> to call hb_utf_next<16>
+
+ src/hb-utf-private.hh | 23 ++++++++---------------
+ 1 file changed, 8 insertions(+), 15 deletions(-)
+
+commit c09a607a842fdd7b33e2c57e8af96d21ff091acd
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Fri Jul 11 15:05:36 2014 -0400
+
+ Use hb_in_range() for arabic and indic tables
+
+ Though, looks like gcc was smart enough to produce the same code
+ before...
+
+ src/gen-arabic-table.py | 18 +-
+ src/gen-indic-table.py | 10 +-
+ src/hb-ot-shape-complex-arabic-table.hh | 420
+ ++++++++++++++++----------------
+ src/hb-ot-shape-complex-indic-table.cc | 88 +++----
+ 4 files changed, 268 insertions(+), 268 deletions(-)
+
+commit 7627100f428ac0ec8509d961d368d2d25d8f0b6e
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Fri Jul 11 14:54:42 2014 -0400
+
+ Mark unsigned integer literals with the u suffix
+
+ Simplifies hb_in_range() calls as the type can be inferred.
+ The rest is obsessiveness, I admit.
+
+ src/hb-buffer-serialize.cc | 2 +-
+ src/hb-common.cc | 4 +-
+ src/hb-coretext.cc | 16 +--
+ src/hb-open-file-private.hh | 4 +-
+ src/hb-open-type-private.hh | 2 +-
+ src/hb-ot-cmap-table.hh | 4 +-
+ src/hb-ot-head-table.hh | 6 +-
+ src/hb-ot-hhea-table.hh | 2 +-
+ src/hb-ot-layout-common-private.hh | 14 +--
+ src/hb-ot-layout-gdef-table.hh | 8 +-
+ src/hb-ot-layout-gpos-table.hh | 24 ++--
+ src/hb-ot-layout-gsub-table.hh | 6 +-
+ src/hb-ot-layout-gsubgpos-private.hh | 2 +-
+ src/hb-ot-layout-jstf-table.hh | 2 +-
+ src/hb-ot-layout-private.hh | 4 +-
+ src/hb-ot-layout.h | 6 +-
+ src/hb-ot-map-private.hh | 8 +-
+ src/hb-ot-maxp-table.hh | 4 +-
+ src/hb-ot-shape-complex-arabic-fallback.hh | 2 +-
+ src/hb-ot-shape-complex-hangul.cc | 36 +++---
+ src/hb-ot-shape-complex-hebrew.cc | 134 ++++++++++-----------
+ src/hb-ot-shape-complex-indic.cc | 182
+ ++++++++++++++---------------
+ src/hb-ot-shape-complex-myanmar.cc | 56 ++++-----
+ src/hb-ot-shape-complex-sea.cc | 8 +-
+ src/hb-ot-shape-complex-thai.cc | 84 ++++++-------
+ src/hb-ot-shape-fallback.cc | 40 +++----
+ src/hb-ot-shape-normalize.cc | 2 +-
+ src/hb-ot-shape.cc | 6 +-
+ src/hb-ot-tag.cc | 18 +--
+ src/hb-unicode-private.hh | 40 +++----
+ src/hb-uniscribe.cc | 14 +--
+ src/hb-utf-private.hh | 16 +--
+ 32 files changed, 378 insertions(+), 378 deletions(-)
+
+commit a8b89a09f6d3a3466282aae07fd65e143f9f8f83
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Fri Jul 11 14:18:01 2014 -0400
+
+ Simplify hb_in_range()
+
+ It's both faster and produces smaller code. Now I feel stupid for
+ not writing it this way before.
+
+ src/hb-private.hh | 16 ++++++----------
+ 1 file changed, 6 insertions(+), 10 deletions(-)
+
+commit db8934faa1854dafaf4c4ce34d1818e12f67ef52
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Fri Jul 11 13:58:36 2014 -0400
+
+ Simplify hb_utf_prev<8> to call hb_utf_next<8>
+
+ src/hb-utf-private.hh | 24 ++++--------------------
+ 1 file changed, 4 insertions(+), 20 deletions(-)
+
+commit efe74214bbb68eaa3d7621e73869b5d58210107e
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Fri Jul 11 11:59:48 2014 -0400
+
+ Show U+FFFD REPLACEMENT CHARACTER for invalid Unicode codepoints
+
+ Only if the font doesn't support it. Ie, this gives the user to
+ use non-Unicode codepoints as private values and return a meaningful
+ glyph for them. But if it's invalid and font callback doesn't
+ like it, and if font has U+FFFD, show that instead.
+
+ Font functions that do not want this automatic replacement to
+ happen should return true from get_glyph() if unicode > 0x10FFFF.
+
+ Replaces https://github.com/behdad/harfbuzz/pull/27
+
+ src/hb-ot-shape-normalize.cc | 7 +++++++
+ 1 file changed, 7 insertions(+)
+
+commit 6f13b6d62daae4989e3cc2fe4b168e5c59650964
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Thu Jul 10 19:31:40 2014 -0400
+
+ When parsing UTF-16, generate invalid codepoint for lonely low
+ surrogate
+
+ Test passes now.
+
+ src/hb-utf-private.hh | 42 ++++++++++++++++++++++++++++--------------
+ 1 file changed, 28 insertions(+), 14 deletions(-)
+
+commit 24b2ba9dfa7c35769cd843a07079ef88fa594bf8
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Thu Jul 10 19:31:16 2014 -0400
+
+ [test-buffer] Add test for lonely low-surrogate
+
+ Currenty fails. Ouch!
+
+ test/api/test-buffer.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+commit 6334495ac1ee0a86228e67794b7a41ee91146f3b
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Thu Jul 10 19:22:07 2014 -0400
+
+ Use zh-Hans / zh-Hant when converting OT language tag to hb_language_t
+
+ src/hb-ot-tag.cc | 15 +++------------
+ test/api/test-ot-tag.c | 6 +++---
+ 2 files changed, 6 insertions(+), 15 deletions(-)
+
+commit f381e320df795a9d73ac81499f8ed8c311bcb2f0
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Thu Jul 10 19:20:35 2014 -0400
+
+ Fix lang matching logic
+
+ Previous code was broken logically, but harmless.
+
+ src/hb-ot-tag.cc | 2 +-
+ test/api/test-ot-tag.c | 1 +
+ 2 files changed, 2 insertions(+), 1 deletion(-)
+
+commit ee5350d667f3a9644667202597694581f2cf657d
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Thu Jul 10 19:06:45 2014 -0400
+
+ Accept BCP 47 zh-Hans / zh-Hant language tags
+
+ src/hb-ot-tag.cc | 27 ++++++++++++++++++---------
+ test/api/test-ot-tag.c | 3 +++
+ 2 files changed, 21 insertions(+), 9 deletions(-)
+
+commit 431540286794e023ec5eafd5eeedc008d4f31b4c
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Thu Jul 10 17:37:26 2014 -0400
+
+ [Android.mk] Add note re static library
+
+ Android.mk | 7 +++++++
+ 1 file changed, 7 insertions(+)
+
+commit 5b4131eb1c670c20fd9a45a5617c64060a505ef5
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Wed Jul 9 19:09:08 2014 -0400
+
+ [Android.mk] Update for new ICU
+
+ https://android-review.googlesource.com/#/c/100722/1/Android.mk
+
+ Android.mk | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit ab28196c9557a63971a56915aa6f98bb5803bd1b
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Wed Jul 9 18:18:06 2014 -0400
+
+ [Android.mk] Re-enable ICU unicode funcs
+
+ Android.mk | 11 ++++++-----
+ 1 file changed, 6 insertions(+), 5 deletions(-)
+
commit ea001374b86c4f1b24246c08a3d66d2a0e95a827
Author: Behdad Esfahbod <behdad@behdad.org>
Date: Wed Jul 9 17:28:43 2014 -0400
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/Makefile.am b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/Makefile.am
index fa8711403d5..fa8711403d5 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/Makefile.am
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/Makefile.am
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/NEWS b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/NEWS
index bddf4578dbb..edeae61404e 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/NEWS
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/NEWS
@@ -1,6 +1,35 @@
+Overview of changes leading to 0.9.31
+Wednesday, July 16, 2014
+=====================================
+
+- Only accept valid UTF-8/16/32; we missed many cases before.
+- Better shaping of invalid UTF-8/16/32. Falls back to
+ U+FFFD REPLACEMENT CHARACTER now.
+- With all changes in this release, the buffer will contain fully
+ valid Unicode after hb_buffer_add_utf8/16/32 no matter how
+ broken the input is. This can be overriden though. See below.
+- Fix Mongolian Variation Selectors for fonts without GDEF.
+- Fix minor invalid buffer access.
+- Accept zh-Hant and zh-Hans language tags. hb_ot_tag_to_language()
+ now uses these instead of private tags.
+- Build fixes.
+- New API:
+ * hb_buffer_add_codepoints(). This does what hb_buffer_add_utf32()
+ used to do, ie. no validity check on the input at all. add_utf32
+ now replaces invalid Unicode codepoints with the replacement
+ character (see below).
+ * hb_buffer_set_replacement_codepoint()
+ * hb_buffer_get_replacement_codepoint()
+ Previously, in hb_buffer_add_utf8 and hb_buffer_add_utf16, when
+ we detected broken input, we replaced that with (hb_codepoint_t)-1.
+ This has changed to use U+FFFD now, but can be changed using these
+ new API.
+
+
Overview of changes leading to 0.9.30
Wednesday, July 9, 2014
=====================================
+
- Update to Unicode 7.0.0:
* New scripts Manichaean and Psalter Pahlavi are shaped using
Arabic shaper.
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/README b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/README
index 74e739da52a..74e739da52a 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/README
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/README
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/THANKS b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/THANKS
index 940cfde5c39..940cfde5c39 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/THANKS
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/THANKS
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/TODO b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/TODO
index e1aa39c4c01..e1aa39c4c01 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/TODO
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/TODO
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/autogen.sh b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/autogen.sh
index a267f297b06..a267f297b06 100755
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/autogen.sh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/autogen.sh
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/config.h.in b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/config.h.in
index 491e7f428ef..491e7f428ef 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/config.h.in
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/config.h.in
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/configure.ac b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/configure.ac
index 085d4b5fb69..8efb112a18e 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/configure.ac
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/configure.ac
@@ -1,6 +1,6 @@
AC_PREREQ([2.64])
AC_INIT([HarfBuzz],
- [0.9.30],
+ [0.9.31],
[http://bugs.freedesktop.org/enter_bug.cgi?product=harfbuzz],
[harfbuzz],
[http://harfbuzz.org/])
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/gtk-doc.make b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/gtk-doc.make
index 104c3993f3e..104c3993f3e 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/gtk-doc.make
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/gtk-doc.make
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/harfbuzz.doap b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/harfbuzz.doap
index d2896ebefa8..d2896ebefa8 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/harfbuzz.doap
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/harfbuzz.doap
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/Makefile.am b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/Makefile.am
index 5832f7579a7..5832f7579a7 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/Makefile.am
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/Makefile.am
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/check-c-linkage-decls.sh b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/check-c-linkage-decls.sh
index b10310f5384..b10310f5384 100755
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/check-c-linkage-decls.sh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/check-c-linkage-decls.sh
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/check-defs.sh b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/check-defs.sh
index 357347f543a..357347f543a 100755
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/check-defs.sh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/check-defs.sh
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/check-header-guards.sh b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/check-header-guards.sh
index 9a3302c7f87..9a3302c7f87 100755
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/check-header-guards.sh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/check-header-guards.sh
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/check-includes.sh b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/check-includes.sh
index 5643c6973bc..5643c6973bc 100755
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/check-includes.sh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/check-includes.sh
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/check-libstdc++.sh b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/check-libstdc++.sh
index e7e0e295e1a..e7e0e295e1a 100755
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/check-libstdc++.sh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/check-libstdc++.sh
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/check-static-inits.sh b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/check-static-inits.sh
index 83d02c8a9bf..83d02c8a9bf 100755
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/check-static-inits.sh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/check-static-inits.sh
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/check-symbols.sh b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/check-symbols.sh
index e000b01b863..e000b01b863 100755
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/check-symbols.sh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/check-symbols.sh
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/gen-arabic-table.py b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/gen-arabic-table.py
index c4847081027..308435f991e 100755
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/gen-arabic-table.py
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/gen-arabic-table.py
@@ -90,7 +90,7 @@ def print_joining_table(f):
for start,end in ranges:
print
- print "#define joining_offset_0x%04x %d" % (start, offset)
+ print "#define joining_offset_0x%04xu %d" % (start, offset)
for u in range(start, end+1):
@@ -130,11 +130,11 @@ def print_joining_table(f):
print " {"
pages = set([u>>page_bits for u in [s for s,e in ranges]+[e for s,e in ranges]])
for p in sorted(pages):
- print " case 0x%0X:" % p
+ print " case 0x%0Xu:" % p
for (start,end) in ranges:
if p not in [start>>page_bits, end>>page_bits]: continue
- offset = "joining_offset_0x%04x" % start
- print " if (0x%04X <= u && u <= 0x%04X) return joining_table[u - 0x%04X + %s];" % (start, end, start, offset)
+ offset = "joining_offset_0x%04xu" % start
+ print " if (hb_in_range (u, 0x%04Xu, 0x%04Xu)) return joining_table[u - 0x%04Xu + %s];" % (start, end, start, offset)
print " break;"
print ""
print " default:"
@@ -195,13 +195,13 @@ def print_shaping_table(f):
for u in range (min_u, max_u + 1):
s = [shapes[u][shape] if u in shapes and shape in shapes[u] else 0
for shape in ['initial', 'medial', 'final', 'isolated']]
- value = ', '.join ("0x%04X" % c for c in s)
+ value = ', '.join ("0x%04Xu" % c for c in s)
print " {%s}, /* U+%04X %s */" % (value, u, names[u] if u in names else "")
print "};"
print
- print "#define SHAPING_TABLE_FIRST 0x%04X" % min_u
- print "#define SHAPING_TABLE_LAST 0x%04X" % max_u
+ print "#define SHAPING_TABLE_FIRST 0x%04Xu" % min_u
+ print "#define SHAPING_TABLE_LAST 0x%04Xu" % max_u
print
ligas = {}
@@ -231,9 +231,9 @@ def print_shaping_table(f):
keys.sort ()
for first in keys:
- print " { 0x%04X, {" % (first)
+ print " { 0x%04Xu, {" % (first)
for liga in ligas[first]:
- print " { 0x%04X, 0x%04X }, /* %s */" % (liga[0], liga[1], names[liga[1]])
+ print " { 0x%04Xu, 0x%04Xu }, /* %s */" % (liga[0], liga[1], names[liga[1]])
print " }},"
print "};"
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/gen-indic-table.py b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/gen-indic-table.py
index c63fe23c36a..4fb76f445c6 100755
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/gen-indic-table.py
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/gen-indic-table.py
@@ -185,7 +185,7 @@ for u in uu:
offset += ends[-1] - starts[-1]
print
print
- print "#define indic_offset_0x%04x %d" % (start, offset)
+ print "#define indic_offset_0x%04xu %d" % (start, offset)
starts.append (start)
print_block (block, start, end, data)
@@ -205,14 +205,14 @@ print " switch (u >> %d)" % page_bits
print " {"
pages = set([u>>page_bits for u in starts+ends+singles.keys()])
for p in sorted(pages):
- print " case 0x%0X:" % p
+ print " case 0x%0Xu:" % p
for (start,end) in zip (starts, ends):
if p not in [start>>page_bits, end>>page_bits]: continue
- offset = "indic_offset_0x%04x" % start
- print " if (0x%04X <= u && u <= 0x%04X) return indic_table[u - 0x%04X + %s];" % (start, end, start, offset)
+ offset = "indic_offset_0x%04xu" % start
+ print " if (hb_in_range (u, 0x%04Xu, 0x%04Xu)) return indic_table[u - 0x%04Xu + %s];" % (start, end, start, offset)
for u,d in singles.items ():
if p != u>>page_bits: continue
- print " if (unlikely (u == 0x%04X)) return _(%s,%s);" % (u, short[0][d[0]], short[1][d[1]])
+ print " if (unlikely (u == 0x%04Xu)) return _(%s,%s);" % (u, short[0][d[0]], short[1][d[1]])
print " break;"
print ""
print " default:"
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/harfbuzz-gobject.pc.in b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/harfbuzz-gobject.pc.in
index 70083601901..70083601901 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/harfbuzz-gobject.pc.in
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/harfbuzz-gobject.pc.in
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/harfbuzz-icu.pc.in b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/harfbuzz-icu.pc.in
index 949869a3563..949869a3563 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/harfbuzz-icu.pc.in
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/harfbuzz-icu.pc.in
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/harfbuzz.pc.in b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/harfbuzz.pc.in
index 7f27bbbdef0..7f27bbbdef0 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/harfbuzz.pc.in
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/harfbuzz.pc.in
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-atomic-private.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-atomic-private.hh
index 60cbcf91be1..60cbcf91be1 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-atomic-private.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-atomic-private.hh
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-blob.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-blob.cc
index b82b4b2a3a3..b82b4b2a3a3 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-blob.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-blob.cc
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-blob.h b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-blob.h
index b2419abfd2a..b2419abfd2a 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-blob.h
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-blob.h
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-buffer-deserialize-json.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-buffer-deserialize-json.hh
index dead700db82..dead700db82 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-buffer-deserialize-json.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-buffer-deserialize-json.hh
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-buffer-deserialize-json.rl b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-buffer-deserialize-json.rl
index 7351b2ab47c..7351b2ab47c 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-buffer-deserialize-json.rl
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-buffer-deserialize-json.rl
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-buffer-deserialize-text.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-buffer-deserialize-text.hh
index a38efe3a415..a38efe3a415 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-buffer-deserialize-text.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-buffer-deserialize-text.hh
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-buffer-deserialize-text.rl b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-buffer-deserialize-text.rl
index 8856580fbe3..8856580fbe3 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-buffer-deserialize-text.rl
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-buffer-deserialize-text.rl
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-buffer-private.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-buffer-private.hh
index 3a2b9ab4816..5eccd3c31fc 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-buffer-private.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-buffer-private.hh
@@ -52,6 +52,7 @@ struct hb_buffer_t {
hb_unicode_funcs_t *unicode; /* Unicode functions */
hb_segment_properties_t props; /* Script, language, direction */
hb_buffer_flags_t flags; /* BOT / EOT / etc. */
+ hb_codepoint_t replacement; /* U+FFFD or something else. */
/* Buffer contents */
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-buffer-serialize.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-buffer-serialize.cc
index 263bc81dc46..406d69db758 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-buffer-serialize.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-buffer-serialize.cc
@@ -63,7 +63,7 @@ hb_buffer_serialize_format_t
hb_buffer_serialize_format_from_string (const char *str, int len)
{
/* Upper-case it. */
- return (hb_buffer_serialize_format_t) (hb_tag_from_string (str, len) & ~0x20202020);
+ return (hb_buffer_serialize_format_t) (hb_tag_from_string (str, len) & ~0x20202020u);
}
/**
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-buffer.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-buffer.cc
index 76bb10c0c85..2377ba40daf 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-buffer.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-buffer.cc
@@ -178,6 +178,7 @@ hb_buffer_t::reset (void)
hb_unicode_funcs_destroy (unicode);
unicode = hb_unicode_funcs_get_default ();
+ replacement = HB_BUFFER_REPLACEMENT_CODEPOINT_DEFAULT;
clear ();
}
@@ -703,6 +704,7 @@ hb_buffer_get_empty (void)
const_cast<hb_unicode_funcs_t *> (&_hb_unicode_funcs_nil),
HB_SEGMENT_PROPERTIES_DEFAULT,
HB_BUFFER_FLAG_DEFAULT,
+ HB_BUFFER_REPLACEMENT_CODEPOINT_DEFAULT,
HB_BUFFER_CONTENT_TYPE_INVALID,
true, /* in_error */
@@ -1048,6 +1050,42 @@ hb_buffer_get_flags (hb_buffer_t *buffer)
/**
+ * hb_buffer_set_replacement_codepoint:
+ * @buffer: a buffer.
+ * @replacement:
+ *
+ *
+ *
+ * Since: 1.0
+ **/
+void
+hb_buffer_set_replacement_codepoint (hb_buffer_t *buffer,
+ hb_codepoint_t replacement)
+{
+ if (unlikely (hb_object_is_inert (buffer)))
+ return;
+
+ buffer->replacement = replacement;
+}
+
+/**
+ * hb_buffer_get_replacement_codepoint:
+ * @buffer: a buffer.
+ *
+ *
+ *
+ * Return value:
+ *
+ * Since: 1.0
+ **/
+hb_codepoint_t
+hb_buffer_get_replacement_codepoint (hb_buffer_t *buffer)
+{
+ return buffer->replacement;
+}
+
+
+/**
* hb_buffer_reset:
* @buffer: a buffer.
*
@@ -1290,7 +1328,7 @@ hb_buffer_guess_segment_properties (hb_buffer_t *buffer)
buffer->guess_segment_properties ();
}
-template <typename T>
+template <bool validate, typename T>
static inline void
hb_buffer_add_utf (hb_buffer_t *buffer,
const T *text,
@@ -1298,6 +1336,9 @@ hb_buffer_add_utf (hb_buffer_t *buffer,
unsigned int item_offset,
int item_length)
{
+ typedef hb_utf_t<T, true> utf_t;
+ const hb_codepoint_t replacement = buffer->replacement;
+
assert (buffer->content_type == HB_BUFFER_CONTENT_TYPE_UNICODE ||
(!buffer->len && buffer->content_type == HB_BUFFER_CONTENT_TYPE_INVALID));
@@ -1305,7 +1346,7 @@ hb_buffer_add_utf (hb_buffer_t *buffer,
return;
if (text_length == -1)
- text_length = hb_utf_strlen (text);
+ text_length = utf_t::strlen (text);
if (item_length == -1)
item_length = text_length - item_offset;
@@ -1328,7 +1369,7 @@ hb_buffer_add_utf (hb_buffer_t *buffer,
while (start < prev && buffer->context_len[0] < buffer->CONTEXT_LENGTH)
{
hb_codepoint_t u;
- prev = hb_utf_prev (prev, start, &u);
+ prev = utf_t::prev (prev, start, &u, replacement);
buffer->context[0][buffer->context_len[0]++] = u;
}
}
@@ -1339,7 +1380,7 @@ hb_buffer_add_utf (hb_buffer_t *buffer,
{
hb_codepoint_t u;
const T *old_next = next;
- next = hb_utf_next (next, end, &u);
+ next = utf_t::next (next, end, &u, replacement);
buffer->add (u, old_next - (const T *) text);
}
@@ -1349,7 +1390,7 @@ hb_buffer_add_utf (hb_buffer_t *buffer,
while (next < end && buffer->context_len[1] < buffer->CONTEXT_LENGTH)
{
hb_codepoint_t u;
- next = hb_utf_next (next, end, &u);
+ next = utf_t::next (next, end, &u, replacement);
buffer->context[1][buffer->context_len[1]++] = u;
}
@@ -1375,7 +1416,7 @@ hb_buffer_add_utf8 (hb_buffer_t *buffer,
unsigned int item_offset,
int item_length)
{
- hb_buffer_add_utf (buffer, (const uint8_t *) text, text_length, item_offset, item_length);
+ hb_buffer_add_utf<true> (buffer, (const uint8_t *) text, text_length, item_offset, item_length);
}
/**
@@ -1397,7 +1438,7 @@ hb_buffer_add_utf16 (hb_buffer_t *buffer,
unsigned int item_offset,
int item_length)
{
- hb_buffer_add_utf (buffer, text, text_length, item_offset, item_length);
+ hb_buffer_add_utf<true> (buffer, text, text_length, item_offset, item_length);
}
/**
@@ -1419,7 +1460,29 @@ hb_buffer_add_utf32 (hb_buffer_t *buffer,
unsigned int item_offset,
int item_length)
{
- hb_buffer_add_utf (buffer, text, text_length, item_offset, item_length);
+ hb_buffer_add_utf<true> (buffer, text, text_length, item_offset, item_length);
+}
+
+/**
+ * hb_buffer_add_codepoints:
+ * @buffer: a buffer.
+ * @text: (array length=text_length):
+ * @text_length:
+ * @item_offset:
+ * @item_length:
+ *
+ *
+ *
+ * Since: 1.0
+ **/
+void
+hb_buffer_add_codepoints (hb_buffer_t *buffer,
+ const hb_codepoint_t *text,
+ int text_length,
+ unsigned int item_offset,
+ int item_length)
+{
+ hb_buffer_add_utf<false> (buffer, text, text_length, item_offset, item_length);
}
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-buffer.h b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-buffer.h
index 3086851b012..7b0c9204688 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-buffer.h
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-buffer.h
@@ -186,12 +186,25 @@ hb_buffer_flags_t
hb_buffer_get_flags (hb_buffer_t *buffer);
+
+#define HB_BUFFER_REPLACEMENT_CODEPOINT_DEFAULT 0xFFFDu
+
+/* Sets codepoint used to replace invalid UTF-8/16/32 entries.
+ * Default is 0xFFFDu. */
+void
+hb_buffer_set_replacement_codepoint (hb_buffer_t *buffer,
+ hb_codepoint_t replacement);
+
+hb_codepoint_t
+hb_buffer_get_replacement_codepoint (hb_buffer_t *buffer);
+
+
/* Resets the buffer. Afterwards it's as if it was just created,
* except that it has a larger buffer allocated perhaps... */
void
hb_buffer_reset (hb_buffer_t *buffer);
-/* Like reset, but does NOT clear unicode_funcs. */
+/* Like reset, but does NOT clear unicode_funcs and replacement_codepoint. */
void
hb_buffer_clear_contents (hb_buffer_t *buffer);
@@ -240,6 +253,14 @@ hb_buffer_add_utf32 (hb_buffer_t *buffer,
unsigned int item_offset,
int item_length);
+/* Like add_utf32 but does NOT check for invalid Unicode codepoints. */
+void
+hb_buffer_add_codepoints (hb_buffer_t *buffer,
+ const hb_codepoint_t *text,
+ int text_length,
+ unsigned int item_offset,
+ int item_length);
+
/* Clears any new items added at the end */
hb_bool_t
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-cache-private.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-cache-private.hh
index 19b70b7e395..19b70b7e395 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-cache-private.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-cache-private.hh
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-common.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-common.cc
index da5f4f70215..a089e52cd2c 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-common.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-common.cc
@@ -371,7 +371,7 @@ hb_script_from_iso15924_tag (hb_tag_t tag)
return HB_SCRIPT_INVALID;
/* Be lenient, adjust case (one capital letter followed by three small letters) */
- tag = (tag & 0xDFDFDFDF) | 0x00202020;
+ tag = (tag & 0xDFDFDFDFu) | 0x00202020u;
switch (tag) {
@@ -391,7 +391,7 @@ hb_script_from_iso15924_tag (hb_tag_t tag)
}
/* If it looks right, just use the tag as a script */
- if (((uint32_t) tag & 0xE0E0E0E0) == 0x40606060)
+ if (((uint32_t) tag & 0xE0E0E0E0u) == 0x40606060u)
return (hb_script_t) tag;
/* Otherwise, return unknown */
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-common.h b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-common.h
index b24cbb33ba7..b24cbb33ba7 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-common.h
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-common.h
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-coretext.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-coretext.cc
index 864e9e7c094..d92c6baaf61 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-coretext.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-coretext.cc
@@ -610,13 +610,13 @@ _hb_coretext_shape (hb_shape_plan_t *shape_plan,
for (unsigned int i = 0; i < buffer->len; i++) {
hb_codepoint_t c = buffer->info[i].codepoint;
buffer->info[i].utf16_index() = chars_len;
- if (likely (c < 0x10000))
+ if (likely (c <= 0xFFFFu))
pchars[chars_len++] = c;
- else if (unlikely (c >= 0x110000))
- pchars[chars_len++] = 0xFFFD;
+ else if (unlikely (c > 0x10FFFFu))
+ pchars[chars_len++] = 0xFFFDu;
else {
- pchars[chars_len++] = 0xD800 + ((c - 0x10000) >> 10);
- pchars[chars_len++] = 0xDC00 + ((c - 0x10000) & ((1 << 10) - 1));
+ pchars[chars_len++] = 0xD800u + ((c - 0x10000u) >> 10);
+ pchars[chars_len++] = 0xDC00u + ((c - 0x10000u) & ((1 << 10) - 1));
}
}
@@ -642,7 +642,7 @@ _hb_coretext_shape (hb_shape_plan_t *shape_plan,
hb_codepoint_t c = buffer->info[i].codepoint;
unsigned int cluster = buffer->info[i].cluster;
log_clusters[chars_len++] = cluster;
- if (c >= 0x10000 && c < 0x110000)
+ if (hb_in_range (c, 0x10000u, 0x10FFFFu))
log_clusters[chars_len++] = cluster; /* Surrogates. */
}
@@ -714,10 +714,10 @@ _hb_coretext_shape (hb_shape_plan_t *shape_plan,
for (CFIndex j = range.location; j < range.location + range.length; j++)
{
UniChar ch = CFStringGetCharacterAtIndex (string_ref, j);
- if (hb_in_range<UniChar> (ch, 0xDC00, 0xDFFF) && range.location < j)
+ if (hb_in_range<UniChar> (ch, 0xDC00u, 0xDFFFu) && range.location < j)
{
ch = CFStringGetCharacterAtIndex (string_ref, j - 1);
- if (hb_in_range<UniChar> (ch, 0xD800, 0xDBFF))
+ if (hb_in_range<UniChar> (ch, 0xD800u, 0xDBFFu))
/* This is the second of a surrogate pair. Don't need .notdef
* for this one. */
continue;
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-coretext.h b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-coretext.h
index 25267bc9784..25267bc9784 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-coretext.h
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-coretext.h
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-deprecated.h b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-deprecated.h
index 30ae4b1caf7..30ae4b1caf7 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-deprecated.h
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-deprecated.h
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-face-private.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-face-private.hh
index 6520d3dbdff..6520d3dbdff 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-face-private.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-face-private.hh
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-face.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-face.cc
index 71cf49a5bc9..71cf49a5bc9 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-face.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-face.cc
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-face.h b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-face.h
index f682c468de5..f682c468de5 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-face.h
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-face.h
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-fallback-shape.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-fallback-shape.cc
index ea54bb8e0f0..ea54bb8e0f0 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-fallback-shape.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-fallback-shape.cc
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-font-private.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-font-private.hh
index 33bbf7143a2..33bbf7143a2 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-font-private.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-font-private.hh
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-font.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-font.cc
index fc4c8ebf077..fc4c8ebf077 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-font.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-font.cc
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-font.h b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-font.h
index 7273db43eda..7273db43eda 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-font.h
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-font.h
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-ft.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-ft.cc
index 44e0b0bc2a5..44e0b0bc2a5 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-ft.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-ft.cc
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-ft.h b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-ft.h
index 696251e143f..696251e143f 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-ft.h
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-ft.h
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-glib.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-glib.cc
index af43cab7113..af43cab7113 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-glib.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-glib.cc
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-glib.h b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-glib.h
index 63a9d3366c5..63a9d3366c5 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-glib.h
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-glib.h
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-gobject-enums.cc.tmpl b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-gobject-enums.cc.tmpl
index ca458a3846c..ca458a3846c 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-gobject-enums.cc.tmpl
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-gobject-enums.cc.tmpl
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-gobject-enums.h.tmpl b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-gobject-enums.h.tmpl
index 6ecda06c2a6..6ecda06c2a6 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-gobject-enums.h.tmpl
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-gobject-enums.h.tmpl
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-gobject-structs.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-gobject-structs.cc
index 2451b66291b..2451b66291b 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-gobject-structs.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-gobject-structs.cc
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-gobject-structs.h b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-gobject-structs.h
index 4a88d569e8d..4a88d569e8d 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-gobject-structs.h
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-gobject-structs.h
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-gobject.h b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-gobject.h
index ea1bd25df82..ea1bd25df82 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-gobject.h
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-gobject.h
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-graphite2.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-graphite2.cc
index 709aa94419c..709aa94419c 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-graphite2.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-graphite2.cc
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-graphite2.h b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-graphite2.h
index 3eae54acbd8..3eae54acbd8 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-graphite2.h
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-graphite2.h
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-icu.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-icu.cc
index 86c8b5cc5a2..86c8b5cc5a2 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-icu.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-icu.cc
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-icu.h b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-icu.h
index f2f35f0f2ce..f2f35f0f2ce 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-icu.h
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-icu.h
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-mutex-private.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-mutex-private.hh
index 0fb21c2e86e..0fb21c2e86e 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-mutex-private.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-mutex-private.hh
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-object-private.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-object-private.hh
index 8a9ae34dbee..8a9ae34dbee 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-object-private.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-object-private.hh
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-open-file-private.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-open-file-private.hh
index de76a967520..57db59db84a 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-open-file-private.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-open-file-private.hh
@@ -138,7 +138,7 @@ struct TTCHeaderVersion1
protected:
Tag ttcTag; /* TrueType Collection ID string: 'ttcf' */
FixedVersion version; /* Version of the TTC Header (1.0),
- * 0x00010000 */
+ * 0x00010000u */
ArrayOf<OffsetTo<OffsetTable, ULONG>, ULONG>
table; /* Array of offsets to the OffsetTable for each font
* from the beginning of the file */
@@ -184,7 +184,7 @@ struct TTCHeader
struct {
Tag ttcTag; /* TrueType Collection ID string: 'ttcf' */
FixedVersion version; /* Version of the TTC Header (1.0 or 2.0),
- * 0x00010000 or 0x00020000 */
+ * 0x00010000u or 0x00020000u */
} header;
TTCHeaderVersion1 version1;
} u;
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-open-type-private.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-open-type-private.hh
index 5f4cd42cfd8..046df976596 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-open-type-private.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-open-type-private.hh
@@ -626,7 +626,7 @@ typedef USHORT GlyphID;
/* Script/language-system/feature index */
struct Index : USHORT {
- static const unsigned int NOT_FOUND_INDEX = 0xFFFF;
+ static const unsigned int NOT_FOUND_INDEX = 0xFFFFu;
};
DEFINE_NULL_DATA (Index, "\xff\xff");
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-ot-cmap-table.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-ot-cmap-table.hh
index e683b07eb1e..d53141157d0 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-ot-cmap-table.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-ot-cmap-table.hh
@@ -121,7 +121,7 @@ struct CmapSubtableFormat4
gid += idDelta[i];
}
- *glyph = gid & 0xFFFF;
+ *glyph = gid & 0xFFFFu;
return true;
}
@@ -159,7 +159,7 @@ struct CmapSubtableFormat4
USHORT values[VAR];
#if 0
USHORT endCount[segCount]; /* End characterCode for each segment,
- * last=0xFFFF. */
+ * last=0xFFFFu. */
USHORT reservedPad; /* Set to 0. */
USHORT startCount[segCount]; /* Start character code for each segment. */
SHORT idDelta[segCount]; /* Delta for all character codes in segment. */
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-ot-font.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-ot-font.cc
index c9890c59228..c9890c59228 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-ot-font.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-ot-font.cc
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-ot-font.h b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-ot-font.h
index 7a8c04ac33d..7a8c04ac33d 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-ot-font.h
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-ot-font.h
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-ot-head-table.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-ot-head-table.hh
index 0285f0cf310..ec4e8c9d453 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-ot-head-table.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-ot-head-table.hh
@@ -58,12 +58,12 @@ struct head
protected:
FixedVersion version; /* Version of the head table--currently
- * 0x00010000 for version 1.0. */
+ * 0x00010000u for version 1.0. */
FixedVersion fontRevision; /* Set by font manufacturer. */
ULONG checkSumAdjustment; /* To compute: set it to 0, sum the
* entire font as ULONG, then store
- * 0xB1B0AFBA - sum. */
- ULONG magicNumber; /* Set to 0x5F0F3CF5. */
+ * 0xB1B0AFBAu - sum. */
+ ULONG magicNumber; /* Set to 0x5F0F3CF5u. */
USHORT flags; /* Bit 0: Baseline for font at y=0;
* Bit 1: Left sidebearing point at x=0;
* Bit 2: Instructions may depend on point size;
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-ot-hhea-table.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-ot-hhea-table.hh
index f34bd26053a..d433200165c 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-ot-hhea-table.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-ot-hhea-table.hh
@@ -50,7 +50,7 @@ struct hhea
}
public:
- FixedVersion version; /* 0x00010000 for version 1.0. */
+ FixedVersion version; /* 0x00010000u for version 1.0. */
FWORD ascender; /* Typographic ascent. <a
* href="http://developer.apple.com/fonts/TTRefMan/RM06/Chap6hhea.html">
* (Distance from baseline of highest
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-ot-hmtx-table.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-ot-hmtx-table.hh
index e918e3b3f40..e918e3b3f40 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-ot-hmtx-table.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-ot-hmtx-table.hh
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-ot-layout-common-private.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-ot-layout-common-private.hh
index c9b4b2f9388..abd063c8961 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-ot-layout-common-private.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-ot-layout-common-private.hh
@@ -190,10 +190,10 @@ struct LangSys
unsigned int *feature_indexes /* OUT */) const
{ return featureIndex.get_indexes (start_offset, feature_count, feature_indexes); }
- inline bool has_required_feature (void) const { return reqFeatureIndex != 0xffff; }
+ inline bool has_required_feature (void) const { return reqFeatureIndex != 0xFFFFu; }
inline unsigned int get_required_feature_index (void) const
{
- if (reqFeatureIndex == 0xffff)
+ if (reqFeatureIndex == 0xFFFFu)
return Index::NOT_FOUND_INDEX;
return reqFeatureIndex;;
}
@@ -208,7 +208,7 @@ struct LangSys
* reordering table) */
USHORT reqFeatureIndex;/* Index of a feature required for this
* language system--if no required features
- * = 0xFFFF */
+ * = 0xFFFFu */
IndexArray featureIndex; /* Array of indices into the FeatureList */
public:
DEFINE_SIZE_ARRAY (6, featureIndex);
@@ -448,9 +448,9 @@ struct FeatureParams
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 */
+ if ((tag & 0xFFFF0000u) == HB_TAG ('s','s','\0','\0')) /* ssXX */
return TRACE_RETURN (u.stylisticSet.sanitize (c));
- if ((tag & 0xFFFF0000) == HB_TAG ('c','v','\0','\0')) /* cvXX */
+ if ((tag & 0xFFFF0000u) == HB_TAG ('c','v','\0','\0')) /* cvXX */
return TRACE_RETURN (u.characterVariants.sanitize (c));
return TRACE_RETURN (true);
}
@@ -585,7 +585,7 @@ struct Lookup
TRACE_SERIALIZE (this);
if (unlikely (!c->extend_min (*this))) return TRACE_RETURN (false);
lookupType.set (lookup_type);
- lookupFlag.set (lookup_props & 0xFFFF);
+ lookupFlag.set (lookup_props & 0xFFFFu);
if (unlikely (!subTable.serialize (c, num_subtables))) return TRACE_RETURN (false);
if (lookupFlag & LookupFlag::UseMarkFilteringSet)
{
@@ -1131,7 +1131,7 @@ struct Device
unsigned int byte = deltaValue[s >> (4 - f)];
unsigned int bits = (byte >> (16 - (((s & ((1 << (4 - f)) - 1)) + 1) << f)));
- unsigned int mask = (0xFFFF >> (16 - (1 << f)));
+ unsigned int mask = (0xFFFFu >> (16 - (1 << f)));
int delta = bits & mask;
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-ot-layout-gdef-table.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-ot-layout-gdef-table.hh
index bb8a4b944fa..84a5e797c63 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-ot-layout-gdef-table.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-ot-layout-gdef-table.hh
@@ -360,9 +360,9 @@ struct GDEF
hb_position_t *caret_array /* OUT */) const
{ return (this+ligCaretList).get_lig_carets (font, direction, glyph_id, start_offset, caret_count, caret_array); }
- inline bool has_mark_sets (void) const { return version.to_int () >= 0x00010002 && markGlyphSetsDef[0] != 0; }
+ inline bool has_mark_sets (void) const { return version.to_int () >= 0x00010002u && markGlyphSetsDef[0] != 0; }
inline bool mark_set_covers (unsigned int set_index, hb_codepoint_t glyph_id) const
- { return version.to_int () >= 0x00010002 && (this+markGlyphSetsDef[0]).covers (set_index, glyph_id); }
+ { return version.to_int () >= 0x00010002u && (this+markGlyphSetsDef[0]).covers (set_index, glyph_id); }
inline bool sanitize (hb_sanitize_context_t *c) {
TRACE_SANITIZE (this);
@@ -372,7 +372,7 @@ struct GDEF
attachList.sanitize (c, this) &&
ligCaretList.sanitize (c, this) &&
markAttachClassDef.sanitize (c, this) &&
- (version.to_int () < 0x00010002 || markGlyphSetsDef[0].sanitize (c, this)));
+ (version.to_int () < 0x00010002u || markGlyphSetsDef[0].sanitize (c, this)));
}
@@ -400,7 +400,7 @@ struct GDEF
protected:
FixedVersion version; /* Version of the GDEF table--currently
- * 0x00010002 */
+ * 0x00010002u */
OffsetTo<ClassDef>
glyphClassDef; /* Offset to class definition table
* for glyph type--from beginning of
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-ot-layout-gpos-table.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-ot-layout-gpos-table.hh
index 91e1f8b0019..d8e3e6e11d5 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-ot-layout-gpos-table.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-ot-layout-gpos-table.hh
@@ -49,18 +49,18 @@ typedef Value ValueRecord[VAR];
struct ValueFormat : USHORT
{
enum Flags {
- xPlacement = 0x0001, /* Includes horizontal adjustment for placement */
- yPlacement = 0x0002, /* Includes vertical adjustment for placement */
- xAdvance = 0x0004, /* Includes horizontal adjustment for advance */
- yAdvance = 0x0008, /* Includes vertical adjustment for advance */
- xPlaDevice = 0x0010, /* Includes horizontal Device table for placement */
- yPlaDevice = 0x0020, /* Includes vertical Device table for placement */
- xAdvDevice = 0x0040, /* Includes horizontal Device table for advance */
- yAdvDevice = 0x0080, /* Includes vertical Device table for advance */
- ignored = 0x0F00, /* Was used in TrueType Open for MM fonts */
- reserved = 0xF000, /* For future use */
-
- devices = 0x00F0 /* Mask for having any Device table */
+ xPlacement = 0x0001u, /* Includes horizontal adjustment for placement */
+ yPlacement = 0x0002u, /* Includes vertical adjustment for placement */
+ xAdvance = 0x0004u, /* Includes horizontal adjustment for advance */
+ yAdvance = 0x0008u, /* Includes vertical adjustment for advance */
+ xPlaDevice = 0x0010u, /* Includes horizontal Device table for placement */
+ yPlaDevice = 0x0020u, /* Includes vertical Device table for placement */
+ xAdvDevice = 0x0040u, /* Includes horizontal Device table for advance */
+ yAdvDevice = 0x0080u, /* Includes vertical Device table for advance */
+ ignored = 0x0F00u, /* Was used in TrueType Open for MM fonts */
+ reserved = 0xF000u, /* For future use */
+
+ devices = 0x00F0u /* Mask for having any Device table */
};
/* All fields are options. Only those available advance the value pointer. */
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-ot-layout-gsub-table.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-ot-layout-gsub-table.hh
index 2e867e3de68..e1939735de6 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-ot-layout-gsub-table.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-ot-layout-gsub-table.hh
@@ -44,7 +44,7 @@ struct SingleSubstFormat1
for (iter.init (this+coverage); iter.more (); iter.next ()) {
hb_codepoint_t glyph_id = iter.get_glyph ();
if (c->glyphs->has (glyph_id))
- c->glyphs->add ((glyph_id + deltaGlyphID) & 0xFFFF);
+ c->glyphs->add ((glyph_id + deltaGlyphID) & 0xFFFFu);
}
}
@@ -55,7 +55,7 @@ struct SingleSubstFormat1
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->output->add ((glyph_id + deltaGlyphID) & 0xFFFFu);
}
}
@@ -79,7 +79,7 @@ struct SingleSubstFormat1
/* According to the Adobe Annotated OpenType Suite, result is always
* limited to 16bit. */
- glyph_id = (glyph_id + deltaGlyphID) & 0xFFFF;
+ glyph_id = (glyph_id + deltaGlyphID) & 0xFFFFu;
c->replace_glyph (glyph_id);
return TRACE_RETURN (true);
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-ot-layout-gsubgpos-private.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-ot-layout-gsubgpos-private.hh
index 8f8d7b828f8..546ff4b0fde 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-ot-layout-gsubgpos-private.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-ot-layout-gsubgpos-private.hh
@@ -349,11 +349,7 @@ struct hb_apply_context_t
may_skip (const hb_apply_context_t *c,
const hb_glyph_info_t &info) const
{
- unsigned int property;
-
- property = _hb_glyph_info_get_glyph_props (&info);
-
- if (!c->match_properties (info.codepoint, property, lookup_props))
+ if (!c->check_glyph_property (&info, lookup_props))
return SKIP_YES;
if (unlikely (_hb_glyph_info_is_default_ignorable (&info) &&
@@ -487,7 +483,6 @@ struct hb_apply_context_t
const hb_glyph_info_t &info = c->buffer->out_info[idx];
matcher_t::may_skip_t skip = matcher.may_skip (c, info);
-
if (unlikely (skip == matcher_t::SKIP_YES))
continue;
@@ -538,10 +533,12 @@ struct hb_apply_context_t
}
inline bool
- match_properties (hb_codepoint_t glyph,
- unsigned int glyph_props,
- unsigned int lookup_props) const
+ check_glyph_property (const hb_glyph_info_t *info,
+ unsigned int lookup_props) const
{
+ hb_codepoint_t glyph = info->codepoint;
+ unsigned int glyph_props = _hb_glyph_info_get_glyph_props (info);
+
/* Not covered, if, for example, glyph class is ligature and
* lookup_props includes LookupFlags::IgnoreLigatures
*/
@@ -554,17 +551,6 @@ struct hb_apply_context_t
return true;
}
- inline bool
- check_glyph_property (hb_glyph_info_t *info,
- unsigned int lookup_props) const
- {
- unsigned int property;
-
- property = _hb_glyph_info_get_glyph_props (info);
-
- return match_properties (info->codepoint, property, lookup_props);
- }
-
inline void _set_glyph_props (hb_codepoint_t glyph_index,
unsigned int class_guess = 0,
bool ligature = false,
@@ -2294,7 +2280,7 @@ struct GSUBGPOS
protected:
FixedVersion version; /* Version of the GSUB/GPOS table--initially set
- * to 0x00010000 */
+ * to 0x00010000u */
OffsetTo<ScriptList>
scriptList; /* ScriptList table */
OffsetTo<FeatureList>
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-ot-layout-jstf-table.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-ot-layout-jstf-table.hh
index 79eb859566a..67a6df5b421 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-ot-layout-jstf-table.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-ot-layout-jstf-table.hh
@@ -214,7 +214,7 @@ struct JSTF
protected:
FixedVersion version; /* Version of the JSTF table--initially set
- * to 0x00010000 */
+ * to 0x00010000u */
RecordArrayOf<JstfScript>
scriptList; /* Array of JstfScripts--listed
* alphabetically by ScriptTag */
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-ot-layout-private.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-ot-layout-private.hh
index e66e19c443e..9b063008006 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-ot-layout-private.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-ot-layout-private.hh
@@ -190,8 +190,8 @@ _hb_glyph_info_set_unicode_props (hb_glyph_info_t *info, hb_unicode_funcs_t *uni
/* XXX This shouldn't be inlined, or at least not while is_default_ignorable() is inline. */
info->unicode_props0() = ((unsigned int) unicode->general_category (info->codepoint)) |
(unicode->is_default_ignorable (info->codepoint) ? MASK0_IGNORABLE : 0) |
- (info->codepoint == 0x200C ? MASK0_ZWNJ : 0) |
- (info->codepoint == 0x200D ? MASK0_ZWJ : 0);
+ (info->codepoint == 0x200Cu ? MASK0_ZWNJ : 0) |
+ (info->codepoint == 0x200Du ? MASK0_ZWJ : 0);
info->unicode_props1() = unicode->modified_combining_class (info->codepoint);
}
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-ot-layout.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-ot-layout.cc
index 661d90ea0d6..661d90ea0d6 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-ot-layout.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-ot-layout.cc
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-ot-layout.h b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-ot-layout.h
index 87171d75311..949678ac422 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-ot-layout.h
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-ot-layout.h
@@ -92,9 +92,9 @@ hb_ot_layout_get_ligature_carets (hb_font_t *font,
* GSUB/GPOS feature query and enumeration interface
*/
-#define HB_OT_LAYOUT_NO_SCRIPT_INDEX ((unsigned int) 0xFFFF)
-#define HB_OT_LAYOUT_NO_FEATURE_INDEX ((unsigned int) 0xFFFF)
-#define HB_OT_LAYOUT_DEFAULT_LANGUAGE_INDEX ((unsigned int) 0xFFFF)
+#define HB_OT_LAYOUT_NO_SCRIPT_INDEX 0xFFFFu
+#define HB_OT_LAYOUT_NO_FEATURE_INDEX 0xFFFFu
+#define HB_OT_LAYOUT_DEFAULT_LANGUAGE_INDEX 0xFFFFu
unsigned int
hb_ot_layout_table_get_script_tags (hb_face_t *face,
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-ot-map-private.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-ot-map-private.hh
index 74e2d9aca4c..86b7e9fafea 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-ot-map-private.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-ot-map-private.hh
@@ -153,10 +153,10 @@ struct hb_ot_map_t
};
enum hb_ot_map_feature_flags_t {
- F_NONE = 0x0000,
- F_GLOBAL = 0x0001,
- F_HAS_FALLBACK = 0x0002,
- F_MANUAL_ZWJ = 0x0004
+ F_NONE = 0x0000u,
+ F_GLOBAL = 0x0001u,
+ F_HAS_FALLBACK = 0x0002u,
+ F_MANUAL_ZWJ = 0x0004u
};
/* Macro version for where const is desired. */
#define F_COMBINE(l,r) (hb_ot_map_feature_flags_t ((unsigned int) (l) | (unsigned int) (r)))
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-ot-map.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-ot-map.cc
index 4985eb22b20..4985eb22b20 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-ot-map.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-ot-map.cc
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-ot-maxp-table.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-ot-maxp-table.hh
index e6d255579c6..b1f832852d3 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-ot-maxp-table.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-ot-maxp-table.hh
@@ -50,13 +50,13 @@ struct maxp
inline bool sanitize (hb_sanitize_context_t *c) {
TRACE_SANITIZE (this);
return TRACE_RETURN (c->check_struct (this) &&
- likely (version.major == 1 || (version.major == 0 && version.minor == 0x5000)));
+ likely (version.major == 1 || (version.major == 0 && version.minor == 0x5000u)));
}
/* We only implement version 0.5 as none of the extra fields in version 1.0 are useful. */
protected:
FixedVersion version; /* Version of the maxp table (0.5 or 1.0),
- * 0x00005000 or 0x00010000. */
+ * 0x00005000u or 0x00010000u. */
USHORT numGlyphs; /* The number of glyphs in the font. */
public:
DEFINE_SIZE_STATIC (6);
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-ot-name-table.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-ot-name-table.hh
index 31d9fac7e29..31d9fac7e29 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-ot-name-table.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-ot-name-table.hh
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-ot-shape-complex-arabic-fallback.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-ot-shape-complex-arabic-fallback.hh
index 6b2b87e3f28..2d8488e1513 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-ot-shape-complex-arabic-fallback.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-ot-shape-complex-arabic-fallback.hh
@@ -71,7 +71,7 @@ arabic_fallback_synthesize_lookup_single (const hb_ot_shape_plan_t *plan HB_UNUS
!hb_font_get_glyph (font, u, 0, &u_glyph) ||
!hb_font_get_glyph (font, s, 0, &s_glyph) ||
u_glyph == s_glyph ||
- u_glyph > 0xFFFF || s_glyph > 0xFFFF)
+ u_glyph > 0xFFFFu || s_glyph > 0xFFFFu)
continue;
glyphs[num_glyphs].set (u_glyph);
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-ot-shape-complex-arabic-table.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-ot-shape-complex-arabic-table.hh
new file mode 100644
index 00000000000..d41d6ce598e
--- /dev/null
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-ot-shape-complex-arabic-table.hh
@@ -0,0 +1,383 @@
+/* == Start of generated table == */
+/*
+ * The following table is generated by running:
+ *
+ * ./gen-arabic-table.py ArabicShaping.txt UnicodeData.txt Blocks.txt
+ *
+ * on files with these headers:
+ *
+ * # ArabicShaping-7.0.0.txt
+ * # Date: 2014-02-14, 21:00:00 GMT [RP, KW, LI]
+ * # Blocks-7.0.0.txt
+ * # Date: 2014-04-03, 23:23:00 GMT [RP, KW]
+ * UnicodeData.txt does not have a header.
+ */
+
+#ifndef HB_OT_SHAPE_COMPLEX_ARABIC_TABLE_HH
+#define HB_OT_SHAPE_COMPLEX_ARABIC_TABLE_HH
+
+
+#define X JOINING_TYPE_X
+#define R JOINING_TYPE_R
+#define U JOINING_TYPE_U
+#define A JOINING_GROUP_ALAPH
+#define DR JOINING_GROUP_DALATH_RISH
+#define L JOINING_TYPE_L
+#define C JOINING_TYPE_C
+#define D JOINING_TYPE_D
+
+static const uint8_t joining_table[] =
+{
+
+#define joining_offset_0x0600u 0
+
+ /* Arabic */
+
+ /* 0600 */ U,U,U,U,U,U,X,X,U,X,X,U,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,
+ /* 0620 */ D,U,R,R,R,R,D,R,D,R,D,D,D,D,D,R,R,R,R,D,D,D,D,D,D,D,D,D,D,D,D,D,
+ /* 0640 */ C,D,D,D,D,D,D,D,R,D,D,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,
+ /* 0660 */ X,X,X,X,X,X,X,X,X,X,X,X,X,X,D,D,X,R,R,R,U,R,R,R,D,D,D,D,D,D,D,D,
+ /* 0680 */ D,D,D,D,D,D,D,D,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,D,D,D,D,D,D,
+ /* 06A0 */ D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,
+ /* 06C0 */ R,D,D,R,R,R,R,R,R,R,R,R,D,R,D,R,D,D,R,R,X,R,X,X,X,X,X,X,X,U,X,X,
+ /* 06E0 */ X,X,X,X,X,X,X,X,X,X,X,X,X,X,R,R,X,X,X,X,X,X,X,X,X,X,D,D,D,X,X,D,
+
+ /* Syriac */
+
+ /* 0700 */ X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,A,X,D,D,D,DR,DR,R,R,R,D,D,D,D,R,D,
+ /* 0720 */ D,D,D,D,D,D,D,D,R,D,DR,D,R,D,D,DR,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,
+ /* 0740 */ X,X,X,X,X,X,X,X,X,X,X,X,X,R,D,D,
+
+ /* Arabic Supplement */
+
+ /* 0740 */ D,D,D,D,D,D,D,D,D,R,R,R,D,D,D,D,
+ /* 0760 */ D,D,D,D,D,D,D,D,D,D,D,R,R,D,D,D,D,R,D,R,R,D,D,D,R,R,D,D,D,D,D,D,
+
+ /* FILLER */
+
+ /* 0780 */ X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,
+ /* 07A0 */ X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,
+
+ /* NKo */
+
+ /* 07C0 */ X,X,X,X,X,X,X,X,X,X,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,
+ /* 07E0 */ D,D,D,D,D,D,D,D,D,D,D,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,C,X,X,X,X,X,
+
+ /* FILLER */
+
+ /* 0800 */ X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,
+ /* 0820 */ X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,
+
+ /* Mandaic */
+
+ /* 0840 */ R,D,D,D,D,D,R,D,D,R,D,D,D,D,D,R,D,D,D,D,R,D,U,U,U,X,X,X,X,X,X,X,
+ /* 0860 */ X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,
+ /* 0880 */ X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,
+
+ /* Arabic Extended-A */
+
+ /* 08A0 */ D,D,D,D,D,D,D,D,D,D,R,R,R,U,R,D,D,R,R,
+
+#define joining_offset_0x1806u 691
+
+ /* Mongolian */
+
+ /* 1800 */ U,D,X,X,C,X,X,X,U,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,
+ /* 1820 */ D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,
+ /* 1840 */ D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,
+ /* 1860 */ D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,X,X,X,X,X,X,X,X,
+ /* 1880 */ U,U,U,U,U,U,U,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,
+ /* 18A0 */ D,D,D,D,D,D,D,D,D,X,D,
+
+#define joining_offset_0x200cu 856
+
+ /* General Punctuation */
+
+ /* 2000 */ U,C,
+
+#define joining_offset_0x2066u 858
+
+ /* General Punctuation */
+
+ /* 2060 */ U,U,U,U,
+
+#define joining_offset_0xa840u 862
+
+ /* Phags-pa */
+
+ /* A840 */ D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,
+ /* A860 */ D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,L,U,
+
+#define joining_offset_0x10ac0u 914
+
+ /* Manichaean */
+
+ /* 10AC0 */ D,D,D,D,D,R,U,R,U,R,R,U,U,L,R,R,R,R,R,D,D,D,D,L,D,D,D,D,D,R,D,D,
+ /* 10AE0 */ D,R,U,U,R,X,X,X,X,X,X,D,D,D,D,R,
+
+#define joining_offset_0x10b80u 962
+
+ /* Psalter Pahlavi */
+
+ /* 10B80 */ D,R,D,R,R,R,D,D,D,R,D,D,R,D,R,R,D,R,X,X,X,X,X,X,X,X,X,X,X,X,X,X,
+ /* 10BA0 */ X,X,X,X,X,X,X,X,X,R,R,R,R,D,D,U,
+
+}; /* Table items: 1010; occupancy: 57% */
+
+
+static unsigned int
+joining_type (hb_codepoint_t u)
+{
+ switch (u >> 12)
+ {
+ case 0x0u:
+ if (hb_in_range (u, 0x0600u, 0x08B2u)) return joining_table[u - 0x0600u + joining_offset_0x0600u];
+ break;
+
+ case 0x1u:
+ if (hb_in_range (u, 0x1806u, 0x18AAu)) return joining_table[u - 0x1806u + joining_offset_0x1806u];
+ break;
+
+ case 0x2u:
+ if (hb_in_range (u, 0x200Cu, 0x200Du)) return joining_table[u - 0x200Cu + joining_offset_0x200cu];
+ if (hb_in_range (u, 0x2066u, 0x2069u)) return joining_table[u - 0x2066u + joining_offset_0x2066u];
+ break;
+
+ case 0xAu:
+ if (hb_in_range (u, 0xA840u, 0xA873u)) return joining_table[u - 0xA840u + joining_offset_0xa840u];
+ break;
+
+ case 0x10u:
+ if (hb_in_range (u, 0x10AC0u, 0x10AEFu)) return joining_table[u - 0x10AC0u + joining_offset_0x10ac0u];
+ if (hb_in_range (u, 0x10B80u, 0x10BAFu)) return joining_table[u - 0x10B80u + joining_offset_0x10b80u];
+ break;
+
+ default:
+ break;
+ }
+ return X;
+}
+
+#undef X
+#undef R
+#undef U
+#undef A
+#undef DR
+#undef L
+#undef C
+#undef D
+
+
+static const uint16_t shaping_table[][4] =
+{
+ {0x0000u, 0x0000u, 0x0000u, 0xFE80u}, /* U+0621 ARABIC LETTER HAMZA ISOLATED FORM */
+ {0x0000u, 0x0000u, 0xFE82u, 0xFE81u}, /* U+0622 ARABIC LETTER ALEF WITH MADDA ABOVE */
+ {0x0000u, 0x0000u, 0xFE84u, 0xFE83u}, /* U+0623 ARABIC LETTER ALEF WITH HAMZA ABOVE */
+ {0x0000u, 0x0000u, 0xFE86u, 0xFE85u}, /* U+0624 ARABIC LETTER WAW WITH HAMZA ABOVE */
+ {0x0000u, 0x0000u, 0xFE88u, 0xFE87u}, /* U+0625 ARABIC LETTER ALEF WITH HAMZA BELOW */
+ {0xFE8Bu, 0xFE8Cu, 0xFE8Au, 0xFE89u}, /* U+0626 ARABIC LETTER YEH WITH HAMZA ABOVE */
+ {0x0000u, 0x0000u, 0xFE8Eu, 0xFE8Du}, /* U+0627 ARABIC LETTER ALEF */
+ {0xFE91u, 0xFE92u, 0xFE90u, 0xFE8Fu}, /* U+0628 ARABIC LETTER BEH */
+ {0x0000u, 0x0000u, 0xFE94u, 0xFE93u}, /* U+0629 ARABIC LETTER TEH MARBUTA */
+ {0xFE97u, 0xFE98u, 0xFE96u, 0xFE95u}, /* U+062A ARABIC LETTER TEH */
+ {0xFE9Bu, 0xFE9Cu, 0xFE9Au, 0xFE99u}, /* U+062B ARABIC LETTER THEH */
+ {0xFE9Fu, 0xFEA0u, 0xFE9Eu, 0xFE9Du}, /* U+062C ARABIC LETTER JEEM */
+ {0xFEA3u, 0xFEA4u, 0xFEA2u, 0xFEA1u}, /* U+062D ARABIC LETTER HAH */
+ {0xFEA7u, 0xFEA8u, 0xFEA6u, 0xFEA5u}, /* U+062E ARABIC LETTER KHAH */
+ {0x0000u, 0x0000u, 0xFEAAu, 0xFEA9u}, /* U+062F ARABIC LETTER DAL */
+ {0x0000u, 0x0000u, 0xFEACu, 0xFEABu}, /* U+0630 ARABIC LETTER THAL */
+ {0x0000u, 0x0000u, 0xFEAEu, 0xFEADu}, /* U+0631 ARABIC LETTER REH */
+ {0x0000u, 0x0000u, 0xFEB0u, 0xFEAFu}, /* U+0632 ARABIC LETTER ZAIN */
+ {0xFEB3u, 0xFEB4u, 0xFEB2u, 0xFEB1u}, /* U+0633 ARABIC LETTER SEEN */
+ {0xFEB7u, 0xFEB8u, 0xFEB6u, 0xFEB5u}, /* U+0634 ARABIC LETTER SHEEN */
+ {0xFEBBu, 0xFEBCu, 0xFEBAu, 0xFEB9u}, /* U+0635 ARABIC LETTER SAD */
+ {0xFEBFu, 0xFEC0u, 0xFEBEu, 0xFEBDu}, /* U+0636 ARABIC LETTER DAD */
+ {0xFEC3u, 0xFEC4u, 0xFEC2u, 0xFEC1u}, /* U+0637 ARABIC LETTER TAH */
+ {0xFEC7u, 0xFEC8u, 0xFEC6u, 0xFEC5u}, /* U+0638 ARABIC LETTER ZAH */
+ {0xFECBu, 0xFECCu, 0xFECAu, 0xFEC9u}, /* U+0639 ARABIC LETTER AIN */
+ {0xFECFu, 0xFED0u, 0xFECEu, 0xFECDu}, /* U+063A ARABIC LETTER GHAIN */
+ {0x0000u, 0x0000u, 0x0000u, 0x0000u}, /* U+063B */
+ {0x0000u, 0x0000u, 0x0000u, 0x0000u}, /* U+063C */
+ {0x0000u, 0x0000u, 0x0000u, 0x0000u}, /* U+063D */
+ {0x0000u, 0x0000u, 0x0000u, 0x0000u}, /* U+063E */
+ {0x0000u, 0x0000u, 0x0000u, 0x0000u}, /* U+063F */
+ {0x0000u, 0x0000u, 0x0000u, 0x0000u}, /* U+0640 */
+ {0xFED3u, 0xFED4u, 0xFED2u, 0xFED1u}, /* U+0641 ARABIC LETTER FEH */
+ {0xFED7u, 0xFED8u, 0xFED6u, 0xFED5u}, /* U+0642 ARABIC LETTER QAF */
+ {0xFEDBu, 0xFEDCu, 0xFEDAu, 0xFED9u}, /* U+0643 ARABIC LETTER KAF */
+ {0xFEDFu, 0xFEE0u, 0xFEDEu, 0xFEDDu}, /* U+0644 ARABIC LETTER LAM */
+ {0xFEE3u, 0xFEE4u, 0xFEE2u, 0xFEE1u}, /* U+0645 ARABIC LETTER MEEM */
+ {0xFEE7u, 0xFEE8u, 0xFEE6u, 0xFEE5u}, /* U+0646 ARABIC LETTER NOON */
+ {0xFEEBu, 0xFEECu, 0xFEEAu, 0xFEE9u}, /* U+0647 ARABIC LETTER HEH */
+ {0x0000u, 0x0000u, 0xFEEEu, 0xFEEDu}, /* U+0648 ARABIC LETTER WAW */
+ {0xFBE8u, 0xFBE9u, 0xFEF0u, 0xFEEFu}, /* U+0649 ARABIC LETTER */
+ {0xFEF3u, 0xFEF4u, 0xFEF2u, 0xFEF1u}, /* U+064A ARABIC LETTER YEH */
+ {0x0000u, 0x0000u, 0x0000u, 0x0000u}, /* U+064B */
+ {0x0000u, 0x0000u, 0x0000u, 0x0000u}, /* U+064C */
+ {0x0000u, 0x0000u, 0x0000u, 0x0000u}, /* U+064D */
+ {0x0000u, 0x0000u, 0x0000u, 0x0000u}, /* U+064E */
+ {0x0000u, 0x0000u, 0x0000u, 0x0000u}, /* U+064F */
+ {0x0000u, 0x0000u, 0x0000u, 0x0000u}, /* U+0650 */
+ {0x0000u, 0x0000u, 0x0000u, 0x0000u}, /* U+0651 */
+ {0x0000u, 0x0000u, 0x0000u, 0x0000u}, /* U+0652 */
+ {0x0000u, 0x0000u, 0x0000u, 0x0000u}, /* U+0653 */
+ {0x0000u, 0x0000u, 0x0000u, 0x0000u}, /* U+0654 */
+ {0x0000u, 0x0000u, 0x0000u, 0x0000u}, /* U+0655 */
+ {0x0000u, 0x0000u, 0x0000u, 0x0000u}, /* U+0656 */
+ {0x0000u, 0x0000u, 0x0000u, 0x0000u}, /* U+0657 */
+ {0x0000u, 0x0000u, 0x0000u, 0x0000u}, /* U+0658 */
+ {0x0000u, 0x0000u, 0x0000u, 0x0000u}, /* U+0659 */
+ {0x0000u, 0x0000u, 0x0000u, 0x0000u}, /* U+065A */
+ {0x0000u, 0x0000u, 0x0000u, 0x0000u}, /* U+065B */
+ {0x0000u, 0x0000u, 0x0000u, 0x0000u}, /* U+065C */
+ {0x0000u, 0x0000u, 0x0000u, 0x0000u}, /* U+065D */
+ {0x0000u, 0x0000u, 0x0000u, 0x0000u}, /* U+065E */
+ {0x0000u, 0x0000u, 0x0000u, 0x0000u}, /* U+065F */
+ {0x0000u, 0x0000u, 0x0000u, 0x0000u}, /* U+0660 */
+ {0x0000u, 0x0000u, 0x0000u, 0x0000u}, /* U+0661 */
+ {0x0000u, 0x0000u, 0x0000u, 0x0000u}, /* U+0662 */
+ {0x0000u, 0x0000u, 0x0000u, 0x0000u}, /* U+0663 */
+ {0x0000u, 0x0000u, 0x0000u, 0x0000u}, /* U+0664 */
+ {0x0000u, 0x0000u, 0x0000u, 0x0000u}, /* U+0665 */
+ {0x0000u, 0x0000u, 0x0000u, 0x0000u}, /* U+0666 */
+ {0x0000u, 0x0000u, 0x0000u, 0x0000u}, /* U+0667 */
+ {0x0000u, 0x0000u, 0x0000u, 0x0000u}, /* U+0668 */
+ {0x0000u, 0x0000u, 0x0000u, 0x0000u}, /* U+0669 */
+ {0x0000u, 0x0000u, 0x0000u, 0x0000u}, /* U+066A */
+ {0x0000u, 0x0000u, 0x0000u, 0x0000u}, /* U+066B */
+ {0x0000u, 0x0000u, 0x0000u, 0x0000u}, /* U+066C */
+ {0x0000u, 0x0000u, 0x0000u, 0x0000u}, /* U+066D */
+ {0x0000u, 0x0000u, 0x0000u, 0x0000u}, /* U+066E */
+ {0x0000u, 0x0000u, 0x0000u, 0x0000u}, /* U+066F */
+ {0x0000u, 0x0000u, 0x0000u, 0x0000u}, /* U+0670 */
+ {0x0000u, 0x0000u, 0xFB51u, 0xFB50u}, /* U+0671 ARABIC LETTER ALEF WASLA */
+ {0x0000u, 0x0000u, 0x0000u, 0x0000u}, /* U+0672 */
+ {0x0000u, 0x0000u, 0x0000u, 0x0000u}, /* U+0673 */
+ {0x0000u, 0x0000u, 0x0000u, 0x0000u}, /* U+0674 */
+ {0x0000u, 0x0000u, 0x0000u, 0x0000u}, /* U+0675 */
+ {0x0000u, 0x0000u, 0x0000u, 0x0000u}, /* U+0676 */
+ {0x0000u, 0x0000u, 0x0000u, 0xFBDDu}, /* U+0677 ARABIC LETTER U WITH HAMZA ABOVE ISOLATED FORM */
+ {0x0000u, 0x0000u, 0x0000u, 0x0000u}, /* U+0678 */
+ {0xFB68u, 0xFB69u, 0xFB67u, 0xFB66u}, /* U+0679 ARABIC LETTER TTEH */
+ {0xFB60u, 0xFB61u, 0xFB5Fu, 0xFB5Eu}, /* U+067A ARABIC LETTER TTEHEH */
+ {0xFB54u, 0xFB55u, 0xFB53u, 0xFB52u}, /* U+067B ARABIC LETTER BEEH */
+ {0x0000u, 0x0000u, 0x0000u, 0x0000u}, /* U+067C */
+ {0x0000u, 0x0000u, 0x0000u, 0x0000u}, /* U+067D */
+ {0xFB58u, 0xFB59u, 0xFB57u, 0xFB56u}, /* U+067E ARABIC LETTER PEH */
+ {0xFB64u, 0xFB65u, 0xFB63u, 0xFB62u}, /* U+067F ARABIC LETTER TEHEH */
+ {0xFB5Cu, 0xFB5Du, 0xFB5Bu, 0xFB5Au}, /* U+0680 ARABIC LETTER BEHEH */
+ {0x0000u, 0x0000u, 0x0000u, 0x0000u}, /* U+0681 */
+ {0x0000u, 0x0000u, 0x0000u, 0x0000u}, /* U+0682 */
+ {0xFB78u, 0xFB79u, 0xFB77u, 0xFB76u}, /* U+0683 ARABIC LETTER NYEH */
+ {0xFB74u, 0xFB75u, 0xFB73u, 0xFB72u}, /* U+0684 ARABIC LETTER DYEH */
+ {0x0000u, 0x0000u, 0x0000u, 0x0000u}, /* U+0685 */
+ {0xFB7Cu, 0xFB7Du, 0xFB7Bu, 0xFB7Au}, /* U+0686 ARABIC LETTER TCHEH */
+ {0xFB80u, 0xFB81u, 0xFB7Fu, 0xFB7Eu}, /* U+0687 ARABIC LETTER TCHEHEH */
+ {0x0000u, 0x0000u, 0xFB89u, 0xFB88u}, /* U+0688 ARABIC LETTER DDAL */
+ {0x0000u, 0x0000u, 0x0000u, 0x0000u}, /* U+0689 */
+ {0x0000u, 0x0000u, 0x0000u, 0x0000u}, /* U+068A */
+ {0x0000u, 0x0000u, 0x0000u, 0x0000u}, /* U+068B */
+ {0x0000u, 0x0000u, 0xFB85u, 0xFB84u}, /* U+068C ARABIC LETTER DAHAL */
+ {0x0000u, 0x0000u, 0xFB83u, 0xFB82u}, /* U+068D ARABIC LETTER DDAHAL */
+ {0x0000u, 0x0000u, 0xFB87u, 0xFB86u}, /* U+068E ARABIC LETTER DUL */
+ {0x0000u, 0x0000u, 0x0000u, 0x0000u}, /* U+068F */
+ {0x0000u, 0x0000u, 0x0000u, 0x0000u}, /* U+0690 */
+ {0x0000u, 0x0000u, 0xFB8Du, 0xFB8Cu}, /* U+0691 ARABIC LETTER RREH */
+ {0x0000u, 0x0000u, 0x0000u, 0x0000u}, /* U+0692 */
+ {0x0000u, 0x0000u, 0x0000u, 0x0000u}, /* U+0693 */
+ {0x0000u, 0x0000u, 0x0000u, 0x0000u}, /* U+0694 */
+ {0x0000u, 0x0000u, 0x0000u, 0x0000u}, /* U+0695 */
+ {0x0000u, 0x0000u, 0x0000u, 0x0000u}, /* U+0696 */
+ {0x0000u, 0x0000u, 0x0000u, 0x0000u}, /* U+0697 */
+ {0x0000u, 0x0000u, 0xFB8Bu, 0xFB8Au}, /* U+0698 ARABIC LETTER JEH */
+ {0x0000u, 0x0000u, 0x0000u, 0x0000u}, /* U+0699 */
+ {0x0000u, 0x0000u, 0x0000u, 0x0000u}, /* U+069A */
+ {0x0000u, 0x0000u, 0x0000u, 0x0000u}, /* U+069B */
+ {0x0000u, 0x0000u, 0x0000u, 0x0000u}, /* U+069C */
+ {0x0000u, 0x0000u, 0x0000u, 0x0000u}, /* U+069D */
+ {0x0000u, 0x0000u, 0x0000u, 0x0000u}, /* U+069E */
+ {0x0000u, 0x0000u, 0x0000u, 0x0000u}, /* U+069F */
+ {0x0000u, 0x0000u, 0x0000u, 0x0000u}, /* U+06A0 */
+ {0x0000u, 0x0000u, 0x0000u, 0x0000u}, /* U+06A1 */
+ {0x0000u, 0x0000u, 0x0000u, 0x0000u}, /* U+06A2 */
+ {0x0000u, 0x0000u, 0x0000u, 0x0000u}, /* U+06A3 */
+ {0xFB6Cu, 0xFB6Du, 0xFB6Bu, 0xFB6Au}, /* U+06A4 ARABIC LETTER VEH */
+ {0x0000u, 0x0000u, 0x0000u, 0x0000u}, /* U+06A5 */
+ {0xFB70u, 0xFB71u, 0xFB6Fu, 0xFB6Eu}, /* U+06A6 ARABIC LETTER PEHEH */
+ {0x0000u, 0x0000u, 0x0000u, 0x0000u}, /* U+06A7 */
+ {0x0000u, 0x0000u, 0x0000u, 0x0000u}, /* U+06A8 */
+ {0xFB90u, 0xFB91u, 0xFB8Fu, 0xFB8Eu}, /* U+06A9 ARABIC LETTER KEHEH */
+ {0x0000u, 0x0000u, 0x0000u, 0x0000u}, /* U+06AA */
+ {0x0000u, 0x0000u, 0x0000u, 0x0000u}, /* U+06AB */
+ {0x0000u, 0x0000u, 0x0000u, 0x0000u}, /* U+06AC */
+ {0xFBD5u, 0xFBD6u, 0xFBD4u, 0xFBD3u}, /* U+06AD ARABIC LETTER NG */
+ {0x0000u, 0x0000u, 0x0000u, 0x0000u}, /* U+06AE */
+ {0xFB94u, 0xFB95u, 0xFB93u, 0xFB92u}, /* U+06AF ARABIC LETTER GAF */
+ {0x0000u, 0x0000u, 0x0000u, 0x0000u}, /* U+06B0 */
+ {0xFB9Cu, 0xFB9Du, 0xFB9Bu, 0xFB9Au}, /* U+06B1 ARABIC LETTER NGOEH */
+ {0x0000u, 0x0000u, 0x0000u, 0x0000u}, /* U+06B2 */
+ {0xFB98u, 0xFB99u, 0xFB97u, 0xFB96u}, /* U+06B3 ARABIC LETTER GUEH */
+ {0x0000u, 0x0000u, 0x0000u, 0x0000u}, /* U+06B4 */
+ {0x0000u, 0x0000u, 0x0000u, 0x0000u}, /* U+06B5 */
+ {0x0000u, 0x0000u, 0x0000u, 0x0000u}, /* U+06B6 */
+ {0x0000u, 0x0000u, 0x0000u, 0x0000u}, /* U+06B7 */
+ {0x0000u, 0x0000u, 0x0000u, 0x0000u}, /* U+06B8 */
+ {0x0000u, 0x0000u, 0x0000u, 0x0000u}, /* U+06B9 */
+ {0x0000u, 0x0000u, 0xFB9Fu, 0xFB9Eu}, /* U+06BA ARABIC LETTER NOON GHUNNA */
+ {0xFBA2u, 0xFBA3u, 0xFBA1u, 0xFBA0u}, /* U+06BB ARABIC LETTER RNOON */
+ {0x0000u, 0x0000u, 0x0000u, 0x0000u}, /* U+06BC */
+ {0x0000u, 0x0000u, 0x0000u, 0x0000u}, /* U+06BD */
+ {0xFBACu, 0xFBADu, 0xFBABu, 0xFBAAu}, /* U+06BE ARABIC LETTER HEH DOACHASHMEE */
+ {0x0000u, 0x0000u, 0x0000u, 0x0000u}, /* U+06BF */
+ {0x0000u, 0x0000u, 0xFBA5u, 0xFBA4u}, /* U+06C0 ARABIC LETTER HEH WITH YEH ABOVE */
+ {0xFBA8u, 0xFBA9u, 0xFBA7u, 0xFBA6u}, /* U+06C1 ARABIC LETTER HEH GOAL */
+ {0x0000u, 0x0000u, 0x0000u, 0x0000u}, /* U+06C2 */
+ {0x0000u, 0x0000u, 0x0000u, 0x0000u}, /* U+06C3 */
+ {0x0000u, 0x0000u, 0x0000u, 0x0000u}, /* U+06C4 */
+ {0x0000u, 0x0000u, 0xFBE1u, 0xFBE0u}, /* U+06C5 ARABIC LETTER KIRGHIZ OE */
+ {0x0000u, 0x0000u, 0xFBDAu, 0xFBD9u}, /* U+06C6 ARABIC LETTER OE */
+ {0x0000u, 0x0000u, 0xFBD8u, 0xFBD7u}, /* U+06C7 ARABIC LETTER U */
+ {0x0000u, 0x0000u, 0xFBDCu, 0xFBDBu}, /* U+06C8 ARABIC LETTER YU */
+ {0x0000u, 0x0000u, 0xFBE3u, 0xFBE2u}, /* U+06C9 ARABIC LETTER KIRGHIZ YU */
+ {0x0000u, 0x0000u, 0x0000u, 0x0000u}, /* U+06CA */
+ {0x0000u, 0x0000u, 0xFBDFu, 0xFBDEu}, /* U+06CB ARABIC LETTER VE */
+ {0xFBFEu, 0xFBFFu, 0xFBFDu, 0xFBFCu}, /* U+06CC ARABIC LETTER FARSI YEH */
+ {0x0000u, 0x0000u, 0x0000u, 0x0000u}, /* U+06CD */
+ {0x0000u, 0x0000u, 0x0000u, 0x0000u}, /* U+06CE */
+ {0x0000u, 0x0000u, 0x0000u, 0x0000u}, /* U+06CF */
+ {0xFBE6u, 0xFBE7u, 0xFBE5u, 0xFBE4u}, /* U+06D0 ARABIC LETTER E */
+ {0x0000u, 0x0000u, 0x0000u, 0x0000u}, /* U+06D1 */
+ {0x0000u, 0x0000u, 0xFBAFu, 0xFBAEu}, /* U+06D2 ARABIC LETTER YEH BARREE */
+ {0x0000u, 0x0000u, 0xFBB1u, 0xFBB0u}, /* U+06D3 ARABIC LETTER YEH BARREE WITH HAMZA ABOVE */
+};
+
+#define SHAPING_TABLE_FIRST 0x0621u
+#define SHAPING_TABLE_LAST 0x06D3u
+
+
+static const struct ligature_set_t {
+ uint16_t first;
+ struct ligature_pairs_t {
+ uint16_t second;
+ uint16_t ligature;
+ } ligatures[4];
+} ligature_table[] =
+{
+ { 0xFEDFu, {
+ { 0xFE88u, 0xFEF9u }, /* ARABIC LIGATURE LAM WITH ALEF WITH HAMZA BELOW ISOLATED FORM */
+ { 0xFE82u, 0xFEF5u }, /* ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE ISOLATED FORM */
+ { 0xFE8Eu, 0xFEFBu }, /* ARABIC LIGATURE LAM WITH ALEF ISOLATED FORM */
+ { 0xFE84u, 0xFEF7u }, /* ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE ISOLATED FORM */
+ }},
+ { 0xFEE0u, {
+ { 0xFE88u, 0xFEFAu }, /* ARABIC LIGATURE LAM WITH ALEF WITH HAMZA BELOW FINAL FORM */
+ { 0xFE82u, 0xFEF6u }, /* ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE FINAL FORM */
+ { 0xFE8Eu, 0xFEFCu }, /* ARABIC LIGATURE LAM WITH ALEF FINAL FORM */
+ { 0xFE84u, 0xFEF8u }, /* ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE FINAL FORM */
+ }},
+};
+
+
+#endif /* HB_OT_SHAPE_COMPLEX_ARABIC_TABLE_HH */
+
+/* == End of generated table == */
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-ot-shape-complex-arabic.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-ot-shape-complex-arabic.cc
index b7aa694cb6b..b7aa694cb6b 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-ot-shape-complex-arabic.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-ot-shape-complex-arabic.cc
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-ot-shape-complex-default.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-ot-shape-complex-default.cc
index f7f097eedaa..f7f097eedaa 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-ot-shape-complex-default.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-ot-shape-complex-default.cc
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-ot-shape-complex-hangul.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-ot-shape-complex-hangul.cc
index 47aa44fedba..54c12ebca28 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-ot-shape-complex-hangul.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-ot-shape-complex-hangul.cc
@@ -86,26 +86,26 @@ data_destroy_hangul (void *data)
}
/* Constants for algorithmic hangul syllable [de]composition. */
-#define LBase 0x1100
-#define VBase 0x1161
-#define TBase 0x11A7
-#define LCount 19
-#define VCount 21
-#define TCount 28
-#define SBase 0xAC00
+#define LBase 0x1100u
+#define VBase 0x1161u
+#define TBase 0x11A7u
+#define LCount 19u
+#define VCount 21u
+#define TCount 28u
+#define SBase 0xAC00u
#define NCount (VCount * TCount)
#define SCount (LCount * NCount)
-#define isCombiningL(u) (hb_in_range<hb_codepoint_t> ((u), LBase, LBase+LCount-1))
-#define isCombiningV(u) (hb_in_range<hb_codepoint_t> ((u), VBase, VBase+VCount-1))
-#define isCombiningT(u) (hb_in_range<hb_codepoint_t> ((u), TBase+1, TBase+TCount-1))
-#define isCombinedS(u) (hb_in_range<hb_codepoint_t> ((u), SBase, SBase+SCount-1))
+#define isCombiningL(u) (hb_in_range ((u), LBase, LBase+LCount-1))
+#define isCombiningV(u) (hb_in_range ((u), VBase, VBase+VCount-1))
+#define isCombiningT(u) (hb_in_range ((u), TBase+1, TBase+TCount-1))
+#define isCombinedS(u) (hb_in_range ((u), SBase, SBase+SCount-1))
-#define isL(u) (hb_in_ranges<hb_codepoint_t> ((u), 0x1100, 0x115F, 0xA960, 0xA97C))
-#define isV(u) (hb_in_ranges<hb_codepoint_t> ((u), 0x1160, 0x11A7, 0xD7B0, 0xD7C6))
-#define isT(u) (hb_in_ranges<hb_codepoint_t> ((u), 0x11A8, 0x11FF, 0xD7CB, 0xD7FB))
+#define isL(u) (hb_in_ranges ((u), 0x1100u, 0x115Fu, 0xA960u, 0xA97Cu))
+#define isV(u) (hb_in_ranges ((u), 0x1160u, 0x11A7u, 0xD7B0u, 0xD7C6u))
+#define isT(u) (hb_in_ranges ((u), 0x11A8u, 0x11FFu, 0xD7CBu, 0xD7FBu))
-#define isHangulTone(u) (hb_in_range<hb_codepoint_t> ((u), 0x302e, 0x302f))
+#define isHangulTone(u) (hb_in_range ((u), 0x302Eu, 0x302Fu))
/* buffer var allocations */
#define hangul_shaping_feature() complex_var_u8_0() /* hangul jamo shaping feature */
@@ -211,14 +211,14 @@ preprocess_text_hangul (const hb_ot_shape_plan_t *plan,
else
{
/* No valid syllable as base for tone mark; try to insert dotted circle. */
- if (font->has_glyph (0x25cc))
+ if (font->has_glyph (0x25CCu))
{
hb_codepoint_t chars[2];
if (!is_zero_width_char (font, u)) {
chars[0] = u;
- chars[1] = 0x25cc;
+ chars[1] = 0x25CCu;
} else {
- chars[0] = 0x25cc;
+ chars[0] = 0x25CCu;
chars[1] = u;
}
buffer->replace_glyphs (1, 2, chars);
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-ot-shape-complex-hebrew.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-ot-shape-complex-hebrew.cc
index 6bb6043f652..2381a6e732c 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-ot-shape-complex-hebrew.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-ot-shape-complex-hebrew.cc
@@ -35,37 +35,37 @@ compose_hebrew (const hb_ot_shape_normalize_context_t *c,
{
/* Hebrew presentation-form shaping.
* https://bugzilla.mozilla.org/show_bug.cgi?id=728866
- * Hebrew presentation forms with dagesh, for characters 0x05D0..0x05EA;
+ * Hebrew presentation forms with dagesh, for characters U+05D0..05EA;
* Note that some letters do not have a dagesh presForm encoded.
*/
- static const hb_codepoint_t sDageshForms[0x05EA - 0x05D0 + 1] = {
- 0xFB30, /* ALEF */
- 0xFB31, /* BET */
- 0xFB32, /* GIMEL */
- 0xFB33, /* DALET */
- 0xFB34, /* HE */
- 0xFB35, /* VAV */
- 0xFB36, /* ZAYIN */
- 0x0000, /* HET */
- 0xFB38, /* TET */
- 0xFB39, /* YOD */
- 0xFB3A, /* FINAL KAF */
- 0xFB3B, /* KAF */
- 0xFB3C, /* LAMED */
- 0x0000, /* FINAL MEM */
- 0xFB3E, /* MEM */
- 0x0000, /* FINAL NUN */
- 0xFB40, /* NUN */
- 0xFB41, /* SAMEKH */
- 0x0000, /* AYIN */
- 0xFB43, /* FINAL PE */
- 0xFB44, /* PE */
- 0x0000, /* FINAL TSADI */
- 0xFB46, /* TSADI */
- 0xFB47, /* QOF */
- 0xFB48, /* RESH */
- 0xFB49, /* SHIN */
- 0xFB4A /* TAV */
+ static const hb_codepoint_t sDageshForms[0x05EAu - 0x05D0u + 1] = {
+ 0xFB30u, /* ALEF */
+ 0xFB31u, /* BET */
+ 0xFB32u, /* GIMEL */
+ 0xFB33u, /* DALET */
+ 0xFB34u, /* HE */
+ 0xFB35u, /* VAV */
+ 0xFB36u, /* ZAYIN */
+ 0x0000u, /* HET */
+ 0xFB38u, /* TET */
+ 0xFB39u, /* YOD */
+ 0xFB3Au, /* FINAL KAF */
+ 0xFB3Bu, /* KAF */
+ 0xFB3Cu, /* LAMED */
+ 0x0000u, /* FINAL MEM */
+ 0xFB3Eu, /* MEM */
+ 0x0000u, /* FINAL NUN */
+ 0xFB40u, /* NUN */
+ 0xFB41u, /* SAMEKH */
+ 0x0000u, /* AYIN */
+ 0xFB43u, /* FINAL PE */
+ 0xFB44u, /* PE */
+ 0x0000u, /* FINAL TSADI */
+ 0xFB46u, /* TSADI */
+ 0xFB47u, /* QOF */
+ 0xFB48u, /* RESH */
+ 0xFB49u, /* SHIN */
+ 0xFB4Au /* TAV */
};
bool found = c->unicode->compose (a, b, ab);
@@ -75,76 +75,76 @@ compose_hebrew (const hb_ot_shape_normalize_context_t *c,
/* Special-case Hebrew presentation forms that are excluded from
* standard normalization, but wanted for old fonts. */
switch (b) {
- case 0x05B4: /* HIRIQ */
- if (a == 0x05D9) { /* YOD */
- *ab = 0xFB1D;
+ case 0x05B4u: /* HIRIQ */
+ if (a == 0x05D9u) { /* YOD */
+ *ab = 0xFB1Du;
found = true;
}
break;
- case 0x05B7: /* patah */
- if (a == 0x05F2) { /* YIDDISH YOD YOD */
- *ab = 0xFB1F;
+ case 0x05B7u: /* patah */
+ if (a == 0x05F2u) { /* YIDDISH YOD YOD */
+ *ab = 0xFB1Fu;
found = true;
- } else if (a == 0x05D0) { /* ALEF */
- *ab = 0xFB2E;
+ } else if (a == 0x05D0u) { /* ALEF */
+ *ab = 0xFB2Eu;
found = true;
}
break;
- case 0x05B8: /* QAMATS */
- if (a == 0x05D0) { /* ALEF */
- *ab = 0xFB2F;
+ case 0x05B8u: /* QAMATS */
+ if (a == 0x05D0u) { /* ALEF */
+ *ab = 0xFB2Fu;
found = true;
}
break;
- case 0x05B9: /* HOLAM */
- if (a == 0x05D5) { /* VAV */
- *ab = 0xFB4B;
+ case 0x05B9u: /* HOLAM */
+ if (a == 0x05D5u) { /* VAV */
+ *ab = 0xFB4Bu;
found = true;
}
break;
- case 0x05BC: /* DAGESH */
- if (a >= 0x05D0 && a <= 0x05EA) {
- *ab = sDageshForms[a - 0x05D0];
+ case 0x05BCu: /* DAGESH */
+ if (a >= 0x05D0u && a <= 0x05EAu) {
+ *ab = sDageshForms[a - 0x05D0u];
found = (*ab != 0);
- } else if (a == 0xFB2A) { /* SHIN WITH SHIN DOT */
- *ab = 0xFB2C;
+ } else if (a == 0xFB2Au) { /* SHIN WITH SHIN DOT */
+ *ab = 0xFB2Cu;
found = true;
- } else if (a == 0xFB2B) { /* SHIN WITH SIN DOT */
- *ab = 0xFB2D;
+ } else if (a == 0xFB2Bu) { /* SHIN WITH SIN DOT */
+ *ab = 0xFB2Du;
found = true;
}
break;
- case 0x05BF: /* RAFE */
+ case 0x05BFu: /* RAFE */
switch (a) {
- case 0x05D1: /* BET */
- *ab = 0xFB4C;
+ case 0x05D1u: /* BET */
+ *ab = 0xFB4Cu;
found = true;
break;
- case 0x05DB: /* KAF */
- *ab = 0xFB4D;
+ case 0x05DBu: /* KAF */
+ *ab = 0xFB4Du;
found = true;
break;
- case 0x05E4: /* PE */
- *ab = 0xFB4E;
+ case 0x05E4u: /* PE */
+ *ab = 0xFB4Eu;
found = true;
break;
}
break;
- case 0x05C1: /* SHIN DOT */
- if (a == 0x05E9) { /* SHIN */
- *ab = 0xFB2A;
+ case 0x05C1u: /* SHIN DOT */
+ if (a == 0x05E9u) { /* SHIN */
+ *ab = 0xFB2Au;
found = true;
- } else if (a == 0xFB49) { /* SHIN WITH DAGESH */
- *ab = 0xFB2C;
+ } else if (a == 0xFB49u) { /* SHIN WITH DAGESH */
+ *ab = 0xFB2Cu;
found = true;
}
break;
- case 0x05C2: /* SIN DOT */
- if (a == 0x05E9) { /* SHIN */
- *ab = 0xFB2B;
+ case 0x05C2u: /* SIN DOT */
+ if (a == 0x05E9u) { /* SHIN */
+ *ab = 0xFB2Bu;
found = true;
- } else if (a == 0xFB49) { /* SHIN WITH DAGESH */
- *ab = 0xFB2D;
+ } else if (a == 0xFB49u) { /* SHIN WITH DAGESH */
+ *ab = 0xFB2Du;
found = true;
}
break;
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-ot-shape-complex-indic-machine.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-ot-shape-complex-indic-machine.hh
index 5fbdcc8366e..5fbdcc8366e 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-ot-shape-complex-indic-machine.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-ot-shape-complex-indic-machine.hh
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-ot-shape-complex-indic-machine.rl b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-ot-shape-complex-indic-machine.rl
index f6768a581f2..f6768a581f2 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-ot-shape-complex-indic-machine.rl
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-ot-shape-complex-indic-machine.rl
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-ot-shape-complex-indic-private.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-ot-shape-complex-indic-private.hh
index d8dfc6507d9..d8dfc6507d9 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-ot-shape-complex-indic-private.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-ot-shape-complex-indic-private.hh
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-ot-shape-complex-indic-table.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-ot-shape-complex-indic-table.cc
index 69da6507c3b..f58380e0c8a 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-ot-shape-complex-indic-table.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-ot-shape-complex-indic-table.cc
@@ -70,7 +70,7 @@
static const INDIC_TABLE_ELEMENT_TYPE indic_table[] = {
-#define indic_offset_0x0028 0
+#define indic_offset_0x0028u 0
/* Basic Latin */
@@ -79,14 +79,14 @@ static const INDIC_TABLE_ELEMENT_TYPE indic_table[] = {
/* 0030 */ _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x),
/* 0038 */ _(Nd,x), _(Nd,x), _(x,x), _(x,x), _(x,x), _(x,x), _(x,x), _(x,x),
-#define indic_offset_0x00d0 24
+#define indic_offset_0x00d0u 24
/* Latin-1 Supplement */
/* 00D0 */ _(x,x), _(x,x), _(x,x), _(x,x), _(x,x), _(x,x), _(x,x), _(CP,x),
-#define indic_offset_0x0900 32
+#define indic_offset_0x0900u 32
/* Devanagari */
@@ -278,7 +278,7 @@ static const INDIC_TABLE_ELEMENT_TYPE indic_table[] = {
/* 0DE8 */ _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x),
/* 0DF0 */ _(x,x), _(x,x), _(M,R), _(M,R), _(x,x), _(x,x), _(x,x), _(x,x),
-#define indic_offset_0x1000 1304
+#define indic_offset_0x1000u 1304
/* Myanmar */
@@ -304,7 +304,7 @@ static const INDIC_TABLE_ELEMENT_TYPE indic_table[] = {
/* 1090 */ _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x),
/* 1098 */ _(Nd,x), _(Nd,x), _(TM,x), _(TM,x), _(M,R), _(M,T), _(x,x), _(x,x),
-#define indic_offset_0x1700 1464
+#define indic_offset_0x1700u 1464
/* Tagalog */
@@ -352,7 +352,7 @@ static const INDIC_TABLE_ELEMENT_TYPE indic_table[] = {
/* 17E0 */ _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x),
/* 17E8 */ _(Nd,x), _(Nd,x), _(x,x), _(x,x), _(x,x), _(x,x), _(x,x), _(x,x),
-#define indic_offset_0x1900 1704
+#define indic_offset_0x1900u 1704
/* Limbu */
@@ -422,7 +422,7 @@ static const INDIC_TABLE_ELEMENT_TYPE indic_table[] = {
/* 1A90 */ _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x),
/* 1A98 */ _(Nd,x), _(Nd,x), _(x,x), _(x,x), _(x,x), _(x,x), _(x,x), _(x,x),
-#define indic_offset_0x1b00 2120
+#define indic_offset_0x1b00u 2120
/* Balinese */
@@ -479,7 +479,7 @@ static const INDIC_TABLE_ELEMENT_TYPE indic_table[] = {
/* 1C40 */ _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x),
/* 1C48 */ _(Nd,x), _(Nd,x), _(x,x), _(x,x), _(x,x), _(C,x), _(C,x), _(C,x),
-#define indic_offset_0x1cd0 2456
+#define indic_offset_0x1cd0u 2456
/* Vedic Extensions */
@@ -490,7 +490,7 @@ static const INDIC_TABLE_ELEMENT_TYPE indic_table[] = {
/* 1CE8 */ _(x,x), _(x,x), _(x,x), _(x,x), _(x,x), _(x,x), _(x,x), _(x,x),
/* 1CF0 */ _(x,x), _(x,x), _(Vs,x), _(Vs,x), _(TM,x), _(x,x), _(x,x), _(x,x),
-#define indic_offset_0x2008 2496
+#define indic_offset_0x2008u 2496
/* General Punctuation */
@@ -498,7 +498,7 @@ static const INDIC_TABLE_ELEMENT_TYPE indic_table[] = {
/* 2008 */ _(x,x), _(x,x), _(x,x), _(x,x),_(ZWNJ,x),_(ZWJ,x), _(x,x), _(x,x),
/* 2010 */ _(x,x), _(x,x), _(CP,x), _(CP,x), _(CP,x), _(x,x), _(x,x), _(x,x),
-#define indic_offset_0xa800 2512
+#define indic_offset_0xa800u 2512
/* Syloti Nagri */
@@ -632,7 +632,7 @@ static const INDIC_TABLE_ELEMENT_TYPE indic_table[] = {
/* AAE8 */ _(C,x), _(C,x), _(C,x), _(M,L), _(M,B), _(M,T), _(M,L), _(M,R),
/* AAF0 */ _(x,x), _(x,x), _(x,x), _(x,x), _(x,x), _(Vs,x), _(IS,x), _(x,x),
-#define indic_offset_0xabc0 3272
+#define indic_offset_0xabc0u 3272
/* Meetei Mayek */
@@ -646,7 +646,7 @@ static const INDIC_TABLE_ELEMENT_TYPE indic_table[] = {
/* ABF0 */ _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x),
/* ABF8 */ _(Nd,x), _(Nd,x), _(x,x), _(x,x), _(x,x), _(x,x), _(x,x), _(x,x),
-#define indic_offset_0x10a00 3336
+#define indic_offset_0x10a00u 3336
/* Kharoshthi */
@@ -661,7 +661,7 @@ static const INDIC_TABLE_ELEMENT_TYPE indic_table[] = {
/* 10A38 */ _(x,x), _(x,x), _(x,x), _(x,x), _(x,x), _(x,x), _(x,x), _(IS,x),
/* 10A40 */ _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x),
-#define indic_offset_0x11000 3408
+#define indic_offset_0x11000u 3408
/* Brahmi */
@@ -694,7 +694,7 @@ static const INDIC_TABLE_ELEMENT_TYPE indic_table[] = {
/* 110B0 */ _(M,R), _(M,L), _(M,R), _(M,B), _(M,B), _(M,T), _(M,T), _(M,R),
/* 110B8 */ _(M,R), _(V,B), _(N,x), _(x,x), _(x,x), _(x,x), _(x,x), _(x,x),
-#define indic_offset_0x11100 3600
+#define indic_offset_0x11100u 3600
/* Chakma */
@@ -751,7 +751,7 @@ static const INDIC_TABLE_ELEMENT_TYPE indic_table[] = {
/* 11228 */ _(C,x), _(C,x), _(C,x), _(C,x), _(M,R), _(M,R), _(M,R), _(M,B),
/* 11230 */ _(M,T), _(M,T), _(M,TR), _(M,TR), _(Bi,x), _(V,R), _(N,x), _(GM,T),
-#define indic_offset_0x112b0 3912
+#define indic_offset_0x112b0u 3912
/* Khudawadi */
@@ -785,7 +785,7 @@ static const INDIC_TABLE_ELEMENT_TYPE indic_table[] = {
/* 11368 */ _(Ca,x), _(Ca,x), _(Ca,x), _(Ca,x), _(Ca,x), _(x,x), _(x,x), _(x,x),
/* 11370 */ _(Ca,x), _(Ca,x), _(Ca,x), _(Ca,x), _(Ca,x), _(x,x), _(x,x), _(x,x),
-#define indic_offset_0x11480 4112
+#define indic_offset_0x11480u 4112
/* Tirhuta */
@@ -803,7 +803,7 @@ static const INDIC_TABLE_ELEMENT_TYPE indic_table[] = {
/* 114D0 */ _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x),
/* 114D8 */ _(Nd,x), _(Nd,x), _(x,x), _(x,x), _(x,x), _(x,x), _(x,x), _(x,x),
-#define indic_offset_0x11580 4208
+#define indic_offset_0x11580u 4208
/* Siddham */
@@ -818,7 +818,7 @@ static const INDIC_TABLE_ELEMENT_TYPE indic_table[] = {
/* 115B8 */ _(M,L), _(M,TL), _(M,LR),_(M,TLR), _(Bi,x), _(Bi,x), _(Vs,x), _(V,B),
/* 115C0 */ _(N,x), _(x,x), _(x,x), _(x,x), _(x,x), _(x,x), _(x,x), _(x,x),
-#define indic_offset_0x11600 4280
+#define indic_offset_0x11600u 4280
/* Modi */
@@ -860,42 +860,42 @@ hb_indic_get_categories (hb_codepoint_t u)
{
switch (u >> 12)
{
- case 0x0:
- if (0x0028 <= u && u <= 0x0040) return indic_table[u - 0x0028 + indic_offset_0x0028];
- if (0x00D0 <= u && u <= 0x00D8) return indic_table[u - 0x00D0 + indic_offset_0x00d0];
- if (0x0900 <= u && u <= 0x0DF8) return indic_table[u - 0x0900 + indic_offset_0x0900];
- if (unlikely (u == 0x00A0)) return _(CP,x);
+ case 0x0u:
+ if (hb_in_range (u, 0x0028u, 0x0040u)) return indic_table[u - 0x0028u + indic_offset_0x0028u];
+ if (hb_in_range (u, 0x00D0u, 0x00D8u)) return indic_table[u - 0x00D0u + indic_offset_0x00d0u];
+ if (hb_in_range (u, 0x0900u, 0x0DF8u)) return indic_table[u - 0x0900u + indic_offset_0x0900u];
+ if (unlikely (u == 0x00A0u)) return _(CP,x);
break;
- case 0x1:
- if (0x1000 <= u && u <= 0x10A0) return indic_table[u - 0x1000 + indic_offset_0x1000];
- if (0x1700 <= u && u <= 0x17F0) return indic_table[u - 0x1700 + indic_offset_0x1700];
- if (0x1900 <= u && u <= 0x1AA0) return indic_table[u - 0x1900 + indic_offset_0x1900];
- if (0x1B00 <= u && u <= 0x1C50) return indic_table[u - 0x1B00 + indic_offset_0x1b00];
- if (0x1CD0 <= u && u <= 0x1CF8) return indic_table[u - 0x1CD0 + indic_offset_0x1cd0];
+ case 0x1u:
+ if (hb_in_range (u, 0x1000u, 0x10A0u)) return indic_table[u - 0x1000u + indic_offset_0x1000u];
+ if (hb_in_range (u, 0x1700u, 0x17F0u)) return indic_table[u - 0x1700u + indic_offset_0x1700u];
+ if (hb_in_range (u, 0x1900u, 0x1AA0u)) return indic_table[u - 0x1900u + indic_offset_0x1900u];
+ if (hb_in_range (u, 0x1B00u, 0x1C50u)) return indic_table[u - 0x1B00u + indic_offset_0x1b00u];
+ if (hb_in_range (u, 0x1CD0u, 0x1CF8u)) return indic_table[u - 0x1CD0u + indic_offset_0x1cd0u];
break;
- case 0x2:
- if (0x2008 <= u && u <= 0x2018) return indic_table[u - 0x2008 + indic_offset_0x2008];
- if (unlikely (u == 0x25CC)) return _(CP,x);
+ case 0x2u:
+ if (hb_in_range (u, 0x2008u, 0x2018u)) return indic_table[u - 0x2008u + indic_offset_0x2008u];
+ if (unlikely (u == 0x25CCu)) return _(CP,x);
break;
- case 0xA:
- if (0xA800 <= u && u <= 0xAAF8) return indic_table[u - 0xA800 + indic_offset_0xa800];
- if (0xABC0 <= u && u <= 0xAC00) return indic_table[u - 0xABC0 + indic_offset_0xabc0];
+ case 0xAu:
+ if (hb_in_range (u, 0xA800u, 0xAAF8u)) return indic_table[u - 0xA800u + indic_offset_0xa800u];
+ if (hb_in_range (u, 0xABC0u, 0xAC00u)) return indic_table[u - 0xABC0u + indic_offset_0xabc0u];
break;
- case 0x10:
- if (0x10A00 <= u && u <= 0x10A48) return indic_table[u - 0x10A00 + indic_offset_0x10a00];
+ case 0x10u:
+ if (hb_in_range (u, 0x10A00u, 0x10A48u)) return indic_table[u - 0x10A00u + indic_offset_0x10a00u];
break;
- case 0x11:
- if (0x11000 <= u && u <= 0x110C0) return indic_table[u - 0x11000 + indic_offset_0x11000];
- if (0x11100 <= u && u <= 0x11238) return indic_table[u - 0x11100 + indic_offset_0x11100];
- if (0x112B0 <= u && u <= 0x11378) return indic_table[u - 0x112B0 + indic_offset_0x112b0];
- if (0x11480 <= u && u <= 0x114E0) return indic_table[u - 0x11480 + indic_offset_0x11480];
- if (0x11580 <= u && u <= 0x115C8) return indic_table[u - 0x11580 + indic_offset_0x11580];
- if (0x11600 <= u && u <= 0x116D0) return indic_table[u - 0x11600 + indic_offset_0x11600];
+ case 0x11u:
+ if (hb_in_range (u, 0x11000u, 0x110C0u)) return indic_table[u - 0x11000u + indic_offset_0x11000u];
+ if (hb_in_range (u, 0x11100u, 0x11238u)) return indic_table[u - 0x11100u + indic_offset_0x11100u];
+ if (hb_in_range (u, 0x112B0u, 0x11378u)) return indic_table[u - 0x112B0u + indic_offset_0x112b0u];
+ if (hb_in_range (u, 0x11480u, 0x114E0u)) return indic_table[u - 0x11480u + indic_offset_0x11480u];
+ if (hb_in_range (u, 0x11580u, 0x115C8u)) return indic_table[u - 0x11580u + indic_offset_0x11580u];
+ if (hb_in_range (u, 0x11600u, 0x116D0u)) return indic_table[u - 0x11600u + indic_offset_0x11600u];
break;
default:
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-ot-shape-complex-indic.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-ot-shape-complex-indic.cc
index 1100b4aae28..5bb1f338299 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-ot-shape-complex-indic.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-ot-shape-complex-indic.cc
@@ -37,19 +37,19 @@
*/
-#define IN_HALF_BLOCK(u, Base) (((u) & ~0x7F) == (Base))
+#define IN_HALF_BLOCK(u, Base) (((u) & ~0x7Fu) == (Base))
-#define IS_DEVA(u) (IN_HALF_BLOCK (u, 0x0900))
-#define IS_BENG(u) (IN_HALF_BLOCK (u, 0x0980))
-#define IS_GURU(u) (IN_HALF_BLOCK (u, 0x0A00))
-#define IS_GUJR(u) (IN_HALF_BLOCK (u, 0x0A80))
-#define IS_ORYA(u) (IN_HALF_BLOCK (u, 0x0B00))
-#define IS_TAML(u) (IN_HALF_BLOCK (u, 0x0B80))
-#define IS_TELU(u) (IN_HALF_BLOCK (u, 0x0C00))
-#define IS_KNDA(u) (IN_HALF_BLOCK (u, 0x0C80))
-#define IS_MLYM(u) (IN_HALF_BLOCK (u, 0x0D00))
-#define IS_SINH(u) (IN_HALF_BLOCK (u, 0x0D80))
-#define IS_KHMR(u) (IN_HALF_BLOCK (u, 0x1780))
+#define IS_DEVA(u) (IN_HALF_BLOCK (u, 0x0900u))
+#define IS_BENG(u) (IN_HALF_BLOCK (u, 0x0980u))
+#define IS_GURU(u) (IN_HALF_BLOCK (u, 0x0A00u))
+#define IS_GUJR(u) (IN_HALF_BLOCK (u, 0x0A80u))
+#define IS_ORYA(u) (IN_HALF_BLOCK (u, 0x0B00u))
+#define IS_TAML(u) (IN_HALF_BLOCK (u, 0x0B80u))
+#define IS_TELU(u) (IN_HALF_BLOCK (u, 0x0C00u))
+#define IS_KNDA(u) (IN_HALF_BLOCK (u, 0x0C80u))
+#define IS_MLYM(u) (IN_HALF_BLOCK (u, 0x0D00u))
+#define IS_SINH(u) (IN_HALF_BLOCK (u, 0x0D80u))
+#define IS_KHMR(u) (IN_HALF_BLOCK (u, 0x1780u))
#define MATRA_POS_LEFT(u) POS_PRE_M
@@ -60,8 +60,8 @@
IS_GUJR(u) ? POS_AFTER_POST : \
IS_ORYA(u) ? POS_AFTER_POST : \
IS_TAML(u) ? POS_AFTER_POST : \
- IS_TELU(u) ? (u <= 0x0C42 ? POS_BEFORE_SUB : POS_AFTER_SUB) : \
- IS_KNDA(u) ? (u < 0x0CC3 || u > 0xCD6 ? POS_BEFORE_SUB : POS_AFTER_SUB) : \
+ IS_TELU(u) ? (u <= 0x0C42u ? POS_BEFORE_SUB : POS_AFTER_SUB) : \
+ IS_KNDA(u) ? (u < 0x0CC3u || u > 0xCD6u ? POS_BEFORE_SUB : POS_AFTER_SUB) : \
IS_MLYM(u) ? POS_AFTER_POST : \
IS_SINH(u) ? POS_AFTER_SUB : \
IS_KHMR(u) ? POS_AFTER_POST : \
@@ -112,20 +112,20 @@ matra_position (hb_codepoint_t u, indic_position_t side)
* Or completely remove it and just check in the tables.
*/
static const hb_codepoint_t ra_chars[] = {
- 0x0930, /* Devanagari */
- 0x09B0, /* Bengali */
- 0x09F0, /* Bengali */
- 0x0A30, /* Gurmukhi */ /* No Reph */
- 0x0AB0, /* Gujarati */
- 0x0B30, /* Oriya */
- 0x0BB0, /* Tamil */ /* No Reph */
- 0x0C30, /* Telugu */ /* Reph formed only with ZWJ */
- 0x0CB0, /* Kannada */
- 0x0D30, /* Malayalam */ /* No Reph, Logical Repha */
-
- 0x0DBB, /* Sinhala */ /* Reph formed only with ZWJ */
-
- 0x179A, /* Khmer */ /* No Reph, Visual Repha */
+ 0x0930u, /* Devanagari */
+ 0x09B0u, /* Bengali */
+ 0x09F0u, /* Bengali */
+ 0x0A30u, /* Gurmukhi */ /* No Reph */
+ 0x0AB0u, /* Gujarati */
+ 0x0B30u, /* Oriya */
+ 0x0BB0u, /* Tamil */ /* No Reph */
+ 0x0C30u, /* Telugu */ /* Reph formed only with ZWJ */
+ 0x0CB0u, /* Kannada */
+ 0x0D30u, /* Malayalam */ /* No Reph, Logical Repha */
+
+ 0x0DBBu, /* Sinhala */ /* Reph formed only with ZWJ */
+
+ 0x179Au, /* Khmer */ /* No Reph, Visual Repha */
};
static inline bool
@@ -168,7 +168,7 @@ set_indic_properties (hb_glyph_info_t &info)
{
hb_codepoint_t u = info.codepoint;
unsigned int type = hb_indic_get_categories (u);
- indic_category_t cat = (indic_category_t) (type & 0x7F);
+ indic_category_t cat = (indic_category_t) (type & 0x7Fu);
indic_position_t pos = (indic_position_t) (type >> 8);
@@ -187,50 +187,50 @@ set_indic_properties (hb_glyph_info_t &info)
* U+092E,U+0951,U+0952
* U+092E,U+0952,U+0951
*/
- if (unlikely (hb_in_ranges<hb_codepoint_t> (u, 0x0951, 0x0952,
- 0x1CD0, 0x1CD2,
- 0x1CD4, 0x1CE1) ||
- u == 0x1CF4))
+ if (unlikely (hb_in_ranges (u, 0x0951u, 0x0952u,
+ 0x1CD0u, 0x1CD2u,
+ 0x1CD4u, 0x1CE1u) ||
+ u == 0x1CF4u))
cat = OT_A;
/* The following act more like the Bindus. */
- else if (unlikely (hb_in_range<hb_codepoint_t> (u, 0x0953, 0x0954)))
+ else if (unlikely (hb_in_range (u, 0x0953u, 0x0954u)))
cat = OT_SM;
/* The following act like consonants. */
- else if (unlikely (hb_in_ranges<hb_codepoint_t> (u, 0x0A72, 0x0A73,
- 0x1CF5, 0x1CF6)))
+ else if (unlikely (hb_in_ranges (u, 0x0A72u, 0x0A73u,
+ 0x1CF5u, 0x1CF6u)))
cat = OT_C;
/* TODO: The following should only be allowed after a Visarga.
* For now, just treat them like regular tone marks. */
- else if (unlikely (hb_in_range<hb_codepoint_t> (u, 0x1CE2, 0x1CE8)))
+ else if (unlikely (hb_in_range (u, 0x1CE2u, 0x1CE8u)))
cat = OT_A;
/* TODO: The following should only be allowed after some of
* the nasalization marks, maybe only for U+1CE9..U+1CF1.
* For now, just treat them like tone marks. */
- else if (unlikely (u == 0x1CED))
+ else if (unlikely (u == 0x1CEDu))
cat = OT_A;
/* The following take marks in standalone clusters, similar to Avagraha. */
- else if (unlikely (hb_in_ranges<hb_codepoint_t> (u, 0xA8F2, 0xA8F7,
- 0x1CE9, 0x1CEC,
- 0x1CEE, 0x1CF1)))
+ else if (unlikely (hb_in_ranges (u, 0xA8F2u, 0xA8F7u,
+ 0x1CE9u, 0x1CECu,
+ 0x1CEEu, 0x1CF1u)))
{
cat = OT_Symbol;
ASSERT_STATIC ((int) INDIC_SYLLABIC_CATEGORY_AVAGRAHA == OT_Symbol);
}
- else if (unlikely (hb_in_range<hb_codepoint_t> (u, 0x17CD, 0x17D1) ||
- u == 0x17CB || u == 0x17D3 || u == 0x17DD)) /* Khmer Various signs */
+ else if (unlikely (hb_in_range (u, 0x17CDu, 0x17D1u) ||
+ u == 0x17CBu || u == 0x17D3u || u == 0x17DDu)) /* Khmer Various signs */
{
/* These are like Top Matras. */
cat = OT_M;
pos = POS_ABOVE_C;
}
- else if (unlikely (u == 0x17C6)) cat = OT_N; /* Khmer Bindu doesn't like to be repositioned. */
- else if (unlikely (u == 0x17D2)) cat = OT_Coeng; /* Khmer coeng */
- else if (unlikely (hb_in_range<hb_codepoint_t> (u, 0x2010, 0x2011)))
- cat = OT_PLACEHOLDER;
- else if (unlikely (u == 0x25CC)) cat = OT_DOTTEDCIRCLE;
- else if (unlikely (u == 0xA982)) cat = OT_SM; /* Javanese repha. */
- else if (unlikely (u == 0xA9BE)) cat = OT_CM2; /* Javanese medial ya. */
- else if (unlikely (u == 0xA9BD)) { cat = OT_M; pos = POS_POST_C; } /* Javanese vocalic r. */
+ else if (unlikely (u == 0x17C6u)) cat = OT_N; /* Khmer Bindu doesn't like to be repositioned. */
+ else if (unlikely (u == 0x17D2u)) cat = OT_Coeng; /* Khmer coeng */
+ else if (unlikely (hb_in_range (u, 0x2010u, 0x2011u)))
+ cat = OT_PLACEHOLDER;
+ else if (unlikely (u == 0x25CCu)) cat = OT_DOTTEDCIRCLE;
+ else if (unlikely (u == 0xA982u)) cat = OT_SM; /* Javanese repha. */
+ else if (unlikely (u == 0xA9BEu)) cat = OT_CM2; /* Javanese medial ya. */
+ else if (unlikely (u == 0xA9BDu)) { cat = OT_M; pos = POS_POST_C; } /* Javanese vocalic r. */
/*
@@ -252,7 +252,7 @@ set_indic_properties (hb_glyph_info_t &info)
pos = POS_SMVD;
}
- if (unlikely (u == 0x0B01)) pos = POS_BEFORE_SUB; /* Oriya Bindu is BeforeSub in the spec. */
+ if (unlikely (u == 0x0B01u)) pos = POS_BEFORE_SUB; /* Oriya Bindu is BeforeSub in the spec. */
@@ -316,20 +316,20 @@ struct indic_config_t
static const indic_config_t indic_configs[] =
{
/* Default. Should be first. */
- {HB_SCRIPT_INVALID, false, 0,BASE_POS_LAST, REPH_POS_BEFORE_POST,REPH_MODE_IMPLICIT, BLWF_MODE_PRE_AND_POST, PREF_LEN_1},
- {HB_SCRIPT_DEVANAGARI,true, 0x094D,BASE_POS_LAST, REPH_POS_BEFORE_POST,REPH_MODE_IMPLICIT, BLWF_MODE_PRE_AND_POST, PREF_LEN_DONT_CARE},
- {HB_SCRIPT_BENGALI, true, 0x09CD,BASE_POS_LAST, REPH_POS_AFTER_SUB, REPH_MODE_IMPLICIT, BLWF_MODE_PRE_AND_POST, PREF_LEN_DONT_CARE},
- {HB_SCRIPT_GURMUKHI, true, 0x0A4D,BASE_POS_LAST, REPH_POS_BEFORE_SUB, REPH_MODE_IMPLICIT, BLWF_MODE_PRE_AND_POST, PREF_LEN_DONT_CARE},
- {HB_SCRIPT_GUJARATI, true, 0x0ACD,BASE_POS_LAST, REPH_POS_BEFORE_POST,REPH_MODE_IMPLICIT, BLWF_MODE_PRE_AND_POST, PREF_LEN_DONT_CARE},
- {HB_SCRIPT_ORIYA, true, 0x0B4D,BASE_POS_LAST, REPH_POS_AFTER_MAIN, REPH_MODE_IMPLICIT, BLWF_MODE_PRE_AND_POST, PREF_LEN_DONT_CARE},
- {HB_SCRIPT_TAMIL, true, 0x0BCD,BASE_POS_LAST, REPH_POS_AFTER_POST, REPH_MODE_IMPLICIT, BLWF_MODE_PRE_AND_POST, PREF_LEN_2},
- {HB_SCRIPT_TELUGU, true, 0x0C4D,BASE_POS_LAST, REPH_POS_AFTER_POST, REPH_MODE_EXPLICIT, BLWF_MODE_POST_ONLY, PREF_LEN_2},
- {HB_SCRIPT_KANNADA, true, 0x0CCD,BASE_POS_LAST, REPH_POS_AFTER_POST, REPH_MODE_IMPLICIT, BLWF_MODE_POST_ONLY, PREF_LEN_2},
- {HB_SCRIPT_MALAYALAM, true, 0x0D4D,BASE_POS_LAST, REPH_POS_AFTER_MAIN, REPH_MODE_LOG_REPHA,BLWF_MODE_PRE_AND_POST, PREF_LEN_2},
- {HB_SCRIPT_SINHALA, false,0x0DCA,BASE_POS_LAST_SINHALA,
- REPH_POS_AFTER_MAIN, REPH_MODE_EXPLICIT, BLWF_MODE_PRE_AND_POST, PREF_LEN_DONT_CARE},
- {HB_SCRIPT_KHMER, false,0x17D2,BASE_POS_FIRST,REPH_POS_DONT_CARE, REPH_MODE_VIS_REPHA,BLWF_MODE_PRE_AND_POST, PREF_LEN_2},
- {HB_SCRIPT_JAVANESE, false,0xA9C0,BASE_POS_FIRST,REPH_POS_DONT_CARE, REPH_MODE_VIS_REPHA,BLWF_MODE_PRE_AND_POST, PREF_LEN_1},
+ {HB_SCRIPT_INVALID, false, 0,BASE_POS_LAST, REPH_POS_BEFORE_POST,REPH_MODE_IMPLICIT, BLWF_MODE_PRE_AND_POST, PREF_LEN_1},
+ {HB_SCRIPT_DEVANAGARI,true, 0x094Du,BASE_POS_LAST, REPH_POS_BEFORE_POST,REPH_MODE_IMPLICIT, BLWF_MODE_PRE_AND_POST, PREF_LEN_DONT_CARE},
+ {HB_SCRIPT_BENGALI, true, 0x09CDu,BASE_POS_LAST, REPH_POS_AFTER_SUB, REPH_MODE_IMPLICIT, BLWF_MODE_PRE_AND_POST, PREF_LEN_DONT_CARE},
+ {HB_SCRIPT_GURMUKHI, true, 0x0A4Du,BASE_POS_LAST, REPH_POS_BEFORE_SUB, REPH_MODE_IMPLICIT, BLWF_MODE_PRE_AND_POST, PREF_LEN_DONT_CARE},
+ {HB_SCRIPT_GUJARATI, true, 0x0ACDu,BASE_POS_LAST, REPH_POS_BEFORE_POST,REPH_MODE_IMPLICIT, BLWF_MODE_PRE_AND_POST, PREF_LEN_DONT_CARE},
+ {HB_SCRIPT_ORIYA, true, 0x0B4Du,BASE_POS_LAST, REPH_POS_AFTER_MAIN, REPH_MODE_IMPLICIT, BLWF_MODE_PRE_AND_POST, PREF_LEN_DONT_CARE},
+ {HB_SCRIPT_TAMIL, true, 0x0BCDu,BASE_POS_LAST, REPH_POS_AFTER_POST, REPH_MODE_IMPLICIT, BLWF_MODE_PRE_AND_POST, PREF_LEN_2},
+ {HB_SCRIPT_TELUGU, true, 0x0C4Du,BASE_POS_LAST, REPH_POS_AFTER_POST, REPH_MODE_EXPLICIT, BLWF_MODE_POST_ONLY, PREF_LEN_2},
+ {HB_SCRIPT_KANNADA, true, 0x0CCDu,BASE_POS_LAST, REPH_POS_AFTER_POST, REPH_MODE_IMPLICIT, BLWF_MODE_POST_ONLY, PREF_LEN_2},
+ {HB_SCRIPT_MALAYALAM, true, 0x0D4Du,BASE_POS_LAST, REPH_POS_AFTER_MAIN, REPH_MODE_LOG_REPHA,BLWF_MODE_PRE_AND_POST, PREF_LEN_2},
+ {HB_SCRIPT_SINHALA, false,0x0DCAu,BASE_POS_LAST_SINHALA,
+ REPH_POS_AFTER_MAIN, REPH_MODE_EXPLICIT, BLWF_MODE_PRE_AND_POST, PREF_LEN_DONT_CARE},
+ {HB_SCRIPT_KHMER, false,0x17D2u,BASE_POS_FIRST,REPH_POS_DONT_CARE, REPH_MODE_VIS_REPHA,BLWF_MODE_PRE_AND_POST, PREF_LEN_2},
+ {HB_SCRIPT_JAVANESE, false,0xA9C0u,BASE_POS_FIRST,REPH_POS_DONT_CARE, REPH_MODE_VIS_REPHA,BLWF_MODE_PRE_AND_POST, PREF_LEN_1},
};
@@ -553,7 +553,7 @@ data_create_indic (const hb_ot_shape_plan_t *plan)
break;
}
- indic_plan->is_old_spec = indic_plan->config->has_old_spec && ((plan->map.chosen_script[0] & 0x000000FF) != '2');
+ indic_plan->is_old_spec = indic_plan->config->has_old_spec && ((plan->map.chosen_script[0] & 0x000000FFu) != '2');
indic_plan->virama_glyph = (hb_codepoint_t) -1;
/* Use zero-context would_substitute() matching for new-spec of the main
@@ -1238,11 +1238,11 @@ insert_dotted_circles (const hb_ot_shape_plan_t *plan HB_UNUSED,
hb_codepoint_t dottedcircle_glyph;
- if (!font->get_glyph (0x25CC, 0, &dottedcircle_glyph))
+ if (!font->get_glyph (0x25CCu, 0, &dottedcircle_glyph))
return;
hb_glyph_info_t dottedcircle = {0};
- dottedcircle.codepoint = 0x25CC;
+ dottedcircle.codepoint = 0x25CCu;
set_indic_properties (dottedcircle);
dottedcircle.codepoint = dottedcircle_glyph;
@@ -1372,9 +1372,10 @@ final_reordering_syllable (const hb_ot_shape_plan_t *plan,
if (base == end && start < base &&
is_one_of (info[base - 1], FLAG (OT_ZWJ)))
base--;
- while (start < base &&
- is_one_of (info[base], (FLAG (OT_N) | HALANT_OR_COENG_FLAGS)))
- base--;
+ if (base < end)
+ while (start < base &&
+ is_one_of (info[base], (FLAG (OT_N) | HALANT_OR_COENG_FLAGS)))
+ base--;
/* o Reorder matras:
@@ -1749,37 +1750,37 @@ decompose_indic (const hb_ot_shape_normalize_context_t *c,
switch (ab)
{
/* Don't decompose these. */
- case 0x0931 : return false;
- case 0x0B94 : return false;
+ case 0x0931u : return false;
+ case 0x0B94u : return false;
/*
* Decompose split matras that don't have Unicode decompositions.
*/
- case 0x0F77 : *a = 0x0FB2; *b= 0x0F81; return true;
- case 0x0F79 : *a = 0x0FB3; *b= 0x0F81; return true;
- case 0x17BE : *a = 0x17C1; *b= 0x17BE; return true;
- case 0x17BF : *a = 0x17C1; *b= 0x17BF; return true;
- case 0x17C0 : *a = 0x17C1; *b= 0x17C0; return true;
- case 0x17C4 : *a = 0x17C1; *b= 0x17C4; return true;
- case 0x17C5 : *a = 0x17C1; *b= 0x17C5; return true;
- case 0x1925 : *a = 0x1920; *b= 0x1923; return true;
- case 0x1926 : *a = 0x1920; *b= 0x1924; return true;
- case 0x1B3C : *a = 0x1B42; *b= 0x1B3C; return true;
- case 0x1112E : *a = 0x11127; *b= 0x11131; return true;
- case 0x1112F : *a = 0x11127; *b= 0x11132; return true;
+ case 0x0F77u : *a = 0x0FB2u; *b= 0x0F81u; return true;
+ case 0x0F79u : *a = 0x0FB3u; *b= 0x0F81u; return true;
+ case 0x17BEu : *a = 0x17C1u; *b= 0x17BEu; return true;
+ case 0x17BFu : *a = 0x17C1u; *b= 0x17BFu; return true;
+ case 0x17C0u : *a = 0x17C1u; *b= 0x17C0u; return true;
+ case 0x17C4u : *a = 0x17C1u; *b= 0x17C4u; return true;
+ case 0x17C5u : *a = 0x17C1u; *b= 0x17C5u; return true;
+ case 0x1925u : *a = 0x1920u; *b= 0x1923u; return true;
+ case 0x1926u : *a = 0x1920u; *b= 0x1924u; return true;
+ case 0x1B3Cu : *a = 0x1B42u; *b= 0x1B3Cu; return true;
+ case 0x1112Eu : *a = 0x11127u; *b= 0x11131u; return true;
+ case 0x1112Fu : *a = 0x11127u; *b= 0x11132u; return true;
#if 0
/* This one has no decomposition in Unicode, but needs no decomposition either. */
- /* case 0x0AC9 : return false; */
- case 0x0B57 : *a = no decomp, -> RIGHT; return true;
- case 0x1C29 : *a = no decomp, -> LEFT; return true;
- case 0xA9C0 : *a = no decomp, -> RIGHT; return true;
- case 0x111BF : *a = no decomp, -> ABOVE; return true;
+ /* case 0x0AC9u : return false; */
+ case 0x0B57u : *a = no decomp, -> RIGHT; return true;
+ case 0x1C29u : *a = no decomp, -> LEFT; return true;
+ case 0xA9C0u : *a = no decomp, -> RIGHT; return true;
+ case 0x111BuF : *a = no decomp, -> ABOVE; return true;
#endif
}
- if ((ab == 0x0DDA || hb_in_range<hb_codepoint_t> (ab, 0x0DDC, 0x0DDE)))
+ if ((ab == 0x0DDAu || hb_in_range (ab, 0x0DDCu, 0x0DDEu)))
{
/*
* Sinhala split matras... Let the fun begin.
@@ -1816,7 +1817,7 @@ decompose_indic (const hb_ot_shape_normalize_context_t *c,
indic_plan->pstf.would_substitute (&glyph, 1, c->font->face)))
{
/* Ok, safe to use Uniscribe-style decomposition. */
- *a = 0x0DD9;
+ *a = 0x0DD9u;
*b = ab;
return true;
}
@@ -1836,7 +1837,7 @@ compose_indic (const hb_ot_shape_normalize_context_t *c,
return false;
/* Composition-exclusion exceptions that we want to recompose. */
- if (a == 0x09AF && b == 0x09BC) { *ab = 0x09DF; return true; }
+ if (a == 0x09AFu && b == 0x09BCu) { *ab = 0x09DFu; return true; }
return c->unicode->compose (a, b, ab);
}
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-ot-shape-complex-myanmar-machine.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-ot-shape-complex-myanmar-machine.hh
index bb80d7a705d..bb80d7a705d 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-ot-shape-complex-myanmar-machine.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-ot-shape-complex-myanmar-machine.hh
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-ot-shape-complex-myanmar-machine.rl b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-ot-shape-complex-myanmar-machine.rl
index 9649a916f02..9649a916f02 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-ot-shape-complex-myanmar-machine.rl
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-ot-shape-complex-myanmar-machine.rl
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-ot-shape-complex-myanmar.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-ot-shape-complex-myanmar.cc
index ae5446a6404..8b2c00ccd2b 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-ot-shape-complex-myanmar.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-ot-shape-complex-myanmar.cc
@@ -169,80 +169,80 @@ set_myanmar_properties (hb_glyph_info_t &info)
{
hb_codepoint_t u = info.codepoint;
unsigned int type = hb_indic_get_categories (u);
- indic_category_t cat = (indic_category_t) (type & 0x7F);
+ indic_category_t cat = (indic_category_t) (type & 0x7Fu);
indic_position_t pos = (indic_position_t) (type >> 8);
/* Myanmar
* http://www.microsoft.com/typography/OpenTypeDev/myanmar/intro.htm#analyze
*/
- if (unlikely (hb_in_range<hb_codepoint_t> (u, 0xFE00, 0xFE0F)))
+ if (unlikely (hb_in_range (u, 0xFE00u, 0xFE0Fu)))
cat = (indic_category_t) OT_VS;
switch (u)
{
- case 0x104E:
+ case 0x104Eu:
cat = (indic_category_t) OT_C; /* The spec says C, IndicSyllableCategory doesn't have. */
break;
- case 0x002D: case 0x00A0: case 0x00D7: case 0x2012:
- case 0x2013: case 0x2014: case 0x2015: case 0x2022:
- case 0x25CC: case 0x25FB: case 0x25FC: case 0x25FD:
- case 0x25FE:
+ case 0x002Du: case 0x00A0u: case 0x00D7u: case 0x2012u:
+ case 0x2013u: case 0x2014u: case 0x2015u: case 0x2022u:
+ case 0x25CCu: case 0x25FBu: case 0x25FCu: case 0x25FDu:
+ case 0x25FEu:
cat = (indic_category_t) OT_GB;
break;
- case 0x1004: case 0x101B: case 0x105A:
+ case 0x1004u: case 0x101Bu: case 0x105Au:
cat = (indic_category_t) OT_Ra;
break;
- case 0x1032: case 0x1036:
+ case 0x1032u: case 0x1036u:
cat = (indic_category_t) OT_A;
break;
- case 0x103A:
+ case 0x103Au:
cat = (indic_category_t) OT_As;
break;
- case 0x1041: case 0x1042: case 0x1043: case 0x1044:
- case 0x1045: case 0x1046: case 0x1047: case 0x1048:
- case 0x1049: case 0x1090: case 0x1091: case 0x1092:
- case 0x1093: case 0x1094: case 0x1095: case 0x1096:
- case 0x1097: case 0x1098: case 0x1099:
+ case 0x1041u: case 0x1042u: case 0x1043u: case 0x1044u:
+ case 0x1045u: case 0x1046u: case 0x1047u: case 0x1048u:
+ case 0x1049u: case 0x1090u: case 0x1091u: case 0x1092u:
+ case 0x1093u: case 0x1094u: case 0x1095u: case 0x1096u:
+ case 0x1097u: case 0x1098u: case 0x1099u:
cat = (indic_category_t) OT_D;
break;
- case 0x1040:
+ case 0x1040u:
cat = (indic_category_t) OT_D; /* XXX The spec says D0, but Uniscribe doesn't seem to do. */
break;
- case 0x103E: case 0x1060:
+ case 0x103Eu: case 0x1060u:
cat = (indic_category_t) OT_MH;
break;
- case 0x103C:
+ case 0x103Cu:
cat = (indic_category_t) OT_MR;
break;
- case 0x103D: case 0x1082:
+ case 0x103Du: case 0x1082u:
cat = (indic_category_t) OT_MW;
break;
- case 0x103B: case 0x105E: case 0x105F:
+ case 0x103Bu: case 0x105Eu: case 0x105Fu:
cat = (indic_category_t) OT_MY;
break;
- case 0x1063: case 0x1064: case 0x1069: case 0x106A:
- case 0x106B: case 0x106C: case 0x106D: case 0xAA7B:
+ case 0x1063u: case 0x1064u: case 0x1069u: case 0x106Au:
+ case 0x106Bu: case 0x106Cu: case 0x106Du: case 0xAA7Bu:
cat = (indic_category_t) OT_PT;
break;
- case 0x1038: case 0x1087: case 0x1088: case 0x1089:
- case 0x108A: case 0x108B: case 0x108C: case 0x108D:
- case 0x108F: case 0x109A: case 0x109B: case 0x109C:
+ case 0x1038u: case 0x1087u: case 0x1088u: case 0x1089u:
+ case 0x108Au: case 0x108Bu: case 0x108Cu: case 0x108Du:
+ case 0x108Fu: case 0x109Au: case 0x109Bu: case 0x109Cu:
cat = (indic_category_t) OT_SM;
break;
- case 0x104A: case 0x104B:
+ case 0x104Au: case 0x104Bu:
cat = (indic_category_t) OT_P;
break;
}
@@ -461,11 +461,11 @@ insert_dotted_circles (const hb_ot_shape_plan_t *plan HB_UNUSED,
hb_codepoint_t dottedcircle_glyph;
- if (!font->get_glyph (0x25CC, 0, &dottedcircle_glyph))
+ if (!font->get_glyph (0x25CCu, 0, &dottedcircle_glyph))
return;
hb_glyph_info_t dottedcircle = {0};
- dottedcircle.codepoint = 0x25CC;
+ dottedcircle.codepoint = 0x25CCu;
set_myanmar_properties (dottedcircle);
dottedcircle.codepoint = dottedcircle_glyph;
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-ot-shape-complex-private.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-ot-shape-complex-private.hh
index 3e581afa9cc..3e581afa9cc 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-ot-shape-complex-private.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-ot-shape-complex-private.hh
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-ot-shape-complex-sea-machine.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-ot-shape-complex-sea-machine.hh
index 86b7ae7d5ca..86b7ae7d5ca 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-ot-shape-complex-sea-machine.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-ot-shape-complex-sea-machine.hh
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-ot-shape-complex-sea-machine.rl b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-ot-shape-complex-sea-machine.rl
index 46140fc4d5f..46140fc4d5f 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-ot-shape-complex-sea-machine.rl
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-ot-shape-complex-sea-machine.rl
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-ot-shape-complex-sea.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-ot-shape-complex-sea.cc
index 6288a90c9a9..a4adb8ff1b0 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-ot-shape-complex-sea.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-ot-shape-complex-sea.cc
@@ -139,11 +139,11 @@ set_sea_properties (hb_glyph_info_t &info)
{
hb_codepoint_t u = info.codepoint;
unsigned int type = hb_indic_get_categories (u);
- indic_category_t cat = (indic_category_t) (type & 0x7F);
+ indic_category_t cat = (indic_category_t) (type & 0x7Fu);
indic_position_t pos = (indic_position_t) (type >> 8);
/* Medial Ra */
- if (u == 0x1A55 || u == 0xAA34)
+ if (u == 0x1A55u || u == 0xAA34u)
cat = (indic_category_t) OT_MR;
if (cat == OT_M)
@@ -288,11 +288,11 @@ insert_dotted_circles (const hb_ot_shape_plan_t *plan HB_UNUSED,
hb_codepoint_t dottedcircle_glyph;
- if (!font->get_glyph (0x25CC, 0, &dottedcircle_glyph))
+ if (!font->get_glyph (0x25CCu, 0, &dottedcircle_glyph))
return;
hb_glyph_info_t dottedcircle = {0};
- dottedcircle.codepoint = 0x25CC;
+ dottedcircle.codepoint = 0x25CCu;
set_sea_properties (dottedcircle);
dottedcircle.codepoint = dottedcircle_glyph;
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-ot-shape-complex-thai.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-ot-shape-complex-thai.cc
index cb9a7d93b2a..feb7fc7a148 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-ot-shape-complex-thai.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-ot-shape-complex-thai.cc
@@ -46,13 +46,13 @@ enum thai_consonant_type_t
static thai_consonant_type_t
get_consonant_type (hb_codepoint_t u)
{
- if (u == 0x0E1B || u == 0x0E1D || u == 0x0E1F/* || u == 0x0E2C*/)
+ if (u == 0x0E1Bu || u == 0x0E1Du || u == 0x0E1Fu/* || u == 0x0E2Cu*/)
return AC;
- if (u == 0x0E0D || u == 0x0E10)
+ if (u == 0x0E0Du || u == 0x0E10u)
return RC;
- if (u == 0x0E0E || u == 0x0E0F)
+ if (u == 0x0E0Eu || u == 0x0E0Fu)
return DC;
- if (hb_in_range<hb_codepoint_t> (u, 0x0E01, 0x0E2E))
+ if (hb_in_range (u, 0x0E01u, 0x0E2Eu))
return NC;
return NOT_CONSONANT;
}
@@ -70,12 +70,12 @@ enum thai_mark_type_t
static thai_mark_type_t
get_mark_type (hb_codepoint_t u)
{
- if (u == 0x0E31 || hb_in_range<hb_codepoint_t> (u, 0x0E34, 0x0E37) ||
- u == 0x0E47 || hb_in_range<hb_codepoint_t> (u, 0x0E4D, 0x0E4E))
+ if (u == 0x0E31u || hb_in_range (u, 0x0E34u, 0x0E37u) ||
+ u == 0x0E47u || hb_in_range (u, 0x0E4Du, 0x0E4Eu))
return AV;
- if (hb_in_range<hb_codepoint_t> (u, 0x0E38, 0x0E3A))
+ if (hb_in_range (u, 0x0E38u, 0x0E3Au))
return BV;
- if (hb_in_range<hb_codepoint_t> (u, 0x0E48, 0x0E4C))
+ if (hb_in_range (u, 0x0E48u, 0x0E4Cu))
return T;
return NOT_MARK;
}
@@ -99,43 +99,43 @@ thai_pua_shape (hb_codepoint_t u, thai_action_t action, hb_font_t *font)
hb_codepoint_t mac_pua;
} const *pua_mappings = NULL;
static const thai_pua_mapping_t SD_mappings[] = {
- {0x0E48, 0xF70A, 0xF88B}, /* MAI EK */
- {0x0E49, 0xF70B, 0xF88E}, /* MAI THO */
- {0x0E4A, 0xF70C, 0xF891}, /* MAI TRI */
- {0x0E4B, 0xF70D, 0xF894}, /* MAI CHATTAWA */
- {0x0E4C, 0xF70E, 0xF897}, /* THANTHAKHAT */
- {0x0E38, 0xF718, 0xF89B}, /* SARA U */
- {0x0E39, 0xF719, 0xF89C}, /* SARA UU */
- {0x0E3A, 0xF71A, 0xF89D}, /* PHINTHU */
- {0x0000, 0x0000, 0x0000}
+ {0x0E48u, 0xF70Au, 0xF88Bu}, /* MAI EK */
+ {0x0E49u, 0xF70Bu, 0xF88Eu}, /* MAI THO */
+ {0x0E4Au, 0xF70Cu, 0xF891u}, /* MAI TRI */
+ {0x0E4Bu, 0xF70Du, 0xF894u}, /* MAI CHATTAWA */
+ {0x0E4Cu, 0xF70Eu, 0xF897u}, /* THANTHAKHAT */
+ {0x0E38u, 0xF718u, 0xF89Bu}, /* SARA U */
+ {0x0E39u, 0xF719u, 0xF89Cu}, /* SARA UU */
+ {0x0E3Au, 0xF71Au, 0xF89Du}, /* PHINTHU */
+ {0x0000u, 0x0000u, 0x0000u}
};
static const thai_pua_mapping_t SDL_mappings[] = {
- {0x0E48, 0xF705, 0xF88C}, /* MAI EK */
- {0x0E49, 0xF706, 0xF88F}, /* MAI THO */
- {0x0E4A, 0xF707, 0xF892}, /* MAI TRI */
- {0x0E4B, 0xF708, 0xF895}, /* MAI CHATTAWA */
- {0x0E4C, 0xF709, 0xF898}, /* THANTHAKHAT */
- {0x0000, 0x0000, 0x0000}
+ {0x0E48u, 0xF705u, 0xF88Cu}, /* MAI EK */
+ {0x0E49u, 0xF706u, 0xF88Fu}, /* MAI THO */
+ {0x0E4Au, 0xF707u, 0xF892u}, /* MAI TRI */
+ {0x0E4Bu, 0xF708u, 0xF895u}, /* MAI CHATTAWA */
+ {0x0E4Cu, 0xF709u, 0xF898u}, /* THANTHAKHAT */
+ {0x0000u, 0x0000u, 0x0000u}
};
static const thai_pua_mapping_t SL_mappings[] = {
- {0x0E48, 0xF713, 0xF88A}, /* MAI EK */
- {0x0E49, 0xF714, 0xF88D}, /* MAI THO */
- {0x0E4A, 0xF715, 0xF890}, /* MAI TRI */
- {0x0E4B, 0xF716, 0xF893}, /* MAI CHATTAWA */
- {0x0E4C, 0xF717, 0xF896}, /* THANTHAKHAT */
- {0x0E31, 0xF710, 0xF884}, /* MAI HAN-AKAT */
- {0x0E34, 0xF701, 0xF885}, /* SARA I */
- {0x0E35, 0xF702, 0xF886}, /* SARA II */
- {0x0E36, 0xF703, 0xF887}, /* SARA UE */
- {0x0E37, 0xF704, 0xF888}, /* SARA UEE */
- {0x0E47, 0xF712, 0xF889}, /* MAITAIKHU */
- {0x0E4D, 0xF711, 0xF899}, /* NIKHAHIT */
- {0x0000, 0x0000, 0x0000}
+ {0x0E48u, 0xF713u, 0xF88Au}, /* MAI EK */
+ {0x0E49u, 0xF714u, 0xF88Du}, /* MAI THO */
+ {0x0E4Au, 0xF715u, 0xF890u}, /* MAI TRI */
+ {0x0E4Bu, 0xF716u, 0xF893u}, /* MAI CHATTAWA */
+ {0x0E4Cu, 0xF717u, 0xF896u}, /* THANTHAKHAT */
+ {0x0E31u, 0xF710u, 0xF884u}, /* MAI HAN-AKAT */
+ {0x0E34u, 0xF701u, 0xF885u}, /* SARA I */
+ {0x0E35u, 0xF702u, 0xF886u}, /* SARA II */
+ {0x0E36u, 0xF703u, 0xF887u}, /* SARA UE */
+ {0x0E37u, 0xF704u, 0xF888u}, /* SARA UEE */
+ {0x0E47u, 0xF712u, 0xF889u}, /* MAITAIKHU */
+ {0x0E4Du, 0xF711u, 0xF899u}, /* NIKHAHIT */
+ {0x0000u, 0x0000u, 0x0000u}
};
static const thai_pua_mapping_t RD_mappings[] = {
- {0x0E0D, 0xF70F, 0xF89A}, /* YO YING */
- {0x0E10, 0xF700, 0xF89E}, /* THO THAN */
- {0x0000, 0x0000, 0x0000}
+ {0x0E0Du, 0xF70Fu, 0xF89Au}, /* YO YING */
+ {0x0E10u, 0xF700u, 0xF89Eu}, /* THO THAN */
+ {0x0000u, 0x0000u, 0x0000u}
};
switch (action) {
@@ -308,10 +308,10 @@ preprocess_text_thai (const hb_ot_shape_plan_t *plan,
/* We only get one script at a time, so a script-agnostic implementation
* is adequate here. */
-#define IS_SARA_AM(x) (((x) & ~0x0080) == 0x0E33)
-#define NIKHAHIT_FROM_SARA_AM(x) ((x) - 0xE33 + 0xE4D)
+#define IS_SARA_AM(x) (((x) & ~0x0080u) == 0x0E33u)
+#define NIKHAHIT_FROM_SARA_AM(x) ((x) - 0x0E33u + 0x0E4Du)
#define SARA_AA_FROM_SARA_AM(x) ((x) - 1)
-#define IS_TONE_MARK(x) (hb_in_ranges<hb_codepoint_t> ((x) & ~0x0080, 0x0E34, 0x0E37, 0x0E47, 0x0E4E, 0x0E31, 0x0E31))
+#define IS_TONE_MARK(x) (hb_in_ranges ((x) & ~0x0080u, 0x0E34u, 0x0E37u, 0x0E47u, 0x0E4Eu, 0x0E31u, 0x0E31u))
buffer->clear_output ();
unsigned int count = buffer->len;
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-ot-shape-complex-tibetan.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-ot-shape-complex-tibetan.cc
index 01465a426f8..01465a426f8 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-ot-shape-complex-tibetan.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-ot-shape-complex-tibetan.cc
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-ot-shape-fallback-private.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-ot-shape-fallback-private.hh
index ec653513f1b..ec653513f1b 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-ot-shape-fallback-private.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-ot-shape-fallback-private.hh
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-ot-shape-fallback.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-ot-shape-fallback.cc
index 5d526c3a8e8..89eab28b509 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-ot-shape-fallback.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-ot-shape-fallback.cc
@@ -35,42 +35,42 @@ recategorize_combining_class (hb_codepoint_t u,
return klass;
/* Thai / Lao need some per-character work. */
- if ((u & ~0xFF) == 0x0E00)
+ if ((u & ~0xFF) == 0x0E00u)
{
if (unlikely (klass == 0))
{
switch (u)
{
- case 0x0E31:
- case 0x0E34:
- case 0x0E35:
- case 0x0E36:
- case 0x0E37:
- case 0x0E47:
- case 0x0E4C:
- case 0x0E4D:
- case 0x0E4E:
+ case 0x0E31u:
+ case 0x0E34u:
+ case 0x0E35u:
+ case 0x0E36u:
+ case 0x0E37u:
+ case 0x0E47u:
+ case 0x0E4Cu:
+ case 0x0E4Du:
+ case 0x0E4Eu:
klass = HB_UNICODE_COMBINING_CLASS_ABOVE_RIGHT;
break;
- case 0x0EB1:
- case 0x0EB4:
- case 0x0EB5:
- case 0x0EB6:
- case 0x0EB7:
- case 0x0EBB:
- case 0x0ECC:
- case 0x0ECD:
+ case 0x0EB1u:
+ case 0x0EB4u:
+ case 0x0EB5u:
+ case 0x0EB6u:
+ case 0x0EB7u:
+ case 0x0EBBu:
+ case 0x0ECCu:
+ case 0x0ECDu:
klass = HB_UNICODE_COMBINING_CLASS_ABOVE;
break;
- case 0x0EBC:
+ case 0x0EBCu:
klass = HB_UNICODE_COMBINING_CLASS_BELOW;
break;
}
} else {
/* Thai virama is below-right */
- if (u == 0x0E3A)
+ if (u == 0x0E3Au)
klass = HB_UNICODE_COMBINING_CLASS_BELOW_RIGHT;
}
}
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-ot-shape-normalize-private.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-ot-shape-normalize-private.hh
index c744e26451d..c744e26451d 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-ot-shape-normalize-private.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-ot-shape-normalize-private.hh
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-ot-shape-normalize.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-ot-shape-normalize.cc
index 2a6a4390030..7a9f24c7266 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-ot-shape-normalize.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-ot-shape-normalize.cc
@@ -209,7 +209,14 @@ decompose_current_character (const hb_ot_shape_normalize_context_t *c, bool shor
else if (decompose_compatibility (c, buffer->cur().codepoint))
skip_char (buffer);
else
+ {
+ /* Not found, not decomposible; If codepoint is invalid Unicode and
+ * font supports U+FFFD REPLACEMENT CHARACTER, use that instead. */
+ hb_codepoint_t FFFD_glyph;
+ if (buffer->cur().codepoint > 0x10FFFFu && c->font->get_glyph (0xFFFDu, 0, &FFFD_glyph))
+ glyph = FFFD_glyph;
next_char (buffer, glyph); /* glyph is initialized in earlier branches. */
+ }
}
static inline void
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-ot-shape-private.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-ot-shape-private.hh
index 54ac2c3cf7c..54ac2c3cf7c 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-ot-shape-private.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-ot-shape-private.hh
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-ot-shape.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-ot-shape.cc
index 42f68ab2907..736eefd124b 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-ot-shape.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-ot-shape.cc
@@ -37,6 +37,7 @@
#include "hb-ot-shape-normalize-private.hh"
#include "hb-ot-layout-private.hh"
+#include "hb-unicode-private.hh"
#include "hb-set-private.hh"
@@ -238,11 +239,11 @@ hb_insert_dotted_circle (hb_buffer_t *buffer, hb_font_t *font)
HB_UNICODE_GENERAL_CATEGORY_NON_SPACING_MARK)
return;
- if (!font->has_glyph (0x25CC))
+ if (!font->has_glyph (0x25CCu))
return;
hb_glyph_info_t dottedcircle;
- dottedcircle.codepoint = 0x25CC;
+ dottedcircle.codepoint = 0x25CCu;
_hb_glyph_info_set_unicode_props (&dottedcircle, buffer->unicode);
buffer->clear_output ();
@@ -321,7 +322,7 @@ hb_ot_shape_setup_masks_fraction (hb_ot_shape_context_t *c)
hb_glyph_info_t *info = buffer->info;
for (unsigned int i = 0; i < count; i++)
{
- if (info[i].codepoint == 0x2044) /* FRACTION SLASH */
+ if (info[i].codepoint == 0x2044u) /* FRACTION SLASH */
{
unsigned int start = i, end = i + 1;
while (start &&
@@ -391,11 +392,24 @@ hb_synthesize_glyph_classes (hb_ot_shape_context_t *c)
unsigned int count = c->buffer->len;
hb_glyph_info_t *info = c->buffer->info;
for (unsigned int i = 0; i < count; i++)
- _hb_glyph_info_set_glyph_props (&info[i],
- _hb_glyph_info_get_general_category (&info[i])
- == HB_UNICODE_GENERAL_CATEGORY_NON_SPACING_MARK ?
- HB_OT_LAYOUT_GLYPH_PROPS_MARK :
- HB_OT_LAYOUT_GLYPH_PROPS_BASE_GLYPH);
+ {
+ hb_ot_layout_glyph_class_mask_t klass;
+
+ /* Never mark default-ignorables as marks.
+ * They won't get in the way of lookups anyway,
+ * but having them as mark will cause them to be skipped
+ * over if the lookup-flag says so, but at least for the
+ * Mongolian variation selectors, looks like Uniscribe
+ * marks them as non-mark. Some Mongolian fonts without
+ * GDEF rely on this. Another notable character that
+ * this applies to is COMBINING GRAPHEME JOINER. */
+ klass = (_hb_glyph_info_get_general_category (&info[i]) !=
+ HB_UNICODE_GENERAL_CATEGORY_NON_SPACING_MARK ||
+ _hb_glyph_info_is_default_ignorable (&info[i])) ?
+ HB_OT_LAYOUT_GLYPH_PROPS_BASE_GLYPH :
+ HB_OT_LAYOUT_GLYPH_PROPS_MARK;
+ _hb_glyph_info_set_glyph_props (&info[i], klass);
+ }
}
static inline void
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-ot-shape.h b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-ot-shape.h
index 1402f54acc5..1402f54acc5 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-ot-shape.h
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-ot-shape.h
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-ot-tag.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-ot-tag.cc
index 5594ef5074a..878dd79b62c 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-ot-tag.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-ot-tag.cc
@@ -57,7 +57,7 @@ hb_ot_old_tag_from_script (hb_script_t script)
}
/* Else, just change first char to lowercase and return */
- return ((hb_tag_t) script) | 0x20000000;
+ return ((hb_tag_t) script) | 0x20000000u;
}
static hb_script_t
@@ -70,13 +70,13 @@ hb_ot_old_tag_to_script (hb_tag_t tag)
/* Any spaces at the end of the tag are replaced by repeating the last
* letter. Eg 'nko ' -> 'Nkoo' */
- if (unlikely ((tag & 0x0000FF00) == 0x00002000))
- tag |= (tag >> 8) & 0x0000FF00; /* Copy second letter to third */
- if (unlikely ((tag & 0x000000FF) == 0x00000020))
- tag |= (tag >> 8) & 0x000000FF; /* Copy third letter to fourth */
+ if (unlikely ((tag & 0x0000FF00u) == 0x00002000u))
+ tag |= (tag >> 8) & 0x0000FF00u; /* Copy second letter to third */
+ if (unlikely ((tag & 0x000000FFu) == 0x00000020u))
+ tag |= (tag >> 8) & 0x000000FFu; /* Copy third letter to fourth */
/* Change first char to uppercase and return */
- return (hb_script_t) (tag & ~0x20000000);
+ return (hb_script_t) (tag & ~0x20000000u);
}
static hb_tag_t
@@ -146,7 +146,7 @@ hb_ot_tags_from_script (hb_script_t script,
hb_script_t
hb_ot_tag_to_script (hb_tag_t tag)
{
- if (unlikely ((tag & 0x000000FF) == '2'))
+ if (unlikely ((tag & 0x000000FFu) == '2'))
return hb_ot_new_tag_to_script (tag);
return hb_ot_old_tag_to_script (tag);
@@ -156,7 +156,7 @@ hb_ot_tag_to_script (hb_tag_t tag)
/* hb_language_t */
typedef struct {
- char language[6];
+ char language[4];
hb_tag_t tag;
} LangTag;
@@ -763,12 +763,18 @@ static const LangTag ot_languages[] = {
/*{"??", HB_TAG('Z','H','P',' ')},*/ /* Chinese Phonetic */
};
-static const LangTag ot_languages_zh[] = {
+typedef struct {
+ char language[8];
+ hb_tag_t tag;
+} LangTagLong;
+static const LangTagLong ot_languages_zh[] = {
{"zh-cn", HB_TAG('Z','H','S',' ')}, /* Chinese (China) */
{"zh-hk", HB_TAG('Z','H','H',' ')}, /* Chinese (Hong Kong) */
{"zh-mo", HB_TAG('Z','H','T',' ')}, /* Chinese (Macao) */
{"zh-sg", HB_TAG('Z','H','S',' ')}, /* Chinese (Singapore) */
- {"zh-tw", HB_TAG('Z','H','T',' ')} /* Chinese (Taiwan) */
+ {"zh-tw", HB_TAG('Z','H','T',' ')}, /* Chinese (Taiwan) */
+ {"zh-hans", HB_TAG('Z','H','S',' ')}, /* Chinese (Simplified) */
+ {"zh-hant", HB_TAG('Z','H','T',' ')}, /* Chinese (Traditional) */
};
static int
@@ -800,7 +806,6 @@ hb_tag_t
hb_ot_tag_from_language (hb_language_t language)
{
const char *lang_str, *s;
- const LangTag *lang_tag;
if (language == HB_LANGUAGE_INVALID)
return HB_OT_TAG_DEFAULT_LANGUAGE;
@@ -822,11 +827,14 @@ hb_ot_tag_from_language (hb_language_t language)
}
/* Find a language matching in the first component */
- lang_tag = (LangTag *) bsearch (lang_str, ot_languages,
- ARRAY_LENGTH (ot_languages), sizeof (LangTag),
- (hb_compare_func_t) lang_compare_first_component);
- if (lang_tag)
- return lang_tag->tag;
+ {
+ const LangTag *lang_tag;
+ lang_tag = (LangTag *) bsearch (lang_str, ot_languages,
+ ARRAY_LENGTH (ot_languages), sizeof (LangTag),
+ (hb_compare_func_t) lang_compare_first_component);
+ if (lang_tag)
+ return lang_tag->tag;
+ }
/* Otherwise, check the Chinese ones */
if (0 == lang_compare_first_component (lang_str, "zh"))
@@ -835,8 +843,9 @@ hb_ot_tag_from_language (hb_language_t language)
for (i = 0; i < ARRAY_LENGTH (ot_languages_zh); i++)
{
+ const LangTagLong *lang_tag;
lang_tag = &ot_languages_zh[i];
- if (lang_matches (lang_tag->language, lang_str))
+ if (lang_matches (lang_str, lang_tag->language))
return lang_tag->tag;
}
@@ -849,7 +858,7 @@ hb_ot_tag_from_language (hb_language_t language)
s = lang_str + strlen (lang_str);
if (s - lang_str == 3) {
/* Assume it's ISO-639-3 and upper-case and use it. */
- return hb_tag_from_string (lang_str, s - lang_str) & ~0x20202000;
+ return hb_tag_from_string (lang_str, s - lang_str) & ~0x20202000u;
}
return HB_OT_TAG_DEFAULT_LANGUAGE;
@@ -868,21 +877,12 @@ hb_ot_tag_to_language (hb_tag_t tag)
return hb_language_from_string (ot_languages[i].language, -1);
/* If tag starts with ZH, it's Chinese */
- if ((tag & 0xFFFF0000) == 0x5A480000) {
+ if ((tag & 0xFFFF0000u) == 0x5A480000u) {
switch (tag) {
case HB_TAG('Z','H','H',' '): return hb_language_from_string ("zh-hk", -1); /* Hong Kong */
- default: {
- /* Encode the tag... */
- unsigned char buf[14] = "zh-x-hbot";
- buf[9] = tag >> 24;
- buf[10] = (tag >> 16) & 0xFF;
- buf[11] = (tag >> 8) & 0xFF;
- buf[12] = tag & 0xFF;
- if (buf[12] == 0x20)
- buf[12] = '\0';
- buf[13] = '\0';
- return hb_language_from_string ((char *) buf, -1);
- }
+ case HB_TAG('Z','H','S',' '): return hb_language_from_string ("zh-Hans", -1); /* Simplified */
+ case HB_TAG('Z','H','T',' '): return hb_language_from_string ("zh-Hant", -1); /* Traditional */
+ default: break; /* Fall through */
}
}
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-ot-tag.h b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-ot-tag.h
index 1bf12ab3c09..1bf12ab3c09 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-ot-tag.h
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-ot-tag.h
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-ot.h b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-ot.h
index 47c92a58e4b..47c92a58e4b 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-ot.h
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-ot.h
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-private.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-private.hh
index ccebd1cac2e..64581caedac 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-private.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-private.hh
@@ -786,20 +786,16 @@ struct hb_auto_trace_t<0, ret_t> {
/* Misc */
+template <typename T> class hb_assert_unsigned_t;
+template <> class hb_assert_unsigned_t<unsigned char> {};
+template <> class hb_assert_unsigned_t<unsigned int> {};
+template <> class hb_assert_unsigned_t<unsigned long> {};
-/* Pre-mature optimization:
- * Checks for lo <= u <= hi but with an optimization if lo and hi
- * are only different in a contiguous set of lower-most bits.
- */
template <typename T> static inline bool
hb_in_range (T u, T lo, T hi)
{
- if ( ((lo^hi) & lo) == 0 &&
- ((lo^hi) & hi) == (lo^hi) &&
- ((lo^hi) & ((lo^hi) + 1)) == 0 )
- return (u & ~(lo^hi)) == lo;
- else
- return lo <= u && u <= hi;
+ hb_assert_unsigned_t<T> error_hb_in_range_called_with_signed_type HB_UNUSED;
+ return (u - lo) <= (hi - lo);
}
template <typename T> static inline bool
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-set-private.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-set-private.hh
index 705f554ce69..705f554ce69 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-set-private.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-set-private.hh
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-set.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-set.cc
index 59a0af46ed4..59a0af46ed4 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-set.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-set.cc
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-set.h b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-set.h
index bafdae96333..bafdae96333 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-set.h
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-set.h
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-shape-plan-private.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-shape-plan-private.hh
index 607da5e7791..607da5e7791 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-shape-plan-private.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-shape-plan-private.hh
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-shape-plan.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-shape-plan.cc
index 5ffc6b1362e..5ffc6b1362e 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-shape-plan.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-shape-plan.cc
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-shape-plan.h b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-shape-plan.h
index 8f54552f90b..8f54552f90b 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-shape-plan.h
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-shape-plan.h
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-shape.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-shape.cc
index c1b752405e1..c1b752405e1 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-shape.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-shape.cc
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-shape.h b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-shape.h
index 10a35cb517e..10a35cb517e 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-shape.h
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-shape.h
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-shaper-impl-private.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-shaper-impl-private.hh
index 7844081e95b..7844081e95b 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-shaper-impl-private.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-shaper-impl-private.hh
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-shaper-list.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-shaper-list.hh
index 6c537d49215..6c537d49215 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-shaper-list.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-shaper-list.hh
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-shaper-private.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-shaper-private.hh
index 29c4493943d..29c4493943d 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-shaper-private.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-shaper-private.hh
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-shaper.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-shaper.cc
index 44f718aa702..44f718aa702 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-shaper.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-shaper.cc
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-ucdn.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-ucdn.cc
index 5b53821f923..5b53821f923 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-ucdn.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-ucdn.cc
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-unicode-private.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-unicode-private.hh
index 583a19702cc..66520151b08 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-unicode-private.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-unicode-private.hh
@@ -102,30 +102,30 @@ HB_UNICODE_FUNCS_IMPLEMENT_CALLBACKS_SIMPLE
}
- unsigned int
+ inline unsigned int
modified_combining_class (hb_codepoint_t unicode)
{
/* XXX This hack belongs to the Myanmar shaper. */
- if (unlikely (unicode == 0x1037)) unicode = 0x103A;
+ if (unlikely (unicode == 0x1037u)) unicode = 0x103Au;
/* XXX This hack belongs to the SEA shaper (for Tai Tham):
* Reorder SAKOT to ensure it comes after any tone marks. */
- if (unlikely (unicode == 0x1A60)) return 254;
+ if (unlikely (unicode == 0x1A60u)) return 254;
/* XXX This hack belongs to the Tibetan shaper:
* Reorder PADMA to ensure it comes after any vowel marks. */
- if (unlikely (unicode == 0x0FC6)) return 254;
+ if (unlikely (unicode == 0x0FC6u)) return 254;
return _hb_modified_combining_class[combining_class (unicode)];
}
- inline hb_bool_t
+ static inline hb_bool_t
is_variation_selector (hb_codepoint_t unicode)
{
- return unlikely (hb_in_ranges<hb_codepoint_t> (unicode,
- 0x180B, 0x180D, /* MONGOLIAN FREE VARIATION SELECTOR ONE..THREE */
- 0xFE00, 0xFE0F, /* VARIATION SELECTOR-1..16 */
- 0xE0100, 0xE01EF)); /* VARIATION SELECTOR-17..256 */
+ return unlikely (hb_in_ranges (unicode,
+ 0x180Bu, 0x180Du, /* MONGOLIAN FREE VARIATION SELECTOR ONE..THREE */
+ 0xFE00u, 0xFE0Fu, /* VARIATION SELECTOR-1..16 */
+ 0xE0100u, 0xE01EFu)); /* VARIATION SELECTOR-17..256 */
}
/* Default_Ignorable codepoints:
@@ -164,7 +164,7 @@ HB_UNICODE_FUNCS_IMPLEMENT_CALLBACKS_SIMPLE
* E0100..E01EF # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256
* E01F0..E0FFF # Cn [3600] <reserved-E01F0>..<reserved-E0FFF>
*/
- inline hb_bool_t
+ static inline hb_bool_t
is_default_ignorable (hb_codepoint_t ch)
{
hb_codepoint_t plane = ch >> 16;
@@ -173,16 +173,16 @@ HB_UNICODE_FUNCS_IMPLEMENT_CALLBACKS_SIMPLE
/* BMP */
hb_codepoint_t page = ch >> 8;
switch (page) {
- case 0x00: return unlikely (ch == 0x00AD);
- case 0x03: return unlikely (ch == 0x034F);
- case 0x06: return unlikely (ch == 0x061C);
- case 0x17: return hb_in_range<hb_codepoint_t> (ch, 0x17B4, 0x17B5);
- case 0x18: return hb_in_range<hb_codepoint_t> (ch, 0x180B, 0x180E);
- case 0x20: return hb_in_ranges<hb_codepoint_t> (ch, 0x200B, 0x200F,
- 0x202A, 0x202E,
- 0x2060, 0x206F);
- case 0xFE: return hb_in_range<hb_codepoint_t> (ch, 0xFE00, 0xFE0F) || ch == 0xFEFF;
- case 0xFF: return hb_in_range<hb_codepoint_t> (ch, 0xFFF0, 0xFFF8);
+ case 0x00: return unlikely (ch == 0x00ADu);
+ case 0x03: return unlikely (ch == 0x034Fu);
+ case 0x06: return unlikely (ch == 0x061Cu);
+ case 0x17: return hb_in_range (ch, 0x17B4u, 0x17B5u);
+ case 0x18: return hb_in_range (ch, 0x180Bu, 0x180Eu);
+ case 0x20: return hb_in_ranges (ch, 0x200Bu, 0x200Fu,
+ 0x202Au, 0x202Eu,
+ 0x2060u, 0x206Fu);
+ case 0xFE: return hb_in_range (ch, 0xFE00u, 0xFE0Fu) || ch == 0xFEFFu;
+ case 0xFF: return hb_in_range (ch, 0xFFF0u, 0xFFF8u);
default: return false;
}
}
@@ -190,9 +190,9 @@ HB_UNICODE_FUNCS_IMPLEMENT_CALLBACKS_SIMPLE
{
/* Other planes */
switch (plane) {
- case 0x01: return hb_in_ranges<hb_codepoint_t> (ch, 0x0001BCA0, 0x0001BCA3,
- 0x0001D173, 0x0001D17A);
- case 0x0E: return hb_in_range<hb_codepoint_t> (ch, 0x000E0000, 0x000E0FFF);
+ case 0x01: return hb_in_ranges (ch, 0x1BCA0u, 0x1BCA3u,
+ 0x1D173u, 0x1D17Au);
+ case 0x0E: return hb_in_range (ch, 0xE0000u, 0xE0FFFu);
default: return false;
}
}
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-unicode.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-unicode.cc
index 84e5c06fd35..84e5c06fd35 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-unicode.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-unicode.cc
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-unicode.h b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-unicode.h
index 1c4e097b92d..1c4e097b92d 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-unicode.h
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-unicode.h
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-uniscribe.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-uniscribe.cc
index f6994159f62..6bdf0f5c7fa 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-uniscribe.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-uniscribe.cc
@@ -379,7 +379,7 @@ _hb_rename_font (hb_blob_t *blob, wchar_t *new_name)
OT::NameRecord &record = name.nameRecord[i];
record.platformID.set (3);
record.encodingID.set (1);
- record.languageID.set (0x0409); /* English */
+ record.languageID.set (0x0409u); /* English */
record.nameID.set (name_IDs[i]);
record.length.set (name_str_len * 2);
record.offset.set (0);
@@ -749,13 +749,13 @@ retry:
{
hb_codepoint_t c = buffer->info[i].codepoint;
buffer->info[i].utf16_index() = chars_len;
- if (likely (c < 0x10000))
+ if (likely (c <= 0xFFFFu))
pchars[chars_len++] = c;
- else if (unlikely (c >= 0x110000))
- pchars[chars_len++] = 0xFFFD;
+ else if (unlikely (c > 0x10FFFFu))
+ pchars[chars_len++] = 0xFFFDu;
else {
- pchars[chars_len++] = 0xD800 + ((c - 0x10000) >> 10);
- pchars[chars_len++] = 0xDC00 + ((c - 0x10000) & ((1 << 10) - 1));
+ pchars[chars_len++] = 0xD800u + ((c - 0x10000u) >> 10);
+ pchars[chars_len++] = 0xDC00u + ((c - 0x10000u) & ((1 << 10) - 1));
}
}
@@ -771,7 +771,7 @@ retry:
hb_codepoint_t c = buffer->info[i].codepoint;
unsigned int cluster = buffer->info[i].cluster;
log_clusters[chars_len++] = cluster;
- if (c >= 0x10000 && c < 0x110000)
+ if (hb_in_range (c, 0x10000u, 0x10FFFFu))
log_clusters[chars_len++] = cluster; /* Surrogates. */
}
}
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-uniscribe.h b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-uniscribe.h
index 51887c8794b..51887c8794b 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-uniscribe.h
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-uniscribe.h
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-utf-private.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-utf-private.hh
new file mode 100644
index 00000000000..68216c45e8b
--- /dev/null
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-utf-private.hh
@@ -0,0 +1,249 @@
+/*
+ * Copyright © 2011,2012,2014 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_UTF_PRIVATE_HH
+#define HB_UTF_PRIVATE_HH
+
+#include "hb-private.hh"
+
+template <typename T, bool validate=true> struct hb_utf_t;
+
+
+/* UTF-8 */
+
+template <>
+struct hb_utf_t<uint8_t, true>
+{
+ static inline const uint8_t *
+ next (const uint8_t *text,
+ const uint8_t *end,
+ hb_codepoint_t *unicode,
+ hb_codepoint_t replacement)
+ {
+ /* Written to only accept well-formed sequences.
+ * Based on ideas from ICU's U8_NEXT.
+ * Generates a -1 for each ill-formed byte. */
+
+ hb_codepoint_t c = *text++;
+
+ if (c > 0x7Fu)
+ {
+ if (hb_in_range (c, 0xC2u, 0xDFu)) /* Two-byte */
+ {
+ unsigned int t1;
+ if (likely (text < end &&
+ (t1 = text[0] - 0x80u) <= 0x3Fu))
+ {
+ c = ((c&0x1Fu)<<6) | t1;
+ text++;
+ }
+ else
+ goto error;
+ }
+ else if (hb_in_range (c, 0xE0u, 0xEFu)) /* Three-byte */
+ {
+ unsigned int t1, t2;
+ if (likely (1 < end - text &&
+ (t1 = text[0] - 0x80u) <= 0x3Fu &&
+ (t2 = text[1] - 0x80u) <= 0x3Fu))
+ {
+ c = ((c&0xFu)<<12) | (t1<<6) | t2;
+ if (unlikely (c < 0x0800u || hb_in_range (c, 0xD800u, 0xDFFFu)))
+ goto error;
+ text += 2;
+ }
+ else
+ goto error;
+ }
+ else if (hb_in_range (c, 0xF0u, 0xF4u)) /* Four-byte */
+ {
+ unsigned int t1, t2, t3;
+ if (likely (2 < end - text &&
+ (t1 = text[0] - 0x80u) <= 0x3Fu &&
+ (t2 = text[1] - 0x80u) <= 0x3Fu &&
+ (t3 = text[2] - 0x80u) <= 0x3Fu))
+ {
+ c = ((c&0x7u)<<18) | (t1<<12) | (t2<<6) | t3;
+ if (unlikely (!hb_in_range (c, 0x10000u, 0x10FFFFu)))
+ goto error;
+ text += 3;
+ }
+ else
+ goto error;
+ }
+ else
+ goto error;
+ }
+
+ *unicode = c;
+ return text;
+
+ error:
+ *unicode = replacement;
+ return text;
+ }
+
+ static inline const uint8_t *
+ prev (const uint8_t *text,
+ const uint8_t *start,
+ hb_codepoint_t *unicode,
+ hb_codepoint_t replacement)
+ {
+ const uint8_t *end = text--;
+ while (start < text && (*text & 0xc0) == 0x80 && end - text < 4)
+ text--;
+
+ if (likely (next (text, end, unicode, replacement) == end))
+ return text;
+
+ *unicode = replacement;
+ return end - 1;
+ }
+
+ static inline unsigned int
+ strlen (const uint8_t *text)
+ {
+ return ::strlen ((const char *) text);
+ }
+};
+
+
+/* UTF-16 */
+
+template <>
+struct hb_utf_t<uint16_t, true>
+{
+ static inline const uint16_t *
+ next (const uint16_t *text,
+ const uint16_t *end,
+ hb_codepoint_t *unicode,
+ hb_codepoint_t replacement)
+ {
+ hb_codepoint_t c = *text++;
+
+ if (likely (!hb_in_range (c, 0xD800u, 0xDFFFu)))
+ {
+ *unicode = c;
+ return text;
+ }
+
+ if (likely (hb_in_range (c, 0xD800u, 0xDBFFu)))
+ {
+ /* High-surrogate in c */
+ hb_codepoint_t l;
+ if (text < end && ((l = *text), likely (hb_in_range (l, 0xDC00u, 0xDFFFu))))
+ {
+ /* Low-surrogate in l */
+ *unicode = (c << 10) + l - ((0xD800u << 10) - 0x10000u + 0xDC00u);
+ text++;
+ return text;
+ }
+ }
+
+ /* Lonely / out-of-order surrogate. */
+ *unicode = replacement;
+ return text;
+ }
+
+ static inline const uint16_t *
+ prev (const uint16_t *text,
+ const uint16_t *start,
+ hb_codepoint_t *unicode,
+ hb_codepoint_t replacement)
+ {
+ const uint16_t *end = text--;
+ hb_codepoint_t c = *text;
+
+ if (likely (!hb_in_range (c, 0xD800u, 0xDFFFu)))
+ {
+ *unicode = c;
+ return text;
+ }
+
+ if (likely (start < text && hb_in_range (c, 0xDC00u, 0xDFFFu)))
+ text--;
+
+ if (likely (next (text, end, unicode, replacement) == end))
+ return text;
+
+ *unicode = replacement;
+ return end - 1;
+ }
+
+
+ static inline unsigned int
+ strlen (const uint16_t *text)
+ {
+ unsigned int l = 0;
+ while (*text++) l++;
+ return l;
+ }
+};
+
+
+/* UTF-32 */
+
+template <bool validate>
+struct hb_utf_t<uint32_t, validate>
+{
+ static inline const uint32_t *
+ next (const uint32_t *text,
+ const uint32_t *end HB_UNUSED,
+ hb_codepoint_t *unicode,
+ hb_codepoint_t replacement)
+ {
+ hb_codepoint_t c = *text++;
+ if (validate && unlikely (c > 0x10FFFFu || hb_in_range (c, 0xD800u, 0xDFFFu)))
+ goto error;
+ *unicode = c;
+ return text;
+
+ error:
+ *unicode = replacement;
+ return text;
+ }
+
+ static inline const uint32_t *
+ prev (const uint32_t *text,
+ const uint32_t *start HB_UNUSED,
+ hb_codepoint_t *unicode,
+ hb_codepoint_t replacement)
+ {
+ next (text - 1, text, unicode, replacement);
+ return text - 1;
+ }
+
+ static inline unsigned int
+ strlen (const uint32_t *text)
+ {
+ unsigned int l = 0;
+ while (*text++) l++;
+ return l;
+ }
+};
+
+
+#endif /* HB_UTF_PRIVATE_HH */
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-version.h.in b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-version.h.in
index 2517160d18b..2517160d18b 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-version.h.in
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-version.h.in
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-warning.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-warning.cc
index e0f88e2d4ad..e0f88e2d4ad 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-warning.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb-warning.cc
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb.h b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb.h
index c5a938a3818..c5a938a3818 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb.h
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/hb.h
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/main.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/main.cc
index f9708cc948e..f9708cc948e 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/main.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/main.cc
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/test-buffer-serialize.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/test-buffer-serialize.cc
index 18c46e9524b..18c46e9524b 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/test-buffer-serialize.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/test-buffer-serialize.cc
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/test-size-params.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/test-size-params.cc
index 35d9e3c8e25..35d9e3c8e25 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/test-size-params.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/test-size-params.cc
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/test-would-substitute.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/test-would-substitute.cc
index 8ea87cdf397..8ea87cdf397 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/test-would-substitute.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/test-would-substitute.cc
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/test.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/test.cc
index a8fe046f34c..a8fe046f34c 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/test.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.31/src/test.cc
diff --git a/Build/source/libs/harfbuzz/version.ac b/Build/source/libs/harfbuzz/version.ac
index 0d22b514761..d9a260bffb3 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.30])
+m4_define([harfbuzz_version], [0.9.31])