summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Build/source/libs/README2
-rw-r--r--Build/source/libs/harfbuzz/ChangeLog7
-rw-r--r--Build/source/libs/harfbuzz/Makefile.in4
-rwxr-xr-xBuild/source/libs/harfbuzz/configure32
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.35-PATCHES/ChangeLog (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.34-PATCHES/ChangeLog)5
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.35-PATCHES/TL-Changes (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.34-PATCHES/TL-Changes)2
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.35/AUTHORS (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.34/AUTHORS)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.35/Android.mk (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.34/Android.mk)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.35/ChangeLog (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.34/ChangeLog)495
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.35/Makefile.am (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.34/Makefile.am)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.35/NEWS (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.34/NEWS)29
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.35/README (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.34/README)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.35/THANKS (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.34/THANKS)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.35/TODO (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.34/TODO)0
-rwxr-xr-xBuild/source/libs/harfbuzz/harfbuzz-0.9.35/autogen.sh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.34/autogen.sh)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.35/config.h.in (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.34/config.h.in)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.35/configure.ac (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.34/configure.ac)2
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.35/gtk-doc.make (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.34/gtk-doc.make)33
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.35/harfbuzz.doap (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.34/harfbuzz.doap)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/Makefile.am (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/Makefile.am)0
-rwxr-xr-xBuild/source/libs/harfbuzz/harfbuzz-0.9.35/src/check-c-linkage-decls.sh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/check-c-linkage-decls.sh)0
-rwxr-xr-xBuild/source/libs/harfbuzz/harfbuzz-0.9.35/src/check-defs.sh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/check-defs.sh)0
-rwxr-xr-xBuild/source/libs/harfbuzz/harfbuzz-0.9.35/src/check-header-guards.sh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/check-header-guards.sh)0
-rwxr-xr-xBuild/source/libs/harfbuzz/harfbuzz-0.9.35/src/check-includes.sh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/check-includes.sh)0
-rwxr-xr-xBuild/source/libs/harfbuzz/harfbuzz-0.9.35/src/check-libstdc++.sh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/check-libstdc++.sh)0
-rwxr-xr-xBuild/source/libs/harfbuzz/harfbuzz-0.9.35/src/check-static-inits.sh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/check-static-inits.sh)0
-rwxr-xr-xBuild/source/libs/harfbuzz/harfbuzz-0.9.35/src/check-symbols.sh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/check-symbols.sh)0
-rwxr-xr-xBuild/source/libs/harfbuzz/harfbuzz-0.9.35/src/gen-arabic-table.py (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/gen-arabic-table.py)0
-rwxr-xr-xBuild/source/libs/harfbuzz/harfbuzz-0.9.35/src/gen-indic-table.py (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/gen-indic-table.py)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/harfbuzz-gobject.pc.in (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/harfbuzz-gobject.pc.in)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/harfbuzz-icu.pc.in (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/harfbuzz-icu.pc.in)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/harfbuzz.pc.in (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/harfbuzz.pc.in)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-atomic-private.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-atomic-private.hh)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-blob.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-blob.cc)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-blob.h (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-blob.h)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-buffer-deserialize-json.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-buffer-deserialize-json.hh)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-buffer-deserialize-json.rl (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-buffer-deserialize-json.rl)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-buffer-deserialize-text.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-buffer-deserialize-text.hh)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-buffer-deserialize-text.rl (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-buffer-deserialize-text.rl)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-buffer-private.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-buffer-private.hh)7
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-buffer-serialize.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-buffer-serialize.cc)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-buffer.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-buffer.cc)4
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-buffer.h (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-buffer.h)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-cache-private.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-cache-private.hh)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-common.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-common.cc)4
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-common.h (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-common.h)5
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-coretext.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-coretext.cc)652
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-coretext.h (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-coretext.h)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-deprecated.h (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-deprecated.h)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-face-private.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-face-private.hh)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-face.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-face.cc)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-face.h (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-face.h)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-fallback-shape.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-fallback-shape.cc)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-font-private.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-font-private.hh)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-font.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-font.cc)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-font.h (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-font.h)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ft.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ft.cc)2
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ft.h (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ft.h)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-glib.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-glib.cc)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-glib.h (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-glib.h)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-gobject-enums.cc.tmpl (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-gobject-enums.cc.tmpl)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-gobject-enums.h.tmpl (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-gobject-enums.h.tmpl)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-gobject-structs.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-gobject-structs.cc)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-gobject-structs.h (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-gobject-structs.h)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-gobject.h (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-gobject.h)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-graphite2.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-graphite2.cc)4
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-graphite2.h (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-graphite2.h)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-icu.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-icu.cc)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-icu.h (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-icu.h)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-mutex-private.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-mutex-private.hh)2
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-object-private.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-object-private.hh)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-open-file-private.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-open-file-private.hh)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-open-type-private.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-open-type-private.hh)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ot-cmap-table.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ot-cmap-table.hh)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ot-font.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ot-font.cc)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ot-font.h (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ot-font.h)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ot-head-table.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ot-head-table.hh)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ot-hhea-table.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ot-hhea-table.hh)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ot-hmtx-table.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ot-hmtx-table.hh)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ot-layout-common-private.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ot-layout-common-private.hh)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ot-layout-gdef-table.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ot-layout-gdef-table.hh)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ot-layout-gpos-table.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ot-layout-gpos-table.hh)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ot-layout-gsub-table.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ot-layout-gsub-table.hh)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ot-layout-gsubgpos-private.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ot-layout-gsubgpos-private.hh)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ot-layout-jstf-table.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ot-layout-jstf-table.hh)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ot-layout-private.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ot-layout-private.hh)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ot-layout.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ot-layout.cc)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ot-layout.h (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ot-layout.h)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ot-map-private.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ot-map-private.hh)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ot-map.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ot-map.cc)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ot-maxp-table.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ot-maxp-table.hh)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ot-name-table.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ot-name-table.hh)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ot-shape-complex-arabic-fallback.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ot-shape-complex-arabic-fallback.hh)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ot-shape-complex-arabic-table.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ot-shape-complex-arabic-table.hh)2
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ot-shape-complex-arabic-win1256.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ot-shape-complex-arabic-win1256.hh)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ot-shape-complex-arabic.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ot-shape-complex-arabic.cc)4
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ot-shape-complex-default.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ot-shape-complex-default.cc)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ot-shape-complex-hangul.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ot-shape-complex-hangul.cc)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ot-shape-complex-hebrew.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ot-shape-complex-hebrew.cc)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ot-shape-complex-indic-machine.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ot-shape-complex-indic-machine.hh)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ot-shape-complex-indic-machine.rl (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ot-shape-complex-indic-machine.rl)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ot-shape-complex-indic-private.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ot-shape-complex-indic-private.hh)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ot-shape-complex-indic-table.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ot-shape-complex-indic-table.cc)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ot-shape-complex-indic.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ot-shape-complex-indic.cc)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ot-shape-complex-myanmar-machine.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ot-shape-complex-myanmar-machine.hh)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ot-shape-complex-myanmar-machine.rl (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ot-shape-complex-myanmar-machine.rl)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ot-shape-complex-myanmar.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ot-shape-complex-myanmar.cc)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ot-shape-complex-private.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ot-shape-complex-private.hh)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ot-shape-complex-sea-machine.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ot-shape-complex-sea-machine.hh)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ot-shape-complex-sea-machine.rl (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ot-shape-complex-sea-machine.rl)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ot-shape-complex-sea.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ot-shape-complex-sea.cc)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ot-shape-complex-thai.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ot-shape-complex-thai.cc)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ot-shape-complex-tibetan.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ot-shape-complex-tibetan.cc)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ot-shape-fallback-private.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ot-shape-fallback-private.hh)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ot-shape-fallback.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ot-shape-fallback.cc)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ot-shape-normalize-private.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ot-shape-normalize-private.hh)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ot-shape-normalize.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ot-shape-normalize.cc)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ot-shape-private.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ot-shape-private.hh)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ot-shape.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ot-shape.cc)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ot-shape.h (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ot-shape.h)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ot-tag.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ot-tag.cc)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ot-tag.h (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ot-tag.h)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ot.h (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ot.h)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-private.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-private.hh)48
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-set-private.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-set-private.hh)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-set.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-set.cc)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-set.h (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-set.h)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-shape-plan-private.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-shape-plan-private.hh)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-shape-plan.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-shape-plan.cc)53
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-shape-plan.h (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-shape-plan.h)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-shape.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-shape.cc)2
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-shape.h (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-shape.h)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-shaper-impl-private.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-shaper-impl-private.hh)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-shaper-list.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-shaper-list.hh)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-shaper-private.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-shaper-private.hh)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-shaper.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-shaper.cc)2
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ucdn.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ucdn.cc)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-unicode-private.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-unicode-private.hh)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-unicode.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-unicode.cc)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-unicode.h (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-unicode.h)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-uniscribe.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-uniscribe.cc)8
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-uniscribe.h (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-uniscribe.h)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-utf-private.hh (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-utf-private.hh)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-version.h.in (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-version.h.in)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-warning.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-warning.cc)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb.h (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb.h)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/main.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/main.cc)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/test-buffer-serialize.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/test-buffer-serialize.cc)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/test-size-params.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/test-size-params.cc)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/test-would-substitute.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/test-would-substitute.cc)0
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/test.cc (renamed from Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/test.cc)0
-rw-r--r--Build/source/libs/harfbuzz/version.ac2
152 files changed, 1123 insertions, 289 deletions
diff --git a/Build/source/libs/README b/Build/source/libs/README
index 6ee43d27487..5ba13ac319c 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.34 - checked 3aug14
+harfbuzz 0.9.35 - checked 14aug14
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 7ba76e7d8d4..24fccb39cac 100644
--- a/Build/source/libs/harfbuzz/ChangeLog
+++ b/Build/source/libs/harfbuzz/ChangeLog
@@ -1,4 +1,9 @@
-2014-08-033 Peter Breitenlohner <peb@mppmu.mpg.de>
+2014-08-14 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ Import harfbuzz-0.9.35.
+ * version.ac: Adjust.
+
+2014-08-03 Peter Breitenlohner <peb@mppmu.mpg.de>
Import harfbuzz-0.9.34.
* version.ac: Adjust.
diff --git a/Build/source/libs/harfbuzz/Makefile.in b/Build/source/libs/harfbuzz/Makefile.in
index 90513435f2a..5af5801c034 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.34/src/hb-version.h.in \
+ $(top_srcdir)/harfbuzz-0.9.35/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.34/src/hb-version.h.in
+hb-version.h: $(top_builddir)/config.status $(top_srcdir)/harfbuzz-0.9.35/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 5008f2c542b..d756fc234dc 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.34.
+# Generated by GNU Autoconf 2.69 for harfbuzz (TeX Live) 0.9.35.
#
# 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.34'
-PACKAGE_STRING='harfbuzz (TeX Live) 0.9.34'
+PACKAGE_VERSION='0.9.35'
+PACKAGE_STRING='harfbuzz (TeX Live) 0.9.35'
PACKAGE_BUGREPORT='tex-k@tug.org'
PACKAGE_URL=''
-ac_unique_file="harfbuzz-0.9.34/src/harfbuzz.pc.in"
+ac_unique_file="harfbuzz-0.9.35/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.34 to adapt to many kinds of systems.
+\`configure' configures harfbuzz (TeX Live) 0.9.35 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.34:";;
+ short | recursive ) echo "Configuration of harfbuzz (TeX Live) 0.9.35:";;
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.34
+harfbuzz (TeX Live) configure 0.9.35
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.34, which was
+It was created by harfbuzz (TeX Live) $as_me 0.9.35, 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.34'
+ VERSION='0.9.35'
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=34
-HB_VERSION=0.9.34
+HB_VERSION_MICRO=35
+HB_VERSION=0.9.35
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.34
+HARFBUZZ_TREE=harfbuzz-0.9.35
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.34/src/hb-version.h.in"
+ac_config_files="$ac_config_files Makefile include/Makefile hb-version.h:harfbuzz-0.9.35/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.34, which was
+This file was extended by harfbuzz (TeX Live) $as_me 0.9.35, 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.34
+harfbuzz (TeX Live) config.status 0.9.35
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.34/src/hb-version.h.in" ;;
+ "hb-version.h") CONFIG_FILES="$CONFIG_FILES hb-version.h:harfbuzz-0.9.35/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.34-PATCHES/ChangeLog b/Build/source/libs/harfbuzz/harfbuzz-0.9.35-PATCHES/ChangeLog
index 912ab925730..daa5fd88c4a 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.34-PATCHES/ChangeLog
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.35-PATCHES/ChangeLog
@@ -1,3 +1,8 @@
+2014-08-14 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ Imported harfbuzz-0.9.35 source tree from:
+ http://www.freedesktop.org/software/harfbuzz/release/
+
2014-08-03 Peter Breitenlohner <peb@mppmu.mpg.de>
Imported harfbuzz-0.9.34 source tree from:
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.34-PATCHES/TL-Changes b/Build/source/libs/harfbuzz/harfbuzz-0.9.35-PATCHES/TL-Changes
index 47e9ba389d5..b1f1b58e07a 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.34-PATCHES/TL-Changes
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.35-PATCHES/TL-Changes
@@ -1,4 +1,4 @@
-Changes applied to the harfbuzz-0.9.34/ tree as obtained from:
+Changes applied to the harfbuzz-0.9.35/ tree as obtained from:
http://www.freedesktop.org/software/harfbuzz/release/
Removed:
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/AUTHORS b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/AUTHORS
index 81cdc4cf37f..81cdc4cf37f 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/AUTHORS
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/AUTHORS
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/Android.mk b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/Android.mk
index 07dfa5b1d87..07dfa5b1d87 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/Android.mk
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/Android.mk
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/ChangeLog b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/ChangeLog
index 9d9eed3b5e4..909fdf07426 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/ChangeLog
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/ChangeLog
@@ -1,3 +1,498 @@
+commit cd5a1149d980dc3c17b6bb9d961c761b2671ba1b
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Wed Aug 13 12:39:34 2014 -0400
+
+ 0.9.35
+
+ NEWS | 29 +++++++++++++++++++++++++++++
+ configure.ac | 2 +-
+ 2 files changed, 30 insertions(+), 1 deletion(-)
+
+commit 20076cc41e673c31305fcb58d37b3b292fd35f83
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Tue Aug 12 19:26:35 2014 -0400
+
+ [coretext] Add version guards for kCTLanguageAttributeName
+
+ src/hb-coretext.cc | 7 +++++++
+ 1 file changed, 7 insertions(+)
+
+commit 1b3011c27df531875d432e909ae6b77f115c5017
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Tue Aug 12 19:17:19 2014 -0400
+
+ [coretext] Pass buffer language to CoreText
+
+ src/hb-coretext.cc | 12 ++++++++++++
+ 1 file changed, 12 insertions(+)
+
+commit 3eb6a4dbf25b11fce5e0e426e89f7457887aeca0
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Tue Aug 12 19:10:33 2014 -0400
+
+ [coretext] Minor
+
+ src/hb-coretext.cc | 9 +++++----
+ 1 file changed, 5 insertions(+), 4 deletions(-)
+
+commit 08acfe0d3a1d8223a9fa0696703fff63d6c2ea8b
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Tue Aug 12 18:57:08 2014 -0400
+
+ [hb-coretext] Fix cluster order of notdef runs in RTL text
+
+ src/hb-coretext.cc | 3 +++
+ 1 file changed, 3 insertions(+)
+
+commit 30eed75de24ac0b6648a72d98d10bb24a563d7ef
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Tue Aug 12 17:15:09 2014 -0400
+
+ [shape-plan] Fix typo!
+
+ The only effect is, if shaper_list was not NULL and no shaper
+ was found,
+ we now don't insert anything into cache and return earlier.
+
+ src/hb-shape-plan.cc | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit dc9aba6fc53898acd7281b118cec0355d61b1df2
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Tue Aug 12 17:14:36 2014 -0400
+
+ [shape-plan] Better debug messages
+
+ src/hb-shape-plan.cc | 14 ++++++++++----
+ 1 file changed, 10 insertions(+), 4 deletions(-)
+
+commit e956c65bf724a8403471362288d2361361b6ac58
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Tue Aug 12 17:03:27 2014 -0400
+
+ [shape-plan] Simplify macro
+
+ src/hb-shape-plan.cc | 22 ++++++++--------------
+ 1 file changed, 8 insertions(+), 14 deletions(-)
+
+commit 29e25550ce8fee3fecc42d20a45ce9c212dc59df
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Tue Aug 12 17:02:59 2014 -0400
+
+ Fix gcc warning
+
+ src/hb-private.hh | 9 +++++++++
+ 1 file changed, 9 insertions(+)
+
+commit 8d5eebc0c6ada01128c6ee384340efdbef7ba29d
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Tue Aug 12 16:50:22 2014 -0400
+
+ [shape-plan] Fix shape-plan caching with more than one requested
+ shaper
+
+ Wasn't breaking out of loop, ouch!
+
+ http://www.mail-archive.com/debian-bugs-dist@lists.debian.org/msg1246370.html
+
+ src/hb-shape-plan.cc | 9 ++++++---
+ 1 file changed, 6 insertions(+), 3 deletions(-)
+
+commit bc3d0dc60104f1cda465a5e8ba5b40ed5bec70b9
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Tue Aug 12 16:49:18 2014 -0400
+
+ [shape-plan] Add debug tracing
+
+ src/hb-shape-plan.cc | 26 ++++++++++++++++++++++++++
+ 1 file changed, 26 insertions(+)
+
+commit 81b8d9777b9c38c7e6408591763a4cac6de18e4b
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Tue Aug 12 15:49:47 2014 -0400
+
+ [coretext] Fix buffer resizing
+
+ Was very broken. Now fixed and tested.
+
+ src/hb-coretext.cc | 17 +++++++++++++----
+ 1 file changed, 13 insertions(+), 4 deletions(-)
+
+commit c3e924fb9e0e2d4003790817655efd9c5688c7e1
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Tue Aug 12 14:25:11 2014 -0400
+
+ [coretext] Rewind scratch-allocated arrays when not needed anymore
+
+ src/hb-coretext.cc | 16 ++++++++++++++++
+ 1 file changed, 16 insertions(+)
+
+commit 8fd4d70b1450d7261a35ab3dea1c70baea2e5c99
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Tue Aug 12 13:12:31 2014 -0400
+
+ [wince] Two more Windows CE fixes
+
+ Report has it that it builds (and works) now:
+
+ https://codereview.qt-project.org/#/c/92087/
+
+ src/hb-mutex-private.hh | 2 +-
+ src/hb-private.hh | 2 ++
+ 2 files changed, 3 insertions(+), 1 deletion(-)
+
+commit fd0001d7dbe6ede99a9f87f96f231ffb53303be8
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Tue Aug 12 10:32:41 2014 -0400
+
+ [coretext] Compare CGFont and PS name, if CTFont didn't match
+
+ See comments.
+
+ Fixes vertical text. CoreText backend is in very good shape now!
+
+ Also see:
+ 5a0eed3b50629be4826e4e9428f2c3255195395d
+ 25f4fb9b56bb3f8bec821571c78f8829e40daa54
+
+ Fixes http://github.com/behdad/harfbuzz/pull/36
+
+ src/hb-coretext.cc | 54
+ ++++++++++++++++++++++++++++++++++++++++++++++++------
+ 1 file changed, 48 insertions(+), 6 deletions(-)
+
+commit 5a0eed3b50629be4826e4e9428f2c3255195395d
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Mon Aug 11 23:47:16 2014 -0400
+
+ [coretext] Implement vertical shaping
+
+ Currently doesn't work though, we detect font fallback. Apparently
+ matching on ct_font is not safe for this. Looks like commit
+ 25f4fb9b56bb3f8bec821571c78f8829e40daa54 wasn't enough after all.
+
+ src/hb-coretext.cc | 127
+ ++++++++++++++++++++++++++++++++++-------------------
+ 1 file changed, 81 insertions(+), 46 deletions(-)
+
+commit 1b55077f03758e49f93b8bc1de678e96ea58718c
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Mon Aug 11 20:45:12 2014 -0400
+
+ [coretext] Remove unnecessary alt_size
+
+ Wasn't needed after a6b8dc87421de33746b0b14d86d2d1532aec02af.
+
+ src/hb-coretext.cc | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+commit 10b1104d791a0b0103c6bbb083b5819f2b7d328d
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Mon Aug 11 20:02:45 2014 -0400
+
+ [coretext] Use CFRunStatus
+
+ Assert that all runs had expected direction, and take hint for
+ non-monotone clusters.
+
+ src/hb-coretext.cc | 17 +++++++++++++++--
+ 1 file changed, 15 insertions(+), 2 deletions(-)
+
+commit fd1a6aa8d029c701b1532efa59ce901109cfc216
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Mon Aug 11 20:01:37 2014 -0400
+
+ [coretext] Minor
+
+ src/hb-coretext.cc | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+commit 130856c705641aa681307b5b51b5fb84e295f382
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Mon Aug 11 19:16:26 2014 -0400
+
+ [coretext] Remove debug printf!
+
+ src/hb-coretext.cc | 1 -
+ 1 file changed, 1 deletion(-)
+
+commit b5fbc3b8f560235d014c62e49220574ffcf89349
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Mon Aug 11 18:40:01 2014 -0400
+
+ API: Do not clear buffer-flags in hb_buffer_clear_contents()
+
+ After 763e5466c0a03a7c27020e1e2598e488612529a7, one doesn't
+ need to set flags for different pieces of text. The flags now
+ are something the client sets up once, depending on how it
+ actually uses the buffer. As such, don't clear it in
+ clear_contents().
+
+ Tests updated.
+
+ src/hb-buffer-private.hh | 4 +---
+ src/hb-buffer.cc | 4 ++--
+ test/api/test-buffer.c | 15 ++++++++++++---
+ 3 files changed, 15 insertions(+), 8 deletions(-)
+
+commit 104484cefeca03d95837bba5f39178693c86ce8a
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Mon Aug 11 18:23:43 2014 -0400
+
+ Minor
+
+ src/hb-common.h | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+commit 4acce77db7dd588ba277779c4997b0256ebe426e
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Mon Aug 11 17:46:50 2014 -0400
+
+ [coretext] Pass buffer direction to CoreText
+
+ Have to use a CTTypesetter for this.
+
+ src/hb-coretext.cc | 26 ++++++++++++++++++++++----
+ 1 file changed, 22 insertions(+), 4 deletions(-)
+
+commit 5ec45dd37caa8a87ce2689a66272ba8a343fe6ba
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Mon Aug 11 17:46:12 2014 -0400
+
+ [coretext] Minor
+
+ It's hard to handle all possible NULL returns from CoreText. Add one
+ more...
+
+ src/hb-coretext.cc | 8 +++++---
+ 1 file changed, 5 insertions(+), 3 deletions(-)
+
+commit 624a299b829ccf9864dd2f3001b1a49476e96b4a
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Mon Aug 11 15:29:18 2014 -0400
+
+ [coretext] Attach marks to base clusters
+
+ Fixes https://githu.com/behdad/harfbuzz/issues/49
+ to the extent that it can be fixed.
+
+ src/hb-coretext.cc | 16 ++++++++++++++++
+ 1 file changed, 16 insertions(+)
+
+commit 3c41ccb5358b0be6cc68d49f436d2cb1792cd5e5
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Mon Aug 11 15:11:59 2014 -0400
+
+ [coretext] Use input clusters
+
+ Before, this shaper was returning UTF-16 cluster indices instead of
+ returning whatever cluster values the user had had set up in the
+ buffer.
+ Ouch!
+
+ src/hb-coretext.cc | 6 ++----
+ 1 file changed, 2 insertions(+), 4 deletions(-)
+
+commit a6b8dc87421de33746b0b14d86d2d1532aec02af
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Mon Aug 11 15:08:19 2014 -0400
+
+ [coretext] Fix buffer resize handling
+
+ We can't really resize buffer and continue in this shaper as we are
+ using the scratch buffer for string_ref and log_cluster. Restructure
+ shaper to retry from (almost) scratch.
+
+ src/hb-buffer-private.hh | 3 +
+ src/hb-coretext.cc | 428
+ ++++++++++++++++++++++++++---------------------
+ 2 files changed, 238 insertions(+), 193 deletions(-)
+
+commit 9b3c60c88b118f01610ae7a608b138f79f2dc7be
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Mon Aug 11 13:25:43 2014 -0400
+
+ [coretext] Always compute log_clusters
+
+ To be used soon.
+
+ src/hb-coretext.cc | 24 +++++++++++-------------
+ 1 file changed, 11 insertions(+), 13 deletions(-)
+
+commit 15c633dd1f412f9ef839d80a8f7af35e7ea48fbc
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Mon Aug 11 13:42:42 2014 -0400
+
+ Minor
+
+ src/hb-graphite2.cc | 4 ++--
+ src/hb-uniscribe.cc | 6 ++----
+ 2 files changed, 4 insertions(+), 6 deletions(-)
+
+commit 9ce067c77524a9ffc77ceabcba5e7dab36fd39de
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Mon Aug 11 02:04:38 2014 -0400
+
+ [coretext] Simplify cluster mapping
+
+ src/hb-coretext.cc | 41 +++++++++++++++++------------------------
+ 1 file changed, 17 insertions(+), 24 deletions(-)
+
+commit 49f7fb63761e4ca9936990fb90a77fd3600f5ad2
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Sun Aug 10 19:19:38 2014 -0400
+
+ [coretext] Minor
+
+ src/hb-coretext.cc | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 25f4fb9b56bb3f8bec821571c78f8829e40daa54
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Sun Aug 10 19:05:25 2014 -0400
+
+ [coretext] Fix fallback detection
+
+ Fixes http://github.com/behdad/harfbuzz/pull/36
+
+ src/hb-coretext.cc | 29 ++++++++++++++++++++---------
+ 1 file changed, 20 insertions(+), 9 deletions(-)
+
+commit 77a7a53acef7de355116d488e7d64ff1d7e9e9e1
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Sun Aug 10 18:59:47 2014 -0400
+
+ [coretext] Fix last range
+
+ Test with:
+
+ hb-view /Library/Fonts/Zapfino.ttf ZapfinoZapfino --features=-dlig[7:]
+ --shaper=coretext
+
+ src/hb-coretext.cc | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit c2b151d95262a8dc2d2ce94e19ab0ef5b0c8f98d
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Sun Aug 10 18:52:07 2014 -0400
+
+ Fix hb_in_range() for types smaller than int
+
+ As exercised by hb-coretext .notdef code.
+
+ src/hb-private.hh | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+commit 26a963b9cb4af3119177f277a2d48a5d537458fb
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Sun Aug 10 18:04:50 2014 -0400
+
+ [wince] Try to fix some stuff on Windows CE
+
+ Based on errors seen here:
+ http://testresults.qt-project.org/ci/QtBase_dev_Integration/build_03837/wince70embedded-armv4i-msvc2008_Windows_7/log.txt.gz
+
+ Fully untested.
+
+ src/hb-private.hh | 8 ++++++++
+ 1 file changed, 8 insertions(+)
+
+commit 92aeee3f040c2c32cbf70b27bd6954535388c870
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Sun Aug 10 17:42:19 2014 -0400
+
+ Minor
+
+ src/hb-coretext.cc | 4 ++--
+ src/hb-uniscribe.cc | 4 ++--
+ 2 files changed, 4 insertions(+), 4 deletions(-)
+
+commit b9993d8d6d332994dfbd29e99ff8043622003417
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Sun Aug 10 17:40:24 2014 -0400
+
+ [coretext] Fix assert on Yosemite
+
+ Apparently those functions documented as sometimes returning NULL
+ actually exercise that right in OS X 10.10 Yosemite. The scratch
+ was too small for that. I *think* I fixed it, but haven't tested
+ as I don't have Yosemite.
+
+ src/hb-coretext.cc | 6 +++++-
+ 1 file changed, 5 insertions(+), 1 deletion(-)
+
+commit 087733dd66e17297ef0e53680fafe42c84884104
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Fri Apr 18 11:21:08 2014 -0700
+
+ [coretext] Use CGFont as face_data
+
+ src/hb-coretext.cc | 26 +++++++++-----------------
+ 1 file changed, 9 insertions(+), 17 deletions(-)
+
+commit d277c3d7eee1fd4fb41c38255e5c4df539353e89
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Thu Aug 7 15:38:52 2014 -0400
+
+ [arabic] Bug 82306 - Mandaic had errors in its Unicode Joining_Type
+
+ Fixes https://bugs.freedesktop.org/show_bug.cgi?id=82306
+
+ src/hb-ot-shape-complex-arabic-table.hh | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 38fb30d7420a4b01f99cee31baa8c3990a1d1c5f
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Wed Aug 6 13:34:49 2014 -0400
+
+ Use atexit() only if it's safe to call from shared library
+
+ Apparently they are not (advertised as?) safe on BSD systems.
+ We ignore the case of static libraries.
+
+ Whitelisted on glibc, Android, and MSVC / mingw.
+
+ https://bugs.freedesktop.org/show_bug.cgi?id=82246
+
+ src/hb-common.cc | 4 ++--
+ src/hb-ft.cc | 2 +-
+ src/hb-private.hh | 25 +++++++++++++++++++++++++
+ src/hb-shape.cc | 2 +-
+ src/hb-shaper.cc | 2 +-
+ src/hb-uniscribe.cc | 2 +-
+ 6 files changed, 31 insertions(+), 6 deletions(-)
+
+commit d5e61470fa8e5046c35a79988e00e012ae4fff0f
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Tue Aug 5 14:19:01 2014 -0400
+
+ [arabic] Fix fallback shaping regression
+
+ Was broken in 615d00ea252739da57edbd980ff27e573.
+
+ Fixes https://github.com/behdad/harfbuzz/pull/48
+
+ Micro-test added.
+
+ src/hb-ot-shape-complex-arabic.cc | 4 ++--
+ test/shaping/Makefile.am | 1 +
+ test/shaping/fonts/sha1sum/MANIFEST | 1 +
+ .../sha1sum/df768b9c257e0c9c35786c47cae15c46571d56be.ttf | Bin 0 ->
+ 6332 bytes
+ test/shaping/tests/MANIFEST | 1 +
+ test/shaping/tests/arabic-fallback-shaping.tests | 1 +
+ 6 files changed, 6 insertions(+), 2 deletions(-)
+
+commit 91c2c0fd2b0f660d79744b3dfaf39ab86883e96b
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Sat Aug 2 19:24:55 2014 -0400
+
+ 0.9.34
+
+ NEWS | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++
+ configure.ac | 2 +-
+ 2 files changed, 54 insertions(+), 1 deletion(-)
+
commit d7c850f8037d2701366008eb8c2a527c9d40abde
Author: Behdad Esfahbod <behdad@behdad.org>
Date: Sat Aug 2 17:46:38 2014 -0400
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/Makefile.am b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/Makefile.am
index fa8711403d5..fa8711403d5 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/Makefile.am
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/Makefile.am
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/NEWS b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/NEWS
index d38e021f037..adc8f694ed4 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/NEWS
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/NEWS
@@ -1,3 +1,32 @@
+Overview of changes leading to 0.9.35
+Saturday, August 13, 2014
+=====================================
+
+- Fix major shape-plan caching bug when more than one shaper were
+ provided to hb_shape_full() (as exercised by XeTeX).
+ http://www.mail-archive.com/debian-bugs-dist@lists.debian.org/msg1246370.html
+- Fix Arabic fallback shaping regression. This was broken in 0.9.32.
+- Major hb-coretext fixes. That backend is complete now, including
+ respecing buffer direction and language, down to vertical writing.
+- Build fixes for Windows CE. Should build fine now.
+- Misc fixes:
+ Use atexit() only if it's safe to call from shared library
+ https://bugs.freedesktop.org/show_bug.cgi?id=82246
+ Mandaic had errors in its Unicode Joining_Type
+ https://bugs.freedesktop.org/show_bug.cgi?id=82306
+- API changes:
+
+ * hb_buffer_clear_contents() does not reset buffer flags now.
+
+ After 763e5466c0a03a7c27020e1e2598e488612529a7, one doesn't
+ need to set flags for different pieces of text. The flags now
+ are something the client sets up once, depending on how it
+ actually uses the buffer. As such, don't clear it in
+ clear_contents().
+
+ I don't expect any changes to be needed to any existing client.
+
+
Overview of changes leading to 0.9.34
Saturday, August 2, 2014
=====================================
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/README b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/README
index 74e739da52a..74e739da52a 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/README
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/README
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/THANKS b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/THANKS
index 940cfde5c39..940cfde5c39 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/THANKS
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/THANKS
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/TODO b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/TODO
index e1aa39c4c01..e1aa39c4c01 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/TODO
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/TODO
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/autogen.sh b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/autogen.sh
index a267f297b06..a267f297b06 100755
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/autogen.sh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/autogen.sh
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/config.h.in b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/config.h.in
index 491e7f428ef..491e7f428ef 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/config.h.in
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/config.h.in
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/configure.ac b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/configure.ac
index 9d1c8cee81c..b9e82d9f8f8 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/configure.ac
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/configure.ac
@@ -1,6 +1,6 @@
AC_PREREQ([2.64])
AC_INIT([HarfBuzz],
- [0.9.34],
+ [0.9.35],
[http://bugs.freedesktop.org/enter_bug.cgi?product=harfbuzz],
[harfbuzz],
[http://harfbuzz.org/])
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/gtk-doc.make b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/gtk-doc.make
index 104c3993f3e..e7916563d75 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/gtk-doc.make
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/gtk-doc.make
@@ -49,9 +49,13 @@ REPORT_FILES = \
$(DOC_MODULE)-undeclared.txt \
$(DOC_MODULE)-unused.txt
-CLEANFILES = $(SCANOBJ_FILES) $(REPORT_FILES) $(DOC_STAMPS)
+gtkdoc-check.test: Makefile
+ $(AM_V_GEN)echo "#!/bin/sh -e" > $@; \
+ echo "$(GTKDOC_CHECK_PATH) || exit 1" >> $@; \
+ chmod +x $@
+
+CLEANFILES = $(SCANOBJ_FILES) $(REPORT_FILES) $(DOC_STAMPS) gtkdoc-check.test
-if ENABLE_GTK_DOC
if GTK_DOC_BUILD_HTML
HTML_BUILD_STAMP=html-build.stamp
else
@@ -63,9 +67,11 @@ else
PDF_BUILD_STAMP=
endif
-all-local: $(HTML_BUILD_STAMP) $(PDF_BUILD_STAMP)
-else
-all-local:
+all-gtk-doc: $(HTML_BUILD_STAMP) $(PDF_BUILD_STAMP)
+.PHONY: all-gtk-doc
+
+if ENABLE_GTK_DOC
+all-local: all-gtk-doc
endif
docs: $(HTML_BUILD_STAMP) $(PDF_BUILD_STAMP)
@@ -83,8 +89,10 @@ setup-build.stamp:
files=`echo $(SETUP_FILES) $(expand_content_files) $(DOC_MODULE).types`; \
if test "x$$files" != "x" ; then \
for file in $$files ; do \
+ destdir=`dirname $(abs_builddir)/$$file`; \
+ test -d "$$destdir" || mkdir -p "$$destdir"; \
test -f $(abs_srcdir)/$$file && \
- cp -pu $(abs_srcdir)/$$file $(abs_builddir)/$$file || true; \
+ cp -pf $(abs_srcdir)/$$file $(abs_builddir)/$$file || true; \
done; \
fi; \
fi
@@ -101,7 +109,7 @@ GTK_DOC_V_INTROSPECT=$(GTK_DOC_V_INTROSPECT_$(V))
GTK_DOC_V_INTROSPECT_=$(GTK_DOC_V_INTROSPECT_$(AM_DEFAULT_VERBOSITY))
GTK_DOC_V_INTROSPECT_0=@echo " DOC Introspecting gobjects";
-scan-build.stamp: $(HFILE_GLOB) $(CFILE_GLOB)
+scan-build.stamp: setup-build.stamp $(HFILE_GLOB) $(CFILE_GLOB)
$(GTK_DOC_V_SCAN)_source_dir='' ; \
for i in $(DOC_SOURCE_DIR) ; do \
_source_dir="$${_source_dir} --source-dir=$$i" ; \
@@ -212,6 +220,9 @@ pdf-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files)
clean-local:
@rm -f *~ *.bak
@rm -rf .libs
+ @if echo $(SCAN_OPTIONS) | grep -q "\-\-rebuild-types" ; then \
+ rm -f $(DOC_MODULE).types; \
+ fi
distclean-local:
@rm -rf xml html $(REPORT_FILES) $(DOC_MODULE).pdf \
@@ -256,15 +267,17 @@ uninstall-local:
#
# Require gtk-doc when making dist
#
-if ENABLE_GTK_DOC
+if HAVE_GTK_DOC
dist-check-gtkdoc: docs
else
dist-check-gtkdoc:
- @echo "*** gtk-doc must be installed and enabled in order to make dist"
+ @echo "*** gtk-doc is needed to run 'make dist'. ***"
+ @echo "*** gtk-doc was not found when 'configure' ran. ***"
+ @echo "*** please install gtk-doc and rerun 'configure'. ***"
@false
endif
-dist-hook: dist-check-gtkdoc dist-hook-local
+dist-hook: dist-check-gtkdoc all-gtk-doc dist-hook-local
@mkdir $(distdir)/html
@cp ./html/* $(distdir)/html
@-cp ./$(DOC_MODULE).pdf $(distdir)/
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/harfbuzz.doap b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/harfbuzz.doap
index d2896ebefa8..d2896ebefa8 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/harfbuzz.doap
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/harfbuzz.doap
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/Makefile.am b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/Makefile.am
index ba07ac5d680..ba07ac5d680 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/Makefile.am
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/Makefile.am
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/check-c-linkage-decls.sh b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/check-c-linkage-decls.sh
index b10310f5384..b10310f5384 100755
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/check-c-linkage-decls.sh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/check-c-linkage-decls.sh
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/check-defs.sh b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/check-defs.sh
index 357347f543a..357347f543a 100755
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/check-defs.sh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/check-defs.sh
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/check-header-guards.sh b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/check-header-guards.sh
index 9a3302c7f87..9a3302c7f87 100755
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/check-header-guards.sh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/check-header-guards.sh
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/check-includes.sh b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/check-includes.sh
index 902f2357e2a..902f2357e2a 100755
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/check-includes.sh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/check-includes.sh
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/check-libstdc++.sh b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/check-libstdc++.sh
index e7e0e295e1a..e7e0e295e1a 100755
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/check-libstdc++.sh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/check-libstdc++.sh
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/check-static-inits.sh b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/check-static-inits.sh
index 83d02c8a9bf..83d02c8a9bf 100755
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/check-static-inits.sh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/check-static-inits.sh
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/check-symbols.sh b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/check-symbols.sh
index e000b01b863..e000b01b863 100755
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/check-symbols.sh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/check-symbols.sh
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/gen-arabic-table.py b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/gen-arabic-table.py
index 308435f991e..308435f991e 100755
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/gen-arabic-table.py
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/gen-arabic-table.py
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/gen-indic-table.py b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/gen-indic-table.py
index 4fb76f445c6..4fb76f445c6 100755
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/gen-indic-table.py
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/gen-indic-table.py
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/harfbuzz-gobject.pc.in b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/harfbuzz-gobject.pc.in
index 70083601901..70083601901 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/harfbuzz-gobject.pc.in
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/harfbuzz-gobject.pc.in
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/harfbuzz-icu.pc.in b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/harfbuzz-icu.pc.in
index 949869a3563..949869a3563 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/harfbuzz-icu.pc.in
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/harfbuzz-icu.pc.in
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/harfbuzz.pc.in b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/harfbuzz.pc.in
index 7f27bbbdef0..7f27bbbdef0 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/harfbuzz.pc.in
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/harfbuzz.pc.in
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-atomic-private.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-atomic-private.hh
index e6738b7d9f6..e6738b7d9f6 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-atomic-private.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-atomic-private.hh
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-blob.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-blob.cc
index b82b4b2a3a3..b82b4b2a3a3 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-blob.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-blob.cc
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-blob.h b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-blob.h
index b2419abfd2a..b2419abfd2a 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-blob.h
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-blob.h
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-buffer-deserialize-json.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-buffer-deserialize-json.hh
index dead700db82..dead700db82 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-buffer-deserialize-json.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-buffer-deserialize-json.hh
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-buffer-deserialize-json.rl b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-buffer-deserialize-json.rl
index 7351b2ab47c..7351b2ab47c 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-buffer-deserialize-json.rl
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-buffer-deserialize-json.rl
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-buffer-deserialize-text.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-buffer-deserialize-text.hh
index a38efe3a415..a38efe3a415 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-buffer-deserialize-text.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-buffer-deserialize-text.hh
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-buffer-deserialize-text.rl b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-buffer-deserialize-text.rl
index 8856580fbe3..8856580fbe3 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-buffer-deserialize-text.rl
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-buffer-deserialize-text.rl
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-buffer-private.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-buffer-private.hh
index 5eccd3c31fc..069f9255811 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-buffer-private.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-buffer-private.hh
@@ -48,15 +48,13 @@ struct hb_buffer_t {
ASSERT_POD ();
/* Information about how the text in the buffer should be treated */
-
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 */
-
hb_buffer_content_type_t content_type;
+ hb_segment_properties_t props; /* Script, language, direction */
bool in_error; /* Allocation failed */
bool have_output; /* Whether we have an output buffer going on */
@@ -183,6 +181,9 @@ struct hb_buffer_t {
inline bool ensure (unsigned int size)
{ return likely (!size || size < allocated) ? true : enlarge (size); }
+ inline bool ensure_inplace (unsigned int size)
+ { return likely (!size || size < allocated); }
+
HB_INTERNAL bool make_room_for (unsigned int num_in, unsigned int num_out);
HB_INTERNAL bool shift_forward (unsigned int count);
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-buffer-serialize.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-buffer-serialize.cc
index 406d69db758..406d69db758 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-buffer-serialize.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-buffer-serialize.cc
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-buffer.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-buffer.cc
index 2377ba40daf..74ae273eeca 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-buffer.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-buffer.cc
@@ -178,6 +178,7 @@ hb_buffer_t::reset (void)
hb_unicode_funcs_destroy (unicode);
unicode = hb_unicode_funcs_get_default ();
+ flags = HB_BUFFER_FLAG_DEFAULT;
replacement = HB_BUFFER_REPLACEMENT_CODEPOINT_DEFAULT;
clear ();
@@ -191,7 +192,6 @@ hb_buffer_t::clear (void)
hb_segment_properties_t default_props = HB_SEGMENT_PROPERTIES_DEFAULT;
props = default_props;
- flags = HB_BUFFER_FLAG_DEFAULT;
content_type = HB_BUFFER_CONTENT_TYPE_INVALID;
in_error = false;
@@ -702,11 +702,11 @@ hb_buffer_get_empty (void)
HB_OBJECT_HEADER_STATIC,
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,
+ HB_SEGMENT_PROPERTIES_DEFAULT,
true, /* in_error */
true, /* have_output */
true /* have_positions */
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-buffer.h b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-buffer.h
index 7b0c9204688..7b0c9204688 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-buffer.h
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-buffer.h
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-cache-private.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-cache-private.hh
index 19b70b7e395..19b70b7e395 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-cache-private.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-cache-private.hh
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-common.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-common.cc
index a089e52cd2c..a6a51447941 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-common.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-common.cc
@@ -234,7 +234,7 @@ struct hb_language_item_t {
static hb_language_item_t *langs;
-#ifdef HAVE_ATEXIT
+#ifdef HB_USE_ATEXIT
static inline
void free_langs (void)
{
@@ -269,7 +269,7 @@ retry:
goto retry;
}
-#ifdef HAVE_ATEXIT
+#ifdef HB_USE_ATEXIT
if (!first_lang)
atexit (free_langs); /* First person registers atexit() callback. */
#endif
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-common.h b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-common.h
index f5141b9eed1..b6ce3f724de 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-common.h
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-common.h
@@ -123,12 +123,13 @@ hb_direction_from_string (const char *str, int len);
const char *
hb_direction_to_string (hb_direction_t direction);
+#define HB_DIRECTION_IS_VALID(dir) ((((unsigned int) (dir)) & ~3U) == 4)
+/* Direction must be valid for the following */
#define HB_DIRECTION_IS_HORIZONTAL(dir) ((((unsigned int) (dir)) & ~1U) == 4)
#define HB_DIRECTION_IS_VERTICAL(dir) ((((unsigned int) (dir)) & ~1U) == 6)
#define HB_DIRECTION_IS_FORWARD(dir) ((((unsigned int) (dir)) & ~2U) == 4)
#define HB_DIRECTION_IS_BACKWARD(dir) ((((unsigned int) (dir)) & ~2U) == 5)
-#define HB_DIRECTION_IS_VALID(dir) ((((unsigned int) (dir)) & ~3U) == 4)
-#define HB_DIRECTION_REVERSE(dir) ((hb_direction_t) (((unsigned int) (dir)) ^ 1)) /* Direction must be valid */
+#define HB_DIRECTION_REVERSE(dir) ((hb_direction_t) (((unsigned int) (dir)) ^ 1))
/* hb_language_t */
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-coretext.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-coretext.cc
index d92c6baaf61..9097cce9b44 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-coretext.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-coretext.cc
@@ -27,6 +27,7 @@
*/
#define HB_SHAPER coretext
+#define hb_coretext_shaper_face_data_t CGFont
#include "hb-shaper-impl-private.hh"
#include "hb-coretext.h"
@@ -77,10 +78,6 @@ HB_SHAPER_DATA_ENSURE_DECLARE(coretext, font)
* shaper face data
*/
-struct hb_coretext_shaper_face_data_t {
- CGFontRef cg_font;
-};
-
static void
release_data (void *info, const void *data, size_t size)
{
@@ -93,13 +90,11 @@ release_data (void *info, const void *data, size_t size)
hb_coretext_shaper_face_data_t *
_hb_coretext_shaper_face_data_create (hb_face_t *face)
{
- hb_coretext_shaper_face_data_t *data = (hb_coretext_shaper_face_data_t *) calloc (1, sizeof (hb_coretext_shaper_face_data_t));
- if (unlikely (!data))
- return NULL;
+ hb_coretext_shaper_face_data_t *data = NULL;
if (face->destroy == (hb_destroy_func_t) CGFontRelease)
{
- data->cg_font = CGFontRetain ((CGFontRef) face->user_data);
+ data = CGFontRetain ((CGFontRef) face->user_data);
}
else
{
@@ -110,14 +105,15 @@ _hb_coretext_shaper_face_data_create (hb_face_t *face)
DEBUG_MSG (CORETEXT, face, "Face has empty blob");
CGDataProviderRef provider = CGDataProviderCreateWithData (blob, blob_data, blob_length, &release_data);
- data->cg_font = CGFontCreateWithDataProvider (provider);
- CGDataProviderRelease (provider);
+ if (likely (provider))
+ {
+ data = CGFontCreateWithDataProvider (provider);
+ CGDataProviderRelease (provider);
+ }
}
- if (unlikely (!data->cg_font)) {
+ if (unlikely (!data)) {
DEBUG_MSG (CORETEXT, face, "Face CGFontCreateWithDataProvider() failed");
- free (data);
- return NULL;
}
return data;
@@ -126,8 +122,7 @@ _hb_coretext_shaper_face_data_create (hb_face_t *face)
void
_hb_coretext_shaper_face_data_destroy (hb_coretext_shaper_face_data_t *data)
{
- CFRelease (data->cg_font);
- free (data);
+ CFRelease (data);
}
CGFontRef
@@ -135,7 +130,7 @@ hb_coretext_face_get_cg_font (hb_face_t *face)
{
if (unlikely (!hb_coretext_shaper_face_data_ensure (face))) return NULL;
hb_coretext_shaper_face_data_t *face_data = HB_SHAPER_DATA_GET (face);
- return face_data->cg_font;
+ return face_data;
}
@@ -159,7 +154,7 @@ _hb_coretext_shaper_font_data_create (hb_font_t *font)
hb_face_t *face = font->face;
hb_coretext_shaper_face_data_t *face_data = HB_SHAPER_DATA_GET (face);
- data->ct_font = CTFontCreateWithGraphicsFont (face_data->cg_font, font->y_scale, NULL, NULL);
+ data->ct_font = CTFontCreateWithGraphicsFont (face_data, font->y_scale, NULL, NULL);
if (unlikely (!data->ct_font)) {
DEBUG_MSG (CORETEXT, font, "Font CTFontCreateWithGraphicsFont() failed");
free (data);
@@ -436,12 +431,29 @@ _hb_coretext_shape (hb_shape_plan_t *shape_plan,
hb_coretext_shaper_face_data_t *face_data = HB_SHAPER_DATA_GET (face);
hb_coretext_shaper_font_data_t *font_data = HB_SHAPER_DATA_GET (font);
+ /* Attach marks to their bases, to match the 'ot' shaper.
+ * Adapted from hb-ot-shape:hb_form_clusters().
+ * Note that this only makes us be closer to the 'ot' shaper,
+ * but by no means the same. For example, if there's
+ * B1 M1 B2 M2, and B1-B2 form a ligature, M2's cluster will
+ * continue pointing to B2 even though B2 was merged into B1's
+ * cluster... */
+ {
+ hb_unicode_funcs_t *unicode = buffer->unicode;
+ unsigned int count = buffer->len;
+ hb_glyph_info_t *info = buffer->info;
+ for (unsigned int i = 1; i < count; i++)
+ if (HB_UNICODE_GENERAL_CATEGORY_IS_MARK (unicode->general_category (info[i].codepoint)))
+ buffer->merge_clusters (i - 1, i + 1);
+ }
+
+ hb_auto_array_t<feature_record_t> feature_records;
+ hb_auto_array_t<range_record_t> range_records;
+
/*
* Set up features.
* (copied + modified from code from hb-uniscribe.cc)
*/
- hb_auto_array_t<feature_record_t> feature_records;
- hb_auto_array_t<range_record_t> range_records;
if (num_features)
{
/* Sort features by start/end events. */
@@ -549,7 +561,6 @@ _hb_coretext_shape (hb_shape_plan_t *shape_plan,
CFRelease (attributes);
range->font = CTFontCreateCopyWithAttributes (font_data->ct_font, 0.0, NULL, font_desc);
-
CFRelease (font_desc);
}
else
@@ -584,32 +595,26 @@ _hb_coretext_shape (hb_shape_plan_t *shape_plan,
num_features = 0;
}
-#define FAIL(...) \
- HB_STMT_START { \
- DEBUG_MSG (CORETEXT, NULL, __VA_ARGS__); \
- return false; \
- } HB_STMT_END;
-
unsigned int scratch_size;
hb_buffer_t::scratch_buffer_t *scratch = buffer->get_scratch_buffer (&scratch_size);
-#define ALLOCATE_ARRAY(Type, name, len) \
+#define ALLOCATE_ARRAY(Type, name, len, on_no_room) \
Type *name = (Type *) scratch; \
{ \
unsigned int _consumed = DIV_CEIL ((len) * sizeof (Type), sizeof (*scratch)); \
- assert (_consumed <= scratch_size); \
+ if (unlikely (_consumed > scratch_size)) \
+ { \
+ on_no_room; \
+ assert (0); \
+ } \
scratch += _consumed; \
scratch_size -= _consumed; \
}
-#define utf16_index() var1.u32
-
- ALLOCATE_ARRAY (UniChar, pchars, buffer->len * 2);
-
+ ALLOCATE_ARRAY (UniChar, pchars, buffer->len * 2, /*nothing*/);
unsigned int chars_len = 0;
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 <= 0xFFFFu))
pchars[chars_len++] = c;
else if (unlikely (c > 0x10FFFFu))
@@ -620,232 +625,439 @@ _hb_coretext_shape (hb_shape_plan_t *shape_plan,
}
}
-#undef utf16_index
+ ALLOCATE_ARRAY (unsigned int, log_clusters, chars_len, /*nothing*/);
+ chars_len = 0;
+ for (unsigned int i = 0; i < buffer->len; i++)
+ {
+ hb_codepoint_t c = buffer->info[i].codepoint;
+ unsigned int cluster = buffer->info[i].cluster;
+ log_clusters[chars_len++] = cluster;
+ if (hb_in_range (c, 0x10000u, 0x10FFFFu))
+ log_clusters[chars_len++] = cluster; /* Surrogates. */
+ }
- CFStringRef string_ref = CFStringCreateWithCharactersNoCopy (NULL,
- pchars, chars_len,
- kCFAllocatorNull);
+#define FAIL(...) \
+ HB_STMT_START { \
+ DEBUG_MSG (CORETEXT, NULL, __VA_ARGS__); \
+ ret = false; \
+ goto fail; \
+ } HB_STMT_END;
- CFMutableAttributedStringRef attr_string = CFAttributedStringCreateMutable (NULL, chars_len);
- CFAttributedStringReplaceString (attr_string, CFRangeMake (0, 0), string_ref);
- CFAttributedStringSetAttribute (attr_string, CFRangeMake (0, chars_len),
- kCTFontAttributeName, font_data->ct_font);
+ bool ret = true;
+ CFStringRef string_ref = NULL;
+ CTLineRef line = NULL;
- if (num_features)
+ if (0)
{
- ALLOCATE_ARRAY (unsigned int, log_clusters, chars_len);
-
- /* Need log_clusters to assign features. */
- chars_len = 0;
- for (unsigned int i = 0; i < buffer->len; i++)
- {
- hb_codepoint_t c = buffer->info[i].codepoint;
- unsigned int cluster = buffer->info[i].cluster;
- log_clusters[chars_len++] = cluster;
- if (hb_in_range (c, 0x10000u, 0x10FFFFu))
- log_clusters[chars_len++] = cluster; /* Surrogates. */
- }
+resize_and_retry:
+ DEBUG_MSG (CORETEXT, buffer, "Buffer resize");
+ /* string_ref uses the scratch-buffer for backing store, and line references
+ * string_ref (via attr_string). We must release those before resizing buffer. */
+ assert (string_ref);
+ assert (line);
+ CFRelease (string_ref);
+ CFRelease (line);
+ string_ref = NULL;
+ line = NULL;
+
+ /* Get previous start-of-scratch-area, that we use later for readjusting
+ * our existing scratch arrays. */
+ unsigned int old_scratch_used;
+ hb_buffer_t::scratch_buffer_t *old_scratch;
+ old_scratch = buffer->get_scratch_buffer (&old_scratch_used);
+ old_scratch_used = scratch - old_scratch;
+
+ if (unlikely (!buffer->ensure (buffer->allocated * 2)))
+ FAIL ("Buffer resize failed");
+
+ /* Adjust scratch, pchars, and log_cluster arrays. This is ugly, but really the
+ * cleanest way to do without completely restructuring the rest of this shaper. */
+ scratch = buffer->get_scratch_buffer (&scratch_size);
+ pchars = reinterpret_cast<UniChar *> (((char *) scratch + ((char *) pchars - (char *) old_scratch)));
+ log_clusters = reinterpret_cast<unsigned int *> (((char *) scratch + ((char *) log_clusters - (char *) old_scratch)));
+ scratch += old_scratch_used;
+ scratch_size -= old_scratch_used;
+ }
+retry:
+ {
+ string_ref = CFStringCreateWithCharactersNoCopy (NULL,
+ pchars, chars_len,
+ kCFAllocatorNull);
+ if (unlikely (!string_ref))
+ FAIL ("CFStringCreateWithCharactersNoCopy failed");
- unsigned int start = 0;
- range_record_t *last_range = &range_records[0];
- for (unsigned int k = 0; k < chars_len; k++)
+ /* Create an attributed string, populate it, and create a line from it, then release attributed string. */
{
- range_record_t *range = last_range;
- while (log_clusters[k] < range->index_first)
- range--;
- while (log_clusters[k] > range->index_last)
- range++;
- if (range != last_range)
+ CFMutableAttributedStringRef attr_string = CFAttributedStringCreateMutable (kCFAllocatorDefault,
+ chars_len);
+ if (unlikely (!attr_string))
+ FAIL ("CFAttributedStringCreateMutable failed");
+ CFAttributedStringReplaceString (attr_string, CFRangeMake (0, 0), string_ref);
+ if (HB_DIRECTION_IS_VERTICAL (buffer->props.direction))
{
- if (last_range->font)
- CFAttributedStringSetAttribute (attr_string, CFRangeMake (start, k - start),
- kCTFontAttributeName, last_range->font);
-
- start = k;
+ CFAttributedStringSetAttribute (attr_string, CFRangeMake (0, chars_len),
+ kCTVerticalFormsAttributeName, kCFBooleanTrue);
}
- last_range = range;
- }
- if (start != chars_len && last_range->font)
- CFAttributedStringSetAttribute (attr_string, CFRangeMake (start, chars_len - start - 1),
- kCTFontAttributeName, last_range->font);
-
- for (unsigned int i = 0; i < range_records.len; i++)
- if (range_records[i].font)
- CFRelease (range_records[i].font);
- }
+ if (buffer->props.language)
+ {
+/* What's the iOS equivalent of this check?
+ * The symbols was introduced in iOS 7.0.
+ * At any rate, our fallback is safe and works fine. */
+#if MAC_OS_X_VERSION_MIN_REQUIRED < 1090
+# define kCTLanguageAttributeName CFSTR ("NSLanguage")
+#endif
+ CFStringRef lang = CFStringCreateWithCStringNoCopy (kCFAllocatorDefault,
+ hb_language_to_string (buffer->props.language),
+ kCFStringEncodingUTF8,
+ kCFAllocatorNull);
+ if (unlikely (!lang))
+ FAIL ("CFStringCreateWithCStringNoCopy failed");
+ CFAttributedStringSetAttribute (attr_string, CFRangeMake (0, chars_len),
+ kCTLanguageAttributeName, lang);
+ CFRelease (lang);
+ }
+ CFAttributedStringSetAttribute (attr_string, CFRangeMake (0, chars_len),
+ kCTFontAttributeName, font_data->ct_font);
- CTLineRef line = CTLineCreateWithAttributedString (attr_string);
- CFRelease (attr_string);
+ if (num_features)
+ {
+ unsigned int start = 0;
+ range_record_t *last_range = &range_records[0];
+ for (unsigned int k = 0; k < chars_len; k++)
+ {
+ range_record_t *range = last_range;
+ while (log_clusters[k] < range->index_first)
+ range--;
+ while (log_clusters[k] > range->index_last)
+ range++;
+ if (range != last_range)
+ {
+ if (last_range->font)
+ CFAttributedStringSetAttribute (attr_string, CFRangeMake (start, k - start),
+ kCTFontAttributeName, last_range->font);
- CFArrayRef glyph_runs = CTLineGetGlyphRuns (line);
- unsigned int num_runs = CFArrayGetCount (glyph_runs);
+ start = k;
+ }
- buffer->len = 0;
+ last_range = range;
+ }
+ if (start != chars_len && last_range->font)
+ CFAttributedStringSetAttribute (attr_string, CFRangeMake (start, chars_len - start),
+ kCTFontAttributeName, last_range->font);
+ }
- const CFRange range_all = CFRangeMake (0, 0);
+ int level = HB_DIRECTION_IS_FORWARD (buffer->props.direction) ? 0 : 1;
+ CFNumberRef level_number = CFNumberCreate (kCFAllocatorDefault, kCFNumberIntType, &level);
+ CFDictionaryRef options = CFDictionaryCreate (kCFAllocatorDefault,
+ (const void **) &kCTTypesetterOptionForcedEmbeddingLevel,
+ (const void **) &level_number,
+ 1,
+ &kCFTypeDictionaryKeyCallBacks,
+ &kCFTypeDictionaryValueCallBacks);
+ if (unlikely (!options))
+ FAIL ("CFDictionaryCreate failed");
+
+ CTTypesetterRef typesetter = CTTypesetterCreateWithAttributedStringAndOptions (attr_string, options);
+ CFRelease (options);
+ CFRelease (attr_string);
+ if (unlikely (!typesetter))
+ FAIL ("CTTypesetterCreateWithAttributedStringAndOptions failed");
+
+ line = CTTypesetterCreateLine (typesetter, CFRangeMake(0, 0));
+ CFRelease (typesetter);
+ if (unlikely (!line))
+ FAIL ("CTTypesetterCreateLine failed");
+ }
- for (unsigned int i = 0; i < num_runs; i++)
- {
- CTRunRef run = (CTRunRef) CFArrayGetValueAtIndex (glyph_runs, i);
-
- /* CoreText does automatic font fallback (AKA "cascading") for characters
- * not supported by the requested font, and provides no way to turn it off,
- * so we detect if the returned run uses a font other than the requested
- * one and fill in the buffer with .notdef glyphs instead of random glyph
- * indices from a different font.
- */
- CFDictionaryRef attributes = CTRunGetAttributes (run);
- CTFontRef run_ct_font = static_cast<CTFontRef>(CFDictionaryGetValue (attributes, kCTFontAttributeName));
- CGFontRef run_cg_font = CTFontCopyGraphicsFont (run_ct_font, 0);
- if (!CFEqual (run_cg_font, face_data->cg_font))
- {
- CFRelease (run_cg_font);
+ CFArrayRef glyph_runs = CTLineGetGlyphRuns (line);
+ unsigned int num_runs = CFArrayGetCount (glyph_runs);
+ DEBUG_MSG (CORETEXT, NULL, "Num runs: %d", num_runs);
- CFRange range = CTRunGetStringRange (run);
- buffer->ensure (buffer->len + range.length);
- if (buffer->in_error)
- FAIL ("Buffer resize failed");
- hb_glyph_info_t *info = buffer->info + buffer->len;
+ buffer->len = 0;
+ uint32_t status_and = ~0, status_or = 0;
- CGGlyph notdef = 0;
- double advance = CTFontGetAdvancesForGlyphs (font_data->ct_font, kCTFontHorizontalOrientation, &notdef, NULL, 1);
+ const CFRange range_all = CFRangeMake (0, 0);
- for (CFIndex j = range.location; j < range.location + range.length; j++)
+ for (unsigned int i = 0; i < num_runs; i++)
+ {
+ CTRunRef run = static_cast<CTRunRef>(CFArrayGetValueAtIndex (glyph_runs, i));
+ CTRunStatus run_status = CTRunGetStatus (run);
+ status_or |= run_status;
+ status_and &= run_status;
+ DEBUG_MSG (CORETEXT, run, "CTRunStatus: %x", run_status);
+
+ /* CoreText does automatic font fallback (AKA "cascading") for characters
+ * not supported by the requested font, and provides no way to turn it off,
+ * so we must detect if the returned run uses a font other than the requested
+ * one and fill in the buffer with .notdef glyphs instead of random glyph
+ * indices from a different font.
+ */
+ CFDictionaryRef attributes = CTRunGetAttributes (run);
+ CTFontRef run_ct_font = static_cast<CTFontRef>(CFDictionaryGetValue (attributes, kCTFontAttributeName));
+ if (!CFEqual (run_ct_font, font_data->ct_font))
+ {
+ /* The run doesn't use our main font instance. We have to figure out
+ * whether font fallback happened, or this is just CoreText giving us
+ * another CTFont using the same underlying CGFont. CoreText seems
+ * to do that in a variety of situations, one of which being vertical
+ * text, but also perhaps for caching reasons.
+ *
+ * First, see if it uses any of our subfonts created to set font features...
+ *
+ * Next, compare the CGFont to the one we used to create our fonts.
+ * Even this doesn't work all the time.
+ *
+ * Finally, we compare PS names, which I don't think are unique...
+ *
+ * Looks like if we really want to be sure here we have to modify the
+ * font to change the name table, similar to what we do in the uniscribe
+ * backend.
+ *
+ * However, even that wouldn't work if we were passed in the CGFont to
+ * begin with.
+ *
+ * Webkit uses a slightly different approach: it installs LastResort
+ * as fallback chain, and then checks PS name of used font against
+ * LastResort. That one is safe for any font except for LastResort,
+ * as opposed to ours, which can fail if we are using any uninstalled
+ * font that has the same name as an installed font.
+ *
+ * See: http://github.com/behdad/harfbuzz/pull/36
+ */
+ bool matched = false;
+ for (unsigned int i = 0; i < range_records.len; i++)
+ if (range_records[i].font && CFEqual (run_ct_font, range_records[i].font))
+ {
+ matched = true;
+ break;
+ }
+ if (!matched)
{
- UniChar ch = CFStringGetCharacterAtIndex (string_ref, j);
- if (hb_in_range<UniChar> (ch, 0xDC00u, 0xDFFFu) && range.location < j)
- {
- ch = CFStringGetCharacterAtIndex (string_ref, j - 1);
- if (hb_in_range<UniChar> (ch, 0xD800u, 0xDBFFu))
- /* This is the second of a surrogate pair. Don't need .notdef
- * for this one. */
- continue;
- }
-
- info->codepoint = notdef;
- /* TODO We have to fixup clusters later. See vis_clusters in
- * hb-uniscribe.cc for example. */
- info->cluster = j;
-
- info->mask = advance;
- info->var1.u32 = 0;
- info->var2.u32 = 0;
-
- info++;
- buffer->len++;
- }
- continue;
- }
- CFRelease (run_cg_font);
+ CGFontRef run_cg_font = CTFontCopyGraphicsFont (run_ct_font, 0);
+ if (run_cg_font)
+ {
+ matched = CFEqual (run_cg_font, face_data);
+ CFRelease (run_cg_font);
+ }
+ }
+ if (!matched)
+ {
+ CFStringRef font_ps_name = CTFontCopyName (font_data->ct_font, kCTFontPostScriptNameKey);
+ CFStringRef run_ps_name = CTFontCopyName (run_ct_font, kCTFontPostScriptNameKey);
+ CFComparisonResult result = CFStringCompare (run_ps_name, font_ps_name, 0);
+ CFRelease (run_ps_name);
+ CFRelease (font_ps_name);
+ if (result == kCFCompareEqualTo)
+ matched = true;
+ }
+ if (!matched)
+ {
+ CFRange range = CTRunGetStringRange (run);
+ DEBUG_MSG (CORETEXT, run, "Run used fallback font: %ld..%ld",
+ range.location, range.location + range.length);
+ if (!buffer->ensure_inplace (buffer->len + range.length))
+ goto resize_and_retry;
+ hb_glyph_info_t *info = buffer->info + buffer->len;
+
+ CGGlyph notdef = 0;
+ double advance = CTFontGetAdvancesForGlyphs (font_data->ct_font, kCTFontHorizontalOrientation, &notdef, NULL, 1);
+
+ unsigned int old_len = buffer->len;
+ for (CFIndex j = range.location; j < range.location + range.length; j++)
+ {
+ UniChar ch = CFStringGetCharacterAtIndex (string_ref, j);
+ if (hb_in_range<UniChar> (ch, 0xDC00u, 0xDFFFu) && range.location < j)
+ {
+ ch = CFStringGetCharacterAtIndex (string_ref, j - 1);
+ if (hb_in_range<UniChar> (ch, 0xD800u, 0xDBFFu))
+ /* This is the second of a surrogate pair. Don't need .notdef
+ * for this one. */
+ continue;
+ }
+
+ info->codepoint = notdef;
+ info->cluster = log_clusters[j];
+
+ info->mask = advance;
+ info->var1.u32 = 0;
+ info->var2.u32 = 0;
+
+ info++;
+ buffer->len++;
+ }
+ if (HB_DIRECTION_IS_BACKWARD (buffer->props.direction))
+ buffer->reverse_range (old_len, buffer->len);
+ continue;
+ }
+ }
- unsigned int num_glyphs = CTRunGetGlyphCount (run);
- if (num_glyphs == 0)
- continue;
+ unsigned int num_glyphs = CTRunGetGlyphCount (run);
+ if (num_glyphs == 0)
+ continue;
- buffer->ensure (buffer->len + num_glyphs);
+ if (!buffer->ensure_inplace (buffer->len + num_glyphs))
+ goto resize_and_retry;
- scratch = buffer->get_scratch_buffer (&scratch_size);
+ hb_glyph_info_t *run_info = buffer->info + buffer->len;
- /* Testing indicates that CTRunGetGlyphsPtr, etc (almost?) always
- * succeed, and so copying data to our own buffer will be rare. */
+ /* Testing used to indicate that CTRunGetGlyphsPtr, etc (almost?) always
+ * succeed, and so copying data to our own buffer will be rare. Reports
+ * have it that this changed in OS X 10.10 Yosemite, and NULL is returned
+ * frequently. At any rate, we can test that codepath by setting USE_PTR
+ * to false. */
- const CGGlyph* glyphs = CTRunGetGlyphsPtr (run);
- if (!glyphs) {
- ALLOCATE_ARRAY (CGGlyph, glyph_buf, num_glyphs);
- CTRunGetGlyphs (run, range_all, glyph_buf);
- glyphs = glyph_buf;
- }
+#define USE_PTR true
- const CGPoint* positions = CTRunGetPositionsPtr (run);
- if (!positions) {
- ALLOCATE_ARRAY (CGPoint, position_buf, num_glyphs);
- CTRunGetPositions (run, range_all, position_buf);
- positions = position_buf;
- }
+#define SCRATCH_SAVE() \
+ unsigned int scratch_size_saved = scratch_size; \
+ hb_buffer_t::scratch_buffer_t *scratch_saved = scratch
- const CFIndex* string_indices = CTRunGetStringIndicesPtr (run);
- if (!string_indices) {
- ALLOCATE_ARRAY (CFIndex, index_buf, num_glyphs);
- CTRunGetStringIndices (run, range_all, index_buf);
- string_indices = index_buf;
- }
+#define SCRATCH_RESTORE() \
+ scratch_size = scratch_size_saved; \
+ scratch = scratch_saved;
+ {
+ SCRATCH_SAVE();
+ const CGGlyph* glyphs = USE_PTR ? CTRunGetGlyphsPtr (run) : NULL;
+ if (!glyphs) {
+ ALLOCATE_ARRAY (CGGlyph, glyph_buf, num_glyphs, goto resize_and_retry);
+ CTRunGetGlyphs (run, range_all, glyph_buf);
+ glyphs = glyph_buf;
+ }
+ const CFIndex* string_indices = USE_PTR ? CTRunGetStringIndicesPtr (run) : NULL;
+ if (!string_indices) {
+ ALLOCATE_ARRAY (CFIndex, index_buf, num_glyphs, goto resize_and_retry);
+ CTRunGetStringIndices (run, range_all, index_buf);
+ string_indices = index_buf;
+ }
+ hb_glyph_info_t *info = run_info;
+ for (unsigned int j = 0; j < num_glyphs; j++)
+ {
+ info->codepoint = glyphs[j];
+ info->cluster = log_clusters[string_indices[j]];
+ info++;
+ }
+ SCRATCH_RESTORE();
+ }
+ {
+ SCRATCH_SAVE();
+ const CGPoint* positions = USE_PTR ? CTRunGetPositionsPtr (run) : NULL;
+ if (!positions) {
+ ALLOCATE_ARRAY (CGPoint, position_buf, num_glyphs, goto resize_and_retry);
+ CTRunGetPositions (run, range_all, position_buf);
+ positions = position_buf;
+ }
+ double run_advance = CTRunGetTypographicBounds (run, range_all, NULL, NULL, NULL);
+ DEBUG_MSG (CORETEXT, run, "Run advance: %g", run_advance);
+ hb_glyph_info_t *info = run_info;
+ if (HB_DIRECTION_IS_HORIZONTAL (buffer->props.direction))
+ {
+ for (unsigned int j = 0; j < num_glyphs; j++)
+ {
+ double advance = (j + 1 < num_glyphs ? positions[j + 1].x : positions[0].x + run_advance) - positions[j].x;
+ info->mask = advance;
+ info->var1.u32 = positions[0].x; /* Yes, zero. */
+ info->var2.u32 = positions[j].y;
+ info++;
+ }
+ }
+ else
+ {
+ run_advance = -run_advance;
+ for (unsigned int j = 0; j < num_glyphs; j++)
+ {
+ double advance = (j + 1 < num_glyphs ? positions[j + 1].y : positions[0].y + run_advance) - positions[j].y;
+ info->mask = advance;
+ info->var1.u32 = positions[j].x;
+ info->var2.u32 = positions[0].y; /* Yes, zero. */
+ info++;
+ }
+ }
+ SCRATCH_RESTORE();
+ }
+#undef SCRATCH_RESTORE
+#undef SCRATCH_SAVE
+#undef USE_PTR
#undef ALLOCATE_ARRAY
- double run_width = CTRunGetTypographicBounds (run, range_all, NULL, NULL, NULL);
-
- for (unsigned int j = 0; j < num_glyphs; j++) {
- double advance = (j + 1 < num_glyphs ? positions[j + 1].x : positions[0].x + run_width) - positions[j].x;
-
- hb_glyph_info_t *info = &buffer->info[buffer->len];
-
- info->codepoint = glyphs[j];
- info->cluster = string_indices[j];
-
- /* Currently, we do all x-positioning by setting the advance, we never use x-offset. */
- info->mask = advance;
- info->var1.u32 = 0;
- info->var2.u32 = positions[j].y;
-
- buffer->len++;
+ buffer->len += num_glyphs;
}
- }
- buffer->clear_positions ();
+ /* Make sure all runs had the expected direction. */
+ bool backward = HB_DIRECTION_IS_BACKWARD (buffer->props.direction);
+ assert (bool (status_and & kCTRunStatusRightToLeft) == backward);
+ assert (bool (status_or & kCTRunStatusRightToLeft) == backward);
- unsigned int count = buffer->len;
- for (unsigned int i = 0; i < count; ++i) {
- hb_glyph_info_t *info = &buffer->info[i];
- hb_glyph_position_t *pos = &buffer->pos[i];
+ buffer->clear_positions ();
- /* TODO vertical */
- pos->x_advance = info->mask;
- pos->x_offset = info->var1.u32;
- pos->y_offset = info->var2.u32;
- }
+ unsigned int count = buffer->len;
+ hb_glyph_info_t *info = buffer->info;
+ hb_glyph_position_t *pos = buffer->pos;
+ if (HB_DIRECTION_IS_HORIZONTAL (buffer->props.direction))
+ for (unsigned int i = 0; i < count; i++)
+ {
+ pos->x_advance = info->mask;
+ pos->x_offset = info->var1.u32;
+ pos->y_offset = info->var2.u32;
+ info++, pos++;
+ }
+ else
+ for (unsigned int i = 0; i < count; i++)
+ {
+ pos->y_advance = info->mask;
+ pos->x_offset = info->var1.u32;
+ pos->y_offset = info->var2.u32;
+ info++, pos++;
+ }
- /* Fix up clusters so that we never return out-of-order indices;
- * if core text has reordered glyphs, we'll merge them to the
- * beginning of the reordered cluster.
- *
- * This does *not* mean we'll form the same clusters as Uniscribe
- * or the native OT backend, only that the cluster indices will be
- * monotonic in the output buffer. */
- if (HB_DIRECTION_IS_FORWARD (buffer->props.direction)) {
- unsigned int prev_cluster = 0;
- for (unsigned int i = 0; i < count; i++) {
- unsigned int curr_cluster = buffer->info[i].cluster;
- if (curr_cluster < prev_cluster) {
- for (unsigned int j = i; j > 0; j--) {
- if (buffer->info[j - 1].cluster > curr_cluster)
- buffer->info[j - 1].cluster = curr_cluster;
- else
- break;
- }
+ /* Fix up clusters so that we never return out-of-order indices;
+ * if core text has reordered glyphs, we'll merge them to the
+ * beginning of the reordered cluster. CoreText is nice enough
+ * to tell us whenever it has produced nonmonotonic results...
+ * Note that we assume the input clusters were nonmonotonic to
+ * begin with.
+ *
+ * This does *not* mean we'll form the same clusters as Uniscribe
+ * or the native OT backend, only that the cluster indices will be
+ * monotonic in the output buffer. */
+ if (count > 1 && (status_or & kCTRunStatusNonMonotonic))
+ {
+ hb_glyph_info_t *info = buffer->info;
+ if (HB_DIRECTION_IS_FORWARD (buffer->props.direction))
+ {
+ unsigned int cluster = info[count - 1].cluster;
+ for (unsigned int i = count - 1; i > 0; i--)
+ {
+ cluster = MIN (cluster, info[i - 1].cluster);
+ info[i - 1].cluster = cluster;
+ }
}
- prev_cluster = curr_cluster;
- }
- } else {
- unsigned int prev_cluster = (unsigned int)-1;
- for (unsigned int i = 0; i < count; i++) {
- unsigned int curr_cluster = buffer->info[i].cluster;
- if (curr_cluster > prev_cluster) {
- for (unsigned int j = i; j > 0; j--) {
- if (buffer->info[j - 1].cluster < curr_cluster)
- buffer->info[j - 1].cluster = curr_cluster;
- else
- break;
- }
+ else
+ {
+ unsigned int cluster = info[0].cluster;
+ for (unsigned int i = 1; i < count; i++)
+ {
+ cluster = MIN (cluster, info[i].cluster);
+ info[i].cluster = cluster;
+ }
}
- prev_cluster = curr_cluster;
}
}
- CFRelease (string_ref);
- CFRelease (line);
+#undef FAIL
+
+fail:
+ if (string_ref)
+ CFRelease (string_ref);
+ if (line)
+ CFRelease (line);
+
+ for (unsigned int i = 0; i < range_records.len; i++)
+ if (range_records[i].font)
+ CFRelease (range_records[i].font);
- return true;
+ return ret;
}
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-coretext.h b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-coretext.h
index 25267bc9784..25267bc9784 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-coretext.h
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-coretext.h
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-deprecated.h b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-deprecated.h
index 30ae4b1caf7..30ae4b1caf7 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-deprecated.h
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-deprecated.h
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-face-private.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-face-private.hh
index 6520d3dbdff..6520d3dbdff 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-face-private.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-face-private.hh
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-face.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-face.cc
index 9348af7bf8e..9348af7bf8e 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-face.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-face.cc
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-face.h b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-face.h
index f682c468de5..f682c468de5 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-face.h
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-face.h
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-fallback-shape.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-fallback-shape.cc
index 9d061a9e845..9d061a9e845 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-fallback-shape.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-fallback-shape.cc
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-font-private.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-font-private.hh
index 33bbf7143a2..33bbf7143a2 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-font-private.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-font-private.hh
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-font.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-font.cc
index 4364ca72fb0..4364ca72fb0 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-font.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-font.cc
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-font.h b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-font.h
index 7273db43eda..7273db43eda 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-font.h
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-font.h
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ft.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ft.cc
index 44e0b0bc2a5..16bf51f569f 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ft.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ft.cc
@@ -455,7 +455,7 @@ retry:
goto retry;
}
-#ifdef HAVE_ATEXIT
+#ifdef HB_USE_ATEXIT
atexit (free_ft_library); /* First person registers atexit() callback. */
#endif
}
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ft.h b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ft.h
index 696251e143f..696251e143f 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ft.h
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ft.h
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-glib.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-glib.cc
index af43cab7113..af43cab7113 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-glib.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-glib.cc
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-glib.h b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-glib.h
index 63a9d3366c5..63a9d3366c5 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-glib.h
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-glib.h
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-gobject-enums.cc.tmpl b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-gobject-enums.cc.tmpl
index ca458a3846c..ca458a3846c 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-gobject-enums.cc.tmpl
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-gobject-enums.cc.tmpl
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-gobject-enums.h.tmpl b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-gobject-enums.h.tmpl
index 6ecda06c2a6..6ecda06c2a6 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-gobject-enums.h.tmpl
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-gobject-enums.h.tmpl
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-gobject-structs.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-gobject-structs.cc
index 2451b66291b..2451b66291b 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-gobject-structs.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-gobject-structs.cc
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-gobject-structs.h b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-gobject-structs.h
index 4a88d569e8d..4a88d569e8d 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-gobject-structs.h
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-gobject-structs.h
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-gobject.h b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-gobject.h
index ea1bd25df82..ea1bd25df82 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-gobject.h
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-gobject.h
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-graphite2.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-graphite2.cc
index 709aa94419c..807c3308771 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-graphite2.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-graphite2.cc
@@ -274,8 +274,8 @@ _hb_graphite2_shape (hb_shape_plan_t *shape_plan,
while ((DIV_CEIL (sizeof (hb_graphite2_cluster_t) * buffer->len, sizeof (*scratch)) +
DIV_CEIL (sizeof (hb_codepoint_t) * glyph_count, sizeof (*scratch))) > scratch_size)
{
- buffer->ensure (buffer->allocated * 2);
- if (unlikely (buffer->in_error)) {
+ if (unlikely (!buffer->ensure (buffer->allocated * 2)))
+ {
if (feats) gr_featureval_destroy (feats);
gr_seg_destroy (seg);
return false;
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-graphite2.h b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-graphite2.h
index 3eae54acbd8..3eae54acbd8 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-graphite2.h
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-graphite2.h
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-icu.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-icu.cc
index 86c8b5cc5a2..86c8b5cc5a2 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-icu.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-icu.cc
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-icu.h b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-icu.h
index f2f35f0f2ce..f2f35f0f2ce 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-icu.h
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-icu.h
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-mutex-private.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-mutex-private.hh
index eaa21695082..62812019585 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-mutex-private.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-mutex-private.hh
@@ -46,7 +46,7 @@
#include <windows.h>
typedef CRITICAL_SECTION hb_mutex_impl_t;
-#define HB_MUTEX_IMPL_INIT { NULL, 0, 0, NULL, NULL, 0 }
+#define HB_MUTEX_IMPL_INIT {0}
#define hb_mutex_impl_init(M) InitializeCriticalSection (M)
#define hb_mutex_impl_lock(M) EnterCriticalSection (M)
#define hb_mutex_impl_unlock(M) LeaveCriticalSection (M)
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-object-private.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-object-private.hh
index 8a9ae34dbee..8a9ae34dbee 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-object-private.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-object-private.hh
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-open-file-private.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-open-file-private.hh
index 57db59db84a..57db59db84a 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-open-file-private.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-open-file-private.hh
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-open-type-private.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-open-type-private.hh
index 475187bae31..475187bae31 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-open-type-private.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-open-type-private.hh
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ot-cmap-table.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ot-cmap-table.hh
index d53141157d0..d53141157d0 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ot-cmap-table.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ot-cmap-table.hh
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ot-font.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ot-font.cc
index c9890c59228..c9890c59228 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ot-font.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ot-font.cc
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ot-font.h b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ot-font.h
index 7a8c04ac33d..7a8c04ac33d 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ot-font.h
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ot-font.h
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ot-head-table.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ot-head-table.hh
index ec4e8c9d453..ec4e8c9d453 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ot-head-table.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ot-head-table.hh
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ot-hhea-table.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ot-hhea-table.hh
index d433200165c..d433200165c 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ot-hhea-table.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ot-hhea-table.hh
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ot-hmtx-table.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ot-hmtx-table.hh
index e918e3b3f40..e918e3b3f40 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ot-hmtx-table.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ot-hmtx-table.hh
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ot-layout-common-private.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ot-layout-common-private.hh
index abd063c8961..abd063c8961 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ot-layout-common-private.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ot-layout-common-private.hh
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ot-layout-gdef-table.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ot-layout-gdef-table.hh
index 84a5e797c63..84a5e797c63 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ot-layout-gdef-table.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ot-layout-gdef-table.hh
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ot-layout-gpos-table.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ot-layout-gpos-table.hh
index 8e2860c9131..8e2860c9131 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ot-layout-gpos-table.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ot-layout-gpos-table.hh
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ot-layout-gsub-table.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ot-layout-gsub-table.hh
index 2b421a94f54..2b421a94f54 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ot-layout-gsub-table.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ot-layout-gsub-table.hh
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ot-layout-gsubgpos-private.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ot-layout-gsubgpos-private.hh
index 546ff4b0fde..546ff4b0fde 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ot-layout-gsubgpos-private.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ot-layout-gsubgpos-private.hh
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ot-layout-jstf-table.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ot-layout-jstf-table.hh
index 67a6df5b421..67a6df5b421 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ot-layout-jstf-table.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ot-layout-jstf-table.hh
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ot-layout-private.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ot-layout-private.hh
index ae7daa6dbc9..ae7daa6dbc9 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ot-layout-private.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ot-layout-private.hh
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ot-layout.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ot-layout.cc
index 661d90ea0d6..661d90ea0d6 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ot-layout.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ot-layout.cc
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ot-layout.h b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ot-layout.h
index 949678ac422..949678ac422 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ot-layout.h
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ot-layout.h
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ot-map-private.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ot-map-private.hh
index 86b7e9fafea..86b7e9fafea 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ot-map-private.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ot-map-private.hh
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ot-map.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ot-map.cc
index 4985eb22b20..4985eb22b20 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ot-map.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ot-map.cc
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ot-maxp-table.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ot-maxp-table.hh
index b1f832852d3..b1f832852d3 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ot-maxp-table.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ot-maxp-table.hh
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ot-name-table.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ot-name-table.hh
index 31d9fac7e29..31d9fac7e29 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ot-name-table.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ot-name-table.hh
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ot-shape-complex-arabic-fallback.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ot-shape-complex-arabic-fallback.hh
index e5b7ed489c0..e5b7ed489c0 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ot-shape-complex-arabic-fallback.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ot-shape-complex-arabic-fallback.hh
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ot-shape-complex-arabic-table.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ot-shape-complex-arabic-table.hh
index d41d6ce598e..17100497ecb 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ot-shape-complex-arabic-table.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ot-shape-complex-arabic-table.hh
@@ -70,7 +70,7 @@ static const uint8_t joining_table[] =
/* 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,
+ /* 0840 */ R,D,D,D,D,D,R,R,D,R,D,D,D,D,D,D,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,
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ot-shape-complex-arabic-win1256.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ot-shape-complex-arabic-win1256.hh
index 63ed3f8e0ef..63ed3f8e0ef 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ot-shape-complex-arabic-win1256.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ot-shape-complex-arabic-win1256.hh
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ot-shape-complex-arabic.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ot-shape-complex-arabic.cc
index 6cf1a7f5907..ae908641271 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ot-shape-complex-arabic.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ot-shape-complex-arabic.cc
@@ -223,8 +223,8 @@ data_create_arabic (const hb_ot_shape_plan_t *plan)
for (unsigned int i = 0; i < ARABIC_NUM_FEATURES; i++) {
arabic_plan->mask_array[i] = plan->map.get_1_mask (arabic_features[i]);
arabic_plan->do_fallback = arabic_plan->do_fallback &&
- !FEATURE_IS_SYRIAC (arabic_features[i]) &&
- plan->map.needs_fallback (arabic_features[i]);
+ (FEATURE_IS_SYRIAC (arabic_features[i]) ||
+ plan->map.needs_fallback (arabic_features[i]));
}
return arabic_plan;
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ot-shape-complex-default.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ot-shape-complex-default.cc
index f7f097eedaa..f7f097eedaa 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ot-shape-complex-default.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ot-shape-complex-default.cc
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ot-shape-complex-hangul.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ot-shape-complex-hangul.cc
index 6ac18b08bff..6ac18b08bff 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ot-shape-complex-hangul.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ot-shape-complex-hangul.cc
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ot-shape-complex-hebrew.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ot-shape-complex-hebrew.cc
index c7b7a5eba6a..c7b7a5eba6a 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ot-shape-complex-hebrew.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ot-shape-complex-hebrew.cc
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ot-shape-complex-indic-machine.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ot-shape-complex-indic-machine.hh
index 5fbdcc8366e..5fbdcc8366e 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ot-shape-complex-indic-machine.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ot-shape-complex-indic-machine.hh
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ot-shape-complex-indic-machine.rl b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ot-shape-complex-indic-machine.rl
index f6768a581f2..f6768a581f2 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ot-shape-complex-indic-machine.rl
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ot-shape-complex-indic-machine.rl
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ot-shape-complex-indic-private.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ot-shape-complex-indic-private.hh
index d8dfc6507d9..d8dfc6507d9 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ot-shape-complex-indic-private.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ot-shape-complex-indic-private.hh
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ot-shape-complex-indic-table.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ot-shape-complex-indic-table.cc
index f58380e0c8a..f58380e0c8a 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ot-shape-complex-indic-table.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ot-shape-complex-indic-table.cc
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ot-shape-complex-indic.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ot-shape-complex-indic.cc
index 7723600410a..7723600410a 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ot-shape-complex-indic.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ot-shape-complex-indic.cc
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ot-shape-complex-myanmar-machine.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ot-shape-complex-myanmar-machine.hh
index bb80d7a705d..bb80d7a705d 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ot-shape-complex-myanmar-machine.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ot-shape-complex-myanmar-machine.hh
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ot-shape-complex-myanmar-machine.rl b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ot-shape-complex-myanmar-machine.rl
index 9649a916f02..9649a916f02 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ot-shape-complex-myanmar-machine.rl
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ot-shape-complex-myanmar-machine.rl
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ot-shape-complex-myanmar.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ot-shape-complex-myanmar.cc
index d016380cc63..d016380cc63 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ot-shape-complex-myanmar.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ot-shape-complex-myanmar.cc
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ot-shape-complex-private.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ot-shape-complex-private.hh
index 9a7afcbd7b1..9a7afcbd7b1 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ot-shape-complex-private.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ot-shape-complex-private.hh
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ot-shape-complex-sea-machine.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ot-shape-complex-sea-machine.hh
index 86b7ae7d5ca..86b7ae7d5ca 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ot-shape-complex-sea-machine.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ot-shape-complex-sea-machine.hh
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ot-shape-complex-sea-machine.rl b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ot-shape-complex-sea-machine.rl
index 46140fc4d5f..46140fc4d5f 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ot-shape-complex-sea-machine.rl
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ot-shape-complex-sea-machine.rl
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ot-shape-complex-sea.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ot-shape-complex-sea.cc
index f08b7ccb9f4..f08b7ccb9f4 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ot-shape-complex-sea.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ot-shape-complex-sea.cc
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ot-shape-complex-thai.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ot-shape-complex-thai.cc
index feb7fc7a148..feb7fc7a148 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ot-shape-complex-thai.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ot-shape-complex-thai.cc
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ot-shape-complex-tibetan.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ot-shape-complex-tibetan.cc
index 01465a426f8..01465a426f8 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ot-shape-complex-tibetan.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ot-shape-complex-tibetan.cc
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ot-shape-fallback-private.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ot-shape-fallback-private.hh
index ec653513f1b..ec653513f1b 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ot-shape-fallback-private.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ot-shape-fallback-private.hh
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ot-shape-fallback.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ot-shape-fallback.cc
index 80d7da82f38..80d7da82f38 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ot-shape-fallback.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ot-shape-fallback.cc
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ot-shape-normalize-private.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ot-shape-normalize-private.hh
index c744e26451d..c744e26451d 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ot-shape-normalize-private.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ot-shape-normalize-private.hh
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ot-shape-normalize.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ot-shape-normalize.cc
index 4287253aed1..4287253aed1 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ot-shape-normalize.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ot-shape-normalize.cc
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ot-shape-private.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ot-shape-private.hh
index 54ac2c3cf7c..54ac2c3cf7c 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ot-shape-private.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ot-shape-private.hh
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ot-shape.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ot-shape.cc
index a0b503ab0f2..a0b503ab0f2 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ot-shape.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ot-shape.cc
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ot-shape.h b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ot-shape.h
index 1402f54acc5..1402f54acc5 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ot-shape.h
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ot-shape.h
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ot-tag.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ot-tag.cc
index 878dd79b62c..878dd79b62c 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ot-tag.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ot-tag.cc
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ot-tag.h b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ot-tag.h
index 1bf12ab3c09..1bf12ab3c09 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ot-tag.h
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ot-tag.h
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ot.h b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ot.h
index 47c92a58e4b..47c92a58e4b 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ot.h
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ot.h
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-private.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-private.hh
index 5a4ca69915e..80fd6c473c7 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-private.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-private.hh
@@ -96,6 +96,8 @@
#if (defined(__WIN32__) && !defined(__WINE__)) || defined(_MSC_VER)
#define snprintf _snprintf
+/* Windows CE only has _strdup, while rest of Windows has both. */
+#define strdup _strdup
#endif
#ifdef _MSC_VER
@@ -130,6 +132,39 @@
# define STRICT
#endif
+#ifdef _WIN32_WCE
+/* Some things not defined on Windows CE. */
+#define MemoryBarrier()
+#define getenv(Name) NULL
+#define setlocale(Category, Locale) "C"
+static int errno = 0; /* Use something better? */
+#endif
+
+#if HAVE_ATEXIT
+/* atexit() is only safe to be called from shared libraries on certain
+ * platforms. Whitelist.
+ * https://bugs.freedesktop.org/show_bug.cgi?id=82246 */
+# if defined(__linux) && defined(__GLIBC_PREREQ)
+# if __GLIBC_PREREQ(2,3)
+/* From atexit() manpage, it's safe with glibc 2.2.3 on Linux. */
+# define HB_USE_ATEXIT 1
+# endif
+# elif defined(_MSC_VER) || defined(__MINGW32__)
+/* For MSVC:
+ * http://msdn.microsoft.com/en-ca/library/tze57ck3.aspx
+ * http://msdn.microsoft.com/en-ca/library/zk17ww08.aspx
+ * mingw32 headers say atexit is safe to use in shared libraries.
+ */
+# define HB_USE_ATEXIT 1
+# elif defined(__ANDROID__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6))
+/* This was fixed in Android NKD r8 or r8b:
+ * https://code.google.com/p/android/issues/detail?id=6455
+ * which introduced GCC 4.6:
+ * https://developer.android.com/tools/sdk/ndk/index.html
+ */
+# define HB_USE_ATEXIT 1
+# endif
+#endif
/* Basics */
@@ -593,6 +628,15 @@ _hb_debug_msg_va (const char *what,
unsigned int level,
int level_dir,
const char *message,
+ va_list ap) HB_PRINTF_FUNC(7, 0);
+template <int max_level> static inline void
+_hb_debug_msg_va (const char *what,
+ const void *obj,
+ const char *func,
+ bool indented,
+ unsigned int level,
+ int level_dir,
+ const char *message,
va_list ap)
{
if (!_hb_debug (level, max_level))
@@ -815,7 +859,9 @@ hb_in_range (T u, T lo, T hi)
* to generate a warning than unused variables. */
ASSERT_STATIC (sizeof (hb_assert_unsigned_t<T>) >= 0);
- return (u - lo) <= (hi - lo);
+ /* The casts below are important as if T is smaller than int,
+ * the subtract results will become a signed int! */
+ return (T)(u - lo) <= (T)(hi - lo);
}
template <typename T> static inline bool
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-set-private.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-set-private.hh
index 705f554ce69..705f554ce69 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-set-private.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-set-private.hh
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-set.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-set.cc
index 59a0af46ed4..59a0af46ed4 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-set.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-set.cc
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-set.h b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-set.h
index bafdae96333..bafdae96333 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-set.h
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-set.h
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-shape-plan-private.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-shape-plan-private.hh
index 607da5e7791..607da5e7791 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-shape-plan-private.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-shape-plan-private.hh
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-shape-plan.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-shape-plan.cc
index 5ffc6b1362e..2166173f9e5 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-shape-plan.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-shape-plan.cc
@@ -29,6 +29,12 @@
#include "hb-font-private.hh"
#include "hb-buffer-private.hh"
+
+#ifndef HB_DEBUG_SHAPE_PLAN
+#define HB_DEBUG_SHAPE_PLAN (HB_DEBUG+0)
+#endif
+
+
#define HB_SHAPER_IMPLEMENT(shaper) \
HB_SHAPER_DATA_ENSURE_DECLARE(shaper, face) \
HB_SHAPER_DATA_ENSURE_DECLARE(shaper, font)
@@ -42,6 +48,11 @@ hb_shape_plan_plan (hb_shape_plan_t *shape_plan,
unsigned int num_user_features,
const char * const *shaper_list)
{
+ DEBUG_MSG_FUNC (SHAPE_PLAN, shape_plan,
+ "num_features=%d shaper_list=%p",
+ num_user_features,
+ shaper_list);
+
const hb_shaper_pair_t *shapers = _hb_shapers_get ();
#define HB_SHAPER_PLAN(shaper) \
@@ -104,6 +115,12 @@ hb_shape_plan_create (hb_face_t *face,
unsigned int num_user_features,
const char * const *shaper_list)
{
+ DEBUG_MSG_FUNC (SHAPE_PLAN, NULL,
+ "face=%p num_features=%d shaper_list=%p",
+ face,
+ num_user_features,
+ shaper_list);
+
hb_shape_plan_t *shape_plan;
hb_feature_t *features = NULL;
@@ -271,6 +288,11 @@ hb_shape_plan_execute (hb_shape_plan_t *shape_plan,
const hb_feature_t *features,
unsigned int num_features)
{
+ DEBUG_MSG_FUNC (SHAPE_PLAN, shape_plan,
+ "num_features=%d shaper_func=%p",
+ num_features,
+ shape_plan->shaper_func);
+
if (unlikely (hb_object_is_inert (shape_plan) ||
hb_object_is_inert (font) ||
hb_object_is_inert (buffer)))
@@ -383,6 +405,12 @@ hb_shape_plan_create_cached (hb_face_t *face,
unsigned int num_user_features,
const char * const *shaper_list)
{
+ DEBUG_MSG_FUNC (SHAPE_PLAN, NULL,
+ "face=%p num_features=%d shaper_list=%p",
+ face,
+ num_user_features,
+ shaper_list);
+
hb_shape_plan_proposal_t proposal = {
*props,
shaper_list,
@@ -392,25 +420,22 @@ hb_shape_plan_create_cached (hb_face_t *face,
};
if (shaper_list) {
- /* Choose shaper. Adapted from hb_shape_plan_plan(). */
-#define HB_SHAPER_PLAN(shaper) \
- HB_STMT_START { \
- if (hb_##shaper##_shaper_face_data_ensure (face)) \
- proposal.shaper_func = _hb_##shaper##_shape; \
- } HB_STMT_END
-
+ /* Choose shaper. Adapted from hb_shape_plan_plan().
+ * Must choose shaper exactly the same way as that function. */
for (const char * const *shaper_item = shaper_list; *shaper_item; shaper_item++)
if (0)
;
#define HB_SHAPER_IMPLEMENT(shaper) \
- else if (0 == strcmp (*shaper_item, #shaper)) \
- HB_SHAPER_PLAN (shaper);
+ else if (0 == strcmp (*shaper_item, #shaper) && \
+ hb_##shaper##_shaper_face_data_ensure (face)) \
+ { \
+ proposal.shaper_func = _hb_##shaper##_shape; \
+ break; \
+ }
#include "hb-shaper-list.hh"
#undef HB_SHAPER_IMPLEMENT
-#undef HB_SHAPER_PLAN
-
- if (unlikely (!proposal.shaper_list))
+ if (unlikely (!proposal.shaper_func))
return hb_shape_plan_get_empty ();
}
@@ -419,7 +444,10 @@ retry:
hb_face_t::plan_node_t *cached_plan_nodes = (hb_face_t::plan_node_t *) hb_atomic_ptr_get (&face->shape_plans);
for (hb_face_t::plan_node_t *node = cached_plan_nodes; node; node = node->next)
if (hb_shape_plan_matches (node->shape_plan, &proposal))
+ {
+ DEBUG_MSG_FUNC (SHAPE_PLAN, node->shape_plan, "fulfilled from cache");
return hb_shape_plan_reference (node->shape_plan);
+ }
/* Not found. */
@@ -442,6 +470,7 @@ retry:
free (node);
goto retry;
}
+ DEBUG_MSG_FUNC (SHAPE_PLAN, shape_plan, "inserted into cache");
return hb_shape_plan_reference (shape_plan);
}
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-shape-plan.h b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-shape-plan.h
index 8f54552f90b..8f54552f90b 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-shape-plan.h
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-shape-plan.h
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-shape.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-shape.cc
index 812cf5919be..74747f88b89 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-shape.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-shape.cc
@@ -320,7 +320,7 @@ retry:
goto retry;
}
-#ifdef HAVE_ATEXIT
+#ifdef HB_USE_ATEXIT
atexit (free_static_shaper_list); /* First person registers atexit() callback. */
#endif
}
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-shape.h b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-shape.h
index 10a35cb517e..10a35cb517e 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-shape.h
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-shape.h
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-shaper-impl-private.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-shaper-impl-private.hh
index 7844081e95b..7844081e95b 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-shaper-impl-private.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-shaper-impl-private.hh
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-shaper-list.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-shaper-list.hh
index 6c537d49215..6c537d49215 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-shaper-list.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-shaper-list.hh
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-shaper-private.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-shaper-private.hh
index 29c4493943d..29c4493943d 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-shaper-private.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-shaper-private.hh
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-shaper.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-shaper.cc
index 44f718aa702..6ae26013821 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-shaper.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-shaper.cc
@@ -100,7 +100,7 @@ retry:
goto retry;
}
-#ifdef HAVE_ATEXIT
+#ifdef HB_USE_ATEXIT
atexit (free_static_shapers); /* First person registers atexit() callback. */
#endif
}
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ucdn.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ucdn.cc
index 5b53821f923..5b53821f923 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-ucdn.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-ucdn.cc
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-unicode-private.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-unicode-private.hh
index a2c59da274a..a2c59da274a 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-unicode-private.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-unicode-private.hh
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-unicode.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-unicode.cc
index d59dfb24572..d59dfb24572 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-unicode.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-unicode.cc
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-unicode.h b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-unicode.h
index 1c4e097b92d..1c4e097b92d 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-unicode.h
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-unicode.h
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-uniscribe.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-uniscribe.cc
index 6bf87a5f45b..74ae3a39481 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-uniscribe.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-uniscribe.cc
@@ -245,7 +245,7 @@ retry:
goto retry;
}
-#ifdef HAVE_ATEXIT
+#ifdef HB_USE_ATEXIT
atexit (free_uniscribe_funcs); /* First person registers atexit() callback. */
#endif
}
@@ -903,8 +903,7 @@ retry:
FAIL ("ScriptShapeOpenType() set fNoGlyphIndex");
if (unlikely (hr == E_OUTOFMEMORY))
{
- buffer->ensure (buffer->allocated * 2);
- if (buffer->in_error)
+ if (unlikely (!buffer->ensure (buffer->allocated * 2)))
FAIL ("Buffer resize failed");
goto retry;
}
@@ -973,8 +972,7 @@ retry:
#undef utf16_index
- buffer->ensure (glyphs_len);
- if (buffer->in_error)
+ if (unlikely (!buffer->ensure (glyphs_len)))
FAIL ("Buffer in error");
#undef FAIL
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-uniscribe.h b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-uniscribe.h
index 001ab38ea87..001ab38ea87 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-uniscribe.h
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-uniscribe.h
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-utf-private.hh b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-utf-private.hh
index 0b798a05c30..0b798a05c30 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-utf-private.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-utf-private.hh
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-version.h.in b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-version.h.in
index 2517160d18b..2517160d18b 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-version.h.in
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-version.h.in
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-warning.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-warning.cc
index e0f88e2d4ad..e0f88e2d4ad 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb-warning.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb-warning.cc
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb.h b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb.h
index c5a938a3818..c5a938a3818 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/hb.h
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/hb.h
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/main.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/main.cc
index f9708cc948e..f9708cc948e 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/main.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/main.cc
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/test-buffer-serialize.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/test-buffer-serialize.cc
index 18c46e9524b..18c46e9524b 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/test-buffer-serialize.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/test-buffer-serialize.cc
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/test-size-params.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/test-size-params.cc
index 35d9e3c8e25..35d9e3c8e25 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/test-size-params.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/test-size-params.cc
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/test-would-substitute.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/test-would-substitute.cc
index 8ea87cdf397..8ea87cdf397 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/test-would-substitute.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/test-would-substitute.cc
diff --git a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/test.cc b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/test.cc
index a8fe046f34c..a8fe046f34c 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-0.9.34/src/test.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-0.9.35/src/test.cc
diff --git a/Build/source/libs/harfbuzz/version.ac b/Build/source/libs/harfbuzz/version.ac
index 8e94cbcd496..cb9d1b839bf 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.34])
+m4_define([harfbuzz_version], [0.9.35])