diff options
author | Peter Breitenlohner <peb@mppmu.mpg.de> | 2014-07-17 06:43:56 +0000 |
---|---|---|
committer | Peter Breitenlohner <peb@mppmu.mpg.de> | 2014-07-17 06:43:56 +0000 |
commit | 3f619bdd457ad5d7a32e2d97142aace3b5a76ab9 (patch) | |
tree | a608cc935082d1df0b607837bea2a6b8d7f76df3 /Build | |
parent | e85df5d9b4ca634bdcae2a7ea48a31f163ff6bd6 (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/README | 2 | ||||
-rw-r--r-- | Build/source/libs/harfbuzz/ChangeLog | 5 | ||||
-rw-r--r-- | Build/source/libs/harfbuzz/Makefile.in | 4 | ||||
-rwxr-xr-x | Build/source/libs/harfbuzz/configure | 32 | ||||
-rw-r--r-- | Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-ot-shape-complex-arabic-table.hh | 383 | ||||
-rw-r--r-- | Build/source/libs/harfbuzz/harfbuzz-0.9.30/src/hb-utf-private.hh | 204 | ||||
-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-x | Build/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-x | Build/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-x | Build/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-x | Build/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-x | Build/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-x | Build/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-x | Build/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-x | Build/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-x | Build/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-x | Build/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.hh | 383 | ||||
-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.hh | 249 | ||||
-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.ac | 2 |
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]) |