texlive[51949] Build/source/libs: harfbuzz 2.6.1
commits+kakuto at tug.org
commits+kakuto at tug.org
Sat Aug 24 15:13:59 CEST 2019
Revision: 51949
http://tug.org/svn/texlive?view=revision&revision=51949
Author: kakuto
Date: 2019-08-24 15:13:59 +0200 (Sat, 24 Aug 2019)
Log Message:
-----------
harfbuzz 2.6.1
Modified Paths:
--------------
trunk/Build/source/libs/README
trunk/Build/source/libs/harfbuzz/ChangeLog
trunk/Build/source/libs/harfbuzz/TLpatches/ChangeLog
trunk/Build/source/libs/harfbuzz/TLpatches/TL-Changes
trunk/Build/source/libs/harfbuzz/configure
trunk/Build/source/libs/harfbuzz/harfbuzz-src/ChangeLog
trunk/Build/source/libs/harfbuzz/harfbuzz-src/NEWS
trunk/Build/source/libs/harfbuzz/harfbuzz-src/README
trunk/Build/source/libs/harfbuzz/harfbuzz-src/README.md
trunk/Build/source/libs/harfbuzz/harfbuzz-src/configure.ac
trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-aat-layout-lcar-table.hh
trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-aat-layout-opbd-table.hh
trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-aat-layout-trak-table.hh
trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-coretext.cc
trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-directwrite.cc
trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-directwrite.h
trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-font.cc
trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-font.h
trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-cff2-table.cc
trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-cmap-table.hh
trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-layout.cc
trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-shape-complex-indic.cc
trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-shape-complex-khmer.cc
trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-shape-complex-myanmar.cc
trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-shape-complex-use.cc
trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-shape.cc
trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-var-avar-table.hh
trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-var-fvar-table.hh
trunk/Build/source/libs/harfbuzz/version.ac
Modified: trunk/Build/source/libs/README
===================================================================
--- trunk/Build/source/libs/README 2019-08-24 10:48:43 UTC (rev 51948)
+++ trunk/Build/source/libs/README 2019-08-24 13:13:59 UTC (rev 51949)
@@ -25,7 +25,7 @@
http://sourceforge.net/projects/silgraphite/files/graphite2/
(requires C++11)
-harfbuzz 2.6.0 - checked 15aug19
+harfbuzz 2.6.1 - checked 24aug19
http://www.freedesktop.org/software/harfbuzz/release/
icu 63.1 - checked 8jan19
Modified: trunk/Build/source/libs/harfbuzz/ChangeLog
===================================================================
--- trunk/Build/source/libs/harfbuzz/ChangeLog 2019-08-24 10:48:43 UTC (rev 51948)
+++ trunk/Build/source/libs/harfbuzz/ChangeLog 2019-08-24 13:13:59 UTC (rev 51949)
@@ -1,3 +1,8 @@
+2019-08-24 Akira Kakuto <kakuto at w32tex.org>
+
+ Import harfbuzz-2.6.1.
+ * version.ac: Adjusted.
+
2019-08-15 Akira Kakuto <kakuto at w32tex.org>
Import harfbuzz-2.6.0.
Modified: trunk/Build/source/libs/harfbuzz/TLpatches/ChangeLog
===================================================================
--- trunk/Build/source/libs/harfbuzz/TLpatches/ChangeLog 2019-08-24 10:48:43 UTC (rev 51948)
+++ trunk/Build/source/libs/harfbuzz/TLpatches/ChangeLog 2019-08-24 13:13:59 UTC (rev 51949)
@@ -1,3 +1,8 @@
+2019-08-24 Akira Kakuto <kakuto at w32tex.org>
+
+ Imported harfbuzz-2.6.1 source tree from:
+ http://www.freedesktop.org/software/harfbuzz/release/
+
2019-08-15 Akira Kakuto <kakuto at w32tex.org>
Imported harfbuzz-2.6.0 source tree from:
Modified: trunk/Build/source/libs/harfbuzz/TLpatches/TL-Changes
===================================================================
--- trunk/Build/source/libs/harfbuzz/TLpatches/TL-Changes 2019-08-24 10:48:43 UTC (rev 51948)
+++ trunk/Build/source/libs/harfbuzz/TLpatches/TL-Changes 2019-08-24 13:13:59 UTC (rev 51949)
@@ -1,4 +1,4 @@
-Changes applied to the harfbuzz-2.6.0/ tree as obtained from:
+Changes applied to the harfbuzz-2.6.1/ tree as obtained from:
http://www.freedesktop.org/software/harfbuzz/release/
Removed:
Modified: trunk/Build/source/libs/harfbuzz/configure
===================================================================
--- trunk/Build/source/libs/harfbuzz/configure 2019-08-24 10:48:43 UTC (rev 51948)
+++ trunk/Build/source/libs/harfbuzz/configure 2019-08-24 13:13:59 UTC (rev 51949)
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for harfbuzz (TeX Live) 2.6.0.
+# Generated by GNU Autoconf 2.69 for harfbuzz (TeX Live) 2.6.1.
#
# Report bugs to <tex-k at tug.org>.
#
@@ -580,8 +580,8 @@
# Identity of this package.
PACKAGE_NAME='harfbuzz (TeX Live)'
PACKAGE_TARNAME='harfbuzz--tex-live-'
-PACKAGE_VERSION='2.6.0'
-PACKAGE_STRING='harfbuzz (TeX Live) 2.6.0'
+PACKAGE_VERSION='2.6.1'
+PACKAGE_STRING='harfbuzz (TeX Live) 2.6.1'
PACKAGE_BUGREPORT='tex-k at tug.org'
PACKAGE_URL=''
@@ -1311,7 +1311,7 @@
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures harfbuzz (TeX Live) 2.6.0 to adapt to many kinds of systems.
+\`configure' configures harfbuzz (TeX Live) 2.6.1 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1382,7 +1382,7 @@
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of harfbuzz (TeX Live) 2.6.0:";;
+ short | recursive ) echo "Configuration of harfbuzz (TeX Live) 2.6.1:";;
esac
cat <<\_ACEOF
@@ -1487,7 +1487,7 @@
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-harfbuzz (TeX Live) configure 2.6.0
+harfbuzz (TeX Live) configure 2.6.1
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2123,7 +2123,7 @@
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by harfbuzz (TeX Live) $as_me 2.6.0, which was
+It was created by harfbuzz (TeX Live) $as_me 2.6.1, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@@ -4047,7 +4047,7 @@
# Define the identity of the package.
PACKAGE='harfbuzz--tex-live-'
- VERSION='2.6.0'
+ VERSION='2.6.1'
# Some tools Automake needs.
@@ -4241,8 +4241,8 @@
HB_VERSION_MAJOR=2
HB_VERSION_MINOR=6
-HB_VERSION_MICRO=0
-HB_VERSION=2.6.0
+HB_VERSION_MICRO=1
+HB_VERSION=2.6.1
ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
@@ -7919,7 +7919,7 @@
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by harfbuzz (TeX Live) $as_me 2.6.0, which was
+This file was extended by harfbuzz (TeX Live) $as_me 2.6.1, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -7985,7 +7985,7 @@
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-harfbuzz (TeX Live) config.status 2.6.0
+harfbuzz (TeX Live) config.status 2.6.1
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
Modified: trunk/Build/source/libs/harfbuzz/harfbuzz-src/ChangeLog
===================================================================
--- trunk/Build/source/libs/harfbuzz/harfbuzz-src/ChangeLog 2019-08-24 10:48:43 UTC (rev 51948)
+++ trunk/Build/source/libs/harfbuzz/harfbuzz-src/ChangeLog 2019-08-24 13:13:59 UTC (rev 51949)
@@ -1,3 +1,279 @@
+commit be97e9d678017d4ec66625fa2b17ef3485552cad
+Author: Behdad Esfahbod <behdad at behdad.org>
+Date: Thu Aug 22 15:52:24 2019 -0700
+
+ 2.6.1
+
+ NEWS | 11 +++++++++++
+ configure.ac | 2 +-
+ src/hb-version.h | 4 ++--
+ 3 files changed, 14 insertions(+), 3 deletions(-)
+
+commit d304d60e4d49df14ed85d6646680085f27bafbf2
+Author: Behdad Esfahbod <behdad at behdad.org>
+Date: Wed Aug 21 12:30:22 2019 -0700
+
+ [ot-font] Prefer symbol cmap subtable if found
+
+ Fixes https://github.com/harfbuzz/harfbuzz/issues/1918
+
+ Hopefully doesn't break anyone...
+
+ src/hb-ot-cmap-table.hh | 16 +++++++++-------
+ 1 file changed, 9 insertions(+), 7 deletions(-)
+
+commit 2a3d4987a75fb2cd51ccf4c1d08baba383ceda7b
+Author: Ebrahim Byagowi <ebrahim at gnu.org>
+Date: Wed Aug 21 03:02:01 2019 +0430
+
+ Remove hb_directwrite_shape_experimental_width public API
+
+ I had specially exposed the API as I didn't know how to embed harfbuzz
+ easily elsewhere but now with harfbuzz.cc it has become very easy
+ and I don't like to see its use anywhere as it has a bad naming and
+ its Kashida adding is bogus and only useful to check where it should
+ be added, not visually useful however.
+
+ src/hb-directwrite.cc | 29 ++++++-----------------------
+ src/hb-directwrite.h | 5 -----
+ 2 files changed, 6 insertions(+), 28 deletions(-)
+
+commit 163a66dc737645852d7515381304d69706688e16
+Author: Behdad Esfahbod <behdad at behdad.org>
+Date: Tue Aug 20 14:22:57 2019 -0700
+
+ [test] Add test for aaa85931f3542639cd9d0dfb92fd6baab5b0298d
+
+ test/api/test-shape.c | 48 ++++++++++++++++++++++++++++++------------------
+ 1 file changed, 30 insertions(+), 18 deletions(-)
+
+commit aaa85931f3542639cd9d0dfb92fd6baab5b0298d
+Author: Behdad Esfahbod <behdad at behdad.org>
+Date: Tue Aug 20 13:06:10 2019 -0700
+
+ [font] Update multipliers when creating sub_font
+
+ Fixes https://github.com/harfbuzz/harfbuzz/issues/1910
+
+ src/hb-font.cc | 1 +
+ 1 file changed, 1 insertion(+)
+
+commit bbad1b8298125d78c159ed7fdd7bde6a3f3fff56
+Author: Ebrahim Byagowi <ebrahim at gnu.org>
+Date: Tue Aug 20 14:46:48 2019 +0430
+
+ [trak] minor, use roundf instead round to normalize the use
+
+ The change to `round` wasn't intended
+
+ src/hb-aat-layout-trak-table.hh | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+commit e67cb500e9c5f6717d0d1cd152de84d88ec7370e
+Author: Ebrahim Byagowi <ebrahim at gnu.org>
+Date: Tue Aug 20 13:30:34 2019 +0430
+
+ [readme] add oss-fuzz badge
+
+ Related:
+ https://github.com/google/oss-fuzz/pull/2513
+ https://github.com/systemd/systemd/commit/ce2098b7e9443cd6f31fb70af7f72308cd2962a3
+
+ README.md | 1 +
+ 1 file changed, 1 insertion(+)
+
+commit d59d89b28128cf644d76098c709b9309b834eb09
+Author: Ebrahim Byagowi <ebrahim at gnu.org>
+Date: Tue Aug 20 13:07:17 2019 +0430
+
+ [test] Rebase 10.14 trak related test
+
+ test/shaping/data/in-house/tests/macos.tests | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 20b1a27c8a319d43a582c3efa8233b9f2c3cc73e
+Merge: 5ee1e451 37de38ad
+Author: Ebrahim Byagowi <ebrahim at gnu.org>
+Date: Tue Aug 20 13:04:51 2019 +0430
+
+ Merge remove-coretext-96dpi-assumption, @drott
+
+ Remove assumption about Core Text working in 96 DPI
+
+commit 37de38adeae48e1855c2431a39639db873a74554
+Merge: f401f85a 5ee1e451
+Author: Ebrahim Byagowi <ebrahim at gnu.org>
+Date: Tue Aug 20 12:59:33 2019 +0430
+
+ Merge branch 'master' into remove-coretext-96dpi-assumption
+
+commit 5ee1e451cfc75dc6ddbc3ae300ba7394a0cd560e
+Author: Behdad Esfahbod <behdad at behdad.org>
+Date: Mon Aug 19 14:23:17 2019 -0700
+
+ Minor touch-up for recent change
+
+ src/hb-ot-var-avar-table.hh | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+commit 33489928444b94bdd2cc523dac14707eb29d667e
+Author: Ebrahim Byagowi <ebrahim at gnu.org>
+Date: Wed Aug 7 20:07:58 2019 +0430
+
+ [avar] Implement inverse map, unmap
+
+ src/hb-ot-var-avar-table.hh | 30 ++++++++++++++++++++++++------
+ 1 file changed, 24 insertions(+), 6 deletions(-)
+
+commit 981f5a54c3cbc1de45ba941fdf5315c62d86b6f3
+Author: Ebrahim Byagowi <ebrahim at gnu.org>
+Date: Wed Aug 7 18:45:39 2019 +0430
+
+ [fvar] Implement inverse normalize, unnormalize
+
+ src/hb-ot-var-fvar-table.hh | 14 ++++++++++++++
+ 1 file changed, 14 insertions(+)
+
+commit dcb4cd400fb44172872a20ba54baa011d748b61d
+Author: Behdad Esfahbod <behdad at behdad.org>
+Date: Mon Aug 19 11:35:37 2019 -0700
+
+ Minor
+
+ src/hb-font.cc | 4 +---
+ 1 file changed, 1 insertion(+), 3 deletions(-)
+
+commit ca54440324745afc388edac40ad1047e92567fdb
+Author: Ebrahim Byagowi <ebrahim at gnu.org>
+Date: Sun Aug 18 11:58:04 2019 +0430
+
+ Remove continuous development helper script
+
+ Not have used it personally for a long time, lets remove it
+
+ src/dev-run.sh | 99 ----------------------------------------------------------
+ 1 file changed, 99 deletions(-)
+
+commit 40aef1b473f63701ab901880d764e33682f13414
+Author: Khaled Hosny <khaledhosny at eglug.org>
+Date: Fri Aug 16 01:00:30 2019 +0200
+
+ [ot-shape] Keep horizontal_features array sorted
+
+ src/hb-ot-shape.cc | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit da5118da77898ae4778af1ace4af52334b210dd6
+Author: Khaled Hosny <khaledhosny at eglug.org>
+Date: Fri Aug 16 00:48:26 2019 +0200
+
+ [ot-shape] Enable abvm/blwm features by default
+
+ Core Text seems to apply them to Latin text, but Uniscribe doesn’t.
+
+ See https://github.com/harfbuzz/harfbuzz/pull/1908#issuecomment-521819343
+
+ src/hb-ot-shape-complex-indic.cc | 9 ---------
+ src/hb-ot-shape-complex-khmer.cc | 9 ---------
+ src/hb-ot-shape-complex-myanmar.cc | 21 ---------------------
+ src/hb-ot-shape-complex-use.cc | 14 --------------
+ src/hb-ot-shape.cc | 2 ++
+ test/shaping/data/in-house/Makefile.sources | 2 +-
+ .../ea3f63620511b2097200d23774ffef197e829e69.ttf | Bin 0 -> 1804 bytes
+ .../f79eb71df4e4c9c273b67b89a06e5ff9e3c1f834.ttf | Bin 0 -> 1860 bytes
+ test/shaping/data/in-house/tests/dist.tests | 1 -
+ .../data/in-house/tests/positioning-features.tests | 3 +++
+ 10 files changed, 6 insertions(+), 55 deletions(-)
+
+commit 2164bd6f29df265acdc04b84f5f94cf63b2cea8a
+Author: Khaled Hosny <khaledhosny at eglug.org>
+Date: Fri Aug 16 00:28:41 2019 +0200
+
+ [ot-shape] Enable dist feature by default (#1908)
+
+ Fixes https://github.com/harfbuzz/harfbuzz/issues/1907
+
+ src/hb-ot-shape-complex-indic.cc | 2 --
+ src/hb-ot-shape-complex-khmer.cc | 2 --
+ src/hb-ot-shape-complex-myanmar.cc | 1 -
+ src/hb-ot-shape-complex-use.cc | 1 -
+ src/hb-ot-shape.cc | 1 +
+ test/shaping/data/in-house/Makefile.sources | 1 +
+ .../fonts/53a91c20e33a596f2be17fb68b382d6b7eb85d5c.ttf | Bin 0 -> 2020 bytes
+ test/shaping/data/in-house/tests/dist.tests | 1 +
+ 8 files changed, 3 insertions(+), 6 deletions(-)
+
+commit bc27f86ffef537835f6c9dbbecbc2ee6792cb127
+Author: Ebrahim Byagowi <ebrahim at gnu.org>
+Date: Wed Aug 14 22:37:00 2019 +0430
+
+ Move HB_NO_VAR to a better place in hb-font.cc
+
+ Needed for other works
+
+ src/hb-font.cc | 5 ++---
+ 1 file changed, 2 insertions(+), 3 deletions(-)
+
+commit 1cc844da66ab527991ff96efdf10d97f6b626bfe
+Author: Ebrahim Byagowi <ebrahim at gnu.org>
+Date: Wed Aug 14 19:10:02 2019 +0430
+
+ minor
+
+ Use hb_font_t coords directly
+
+ src/hb-ot-cff2-table.cc | 4 +---
+ 1 file changed, 1 insertion(+), 3 deletions(-)
+
+commit 6a194b6876db12f083ae5391ca01972168d4e68a
+Author: Ebrahim Byagowi <ebrahim at gnu.org>
+Date: Wed Aug 14 18:49:57 2019 +0430
+
+ Minor, remove trailing spaces in hb-font.{cc,h} as .editorconfig
+
+ src/hb-font.cc | 338 ++++++++++++++++++++++++++++-----------------------------
+ src/hb-font.h | 26 ++---
+ 2 files changed, 182 insertions(+), 182 deletions(-)
+
+commit 3ae44645d60fe8271ad18b004434d475eaeb7ad6
+Author: Ebrahim Byagowi <ebrahim at gnu.org>
+Date: Wed Aug 14 14:34:55 2019 +0430
+
+ Fix caret_count value when AAT is disabled
+
+ Set caret_count to zero as that is what we want to happen inside lcar when
+ there is no result.
+
+ src/hb-ot-layout.cc | 6 +++++-
+ 1 file changed, 5 insertions(+), 1 deletion(-)
+
+commit a5aa67b9f288687e21ca7a9887483f7fe1cbce54
+Author: Ebrahim Byagowi <ebrahim at gnu.org>
+Date: Wed Aug 14 14:29:01 2019 +0430
+
+ [lcar] Use multiformat convention
+
+ src/hb-aat-layout-lcar-table.hh | 115 +++++++++++++++++++++++++++++++---------
+ 1 file changed, 90 insertions(+), 25 deletions(-)
+
+commit bfffe85dd7d7557e10ec9f9886b86fe0d8b4a7a2
+Author: Ebrahim Byagowi <ebrahim at gnu.org>
+Date: Wed Aug 14 13:55:49 2019 +0430
+
+ [opbd] Use multiformat convention on the table
+
+ src/hb-aat-layout-opbd-table.hh | 116 ++++++++++++++++++++++++++++++----------
+ 1 file changed, 89 insertions(+), 27 deletions(-)
+
+commit d6206dbcc4e4ef8c034ee714e74d3a76c5333a12
+Author: Ebrahim Byagowi <ebrahim at gnu.org>
+Date: Wed Aug 14 11:24:06 2019 +0430
+
+ [opbd] Turn OpticalBounds fields to FWORD
+
+ src/hb-aat-layout-opbd-table.hh | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
commit 6461143b44f81a4190d3f1cb02238750536f08e4
Author: Behdad Esfahbod <behdad at behdad.org>
Date: Tue Aug 13 22:20:54 2019 -0700
@@ -15661,6 +15937,49 @@
src/hb-machinery.hh | 10 +++-------
1 file changed, 3 insertions(+), 7 deletions(-)
+commit f401f85a5a3ec4ab9c28012a0bfe713d7ee96951
+Author: Tor Arne Vestbø <tor.arne.vestbo at qt.io>
+Date: Mon Dec 17 00:48:35 2018 +0100
+
+ Remove assumption about Core Text working in 96 DPI
+
+ Core Text doesn't actually have a concept of DPI internally, as it
+ doesn't rasterize anything by itself, it just generates vector paths
+ that get passed along to Core Graphics.
+
+ In practice this means Core Text operates in the classical macOS
+ logical DPI of 72, with one typographic point corresponding to one
+ point in the Core Graphics coordinate system, which for a normal
+ bitmap context then corresponds to one pixel -- or two pixels for
+ a "retina" context with a 2x scale transform.
+
+ Scaling the font point sizes given to HarfBuzz to an assumed DPI
+ of 96 is problematic with this in mind, as fonts with optical
+ features such as 'trak' tables for tracking, or color glyphs,
+ will then base the metrics off of the wrong point size compared
+ to what the client asked for.
+
+ This in turn causes mismatches between the metrics of the shaped
+ text and the actual rasterization, which doesn't include the 72
+ to 96 DPI scaling.
+
+ If a 96 DPI is needed, such as on the Web, the scaling should be
+ done outside of HarfBuzz, allowing the client to keep the DPI of
+ the shaping in sync with the rasterization.
+
+ The recommended way to do that is by scaling the font point size,
+ not by applying a transform to the target Core Graphics context,
+ to let Core Text choose the right optical features of the target
+ point size, as described in WWDC 2015 session 804:
+
+ https://developer.apple.com/videos/play/wwdc2015/804/
+
+ src/hb-aat-layout-trak-table.hh | 11 ++---------
+ src/hb-coretext.cc | 25 ++++---------------------
+ test/shaping/data/in-house/tests/aat-trak.tests | 14 +++++++-------
+ test/shaping/data/in-house/tests/macos.tests | 4 ++--
+ 4 files changed, 15 insertions(+), 39 deletions(-)
+
commit 0d2727f4fe734af146785df10a44e3505e410ba1
Author: Behdad Esfahbod <behdad at behdad.org>
Date: Mon Jan 14 18:23:17 2019 -0800
Modified: trunk/Build/source/libs/harfbuzz/harfbuzz-src/NEWS
===================================================================
--- trunk/Build/source/libs/harfbuzz/harfbuzz-src/NEWS 2019-08-24 10:48:43 UTC (rev 51948)
+++ trunk/Build/source/libs/harfbuzz/harfbuzz-src/NEWS 2019-08-24 13:13:59 UTC (rev 51949)
@@ -1,3 +1,14 @@
+Overview of changes leading to 2.6.1
+Thursday, August 22, 2019
+====================================
+- Fix regression with hb_font_create_sub_font scaling introduced in 2.6.0.
+- Change interpretation of font PTEM size / CoreText font size handling.
+ See https://github.com/harfbuzz/harfbuzz/pull/1484
+- hb-ot-font: Prefer symbol cmap subtable if present.
+- Apply 'dist'/'abvm'/'blwm' features to all scripts.
+- Drop experimental DirectWrite API.
+
+
Overview of changes leading to 2.6.0
Tuesday, August 13, 2019
====================================
Modified: trunk/Build/source/libs/harfbuzz/harfbuzz-src/README
===================================================================
--- trunk/Build/source/libs/harfbuzz/harfbuzz-src/README 2019-08-24 10:48:43 UTC (rev 51948)
+++ trunk/Build/source/libs/harfbuzz/harfbuzz-src/README 2019-08-24 13:13:59 UTC (rev 51949)
@@ -1,6 +1,7 @@
[![Travis Build Status](https://travis-ci.org/harfbuzz/harfbuzz.svg?branch=master)](https://travis-ci.org/harfbuzz/harfbuzz)
[![AppVeyor Build Status](https://ci.appveyor.com/api/projects/status/0t0flrxpstj9lb9w?svg=true&branch=master)](https://ci.appveyor.com/project/harfbuzz/harfbuzz)
[![CircleCI Build Status](https://circleci.com/gh/harfbuzz/harfbuzz/tree/master.svg?style=svg)](https://circleci.com/gh/harfbuzz/harfbuzz/tree/master)
+[![OSS-Fuzz Status](https://oss-fuzz-build-logs.storage.googleapis.com/badges/harfbuzz.svg)](https://oss-fuzz-build-logs.storage.googleapis.com/index.html)
[![Coverity Code Health](https://img.shields.io/coverity/scan/5450.svg)](https://scan.coverity.com/projects/behdad-harfbuzz)
[![Codacy Code Health](https://api.codacy.com/project/badge/Grade/f17f1708783c447488bc8dd317150eaa)](https://app.codacy.com/app/behdad/harfbuzz)
[![Codecov Code Coverage](https://codecov.io/gh/harfbuzz/harfbuzz/branch/master/graph/badge.svg)](https://codecov.io/gh/harfbuzz/harfbuzz)
Modified: trunk/Build/source/libs/harfbuzz/harfbuzz-src/README.md
===================================================================
--- trunk/Build/source/libs/harfbuzz/harfbuzz-src/README.md 2019-08-24 10:48:43 UTC (rev 51948)
+++ trunk/Build/source/libs/harfbuzz/harfbuzz-src/README.md 2019-08-24 13:13:59 UTC (rev 51949)
@@ -1,6 +1,7 @@
[![Travis Build Status](https://travis-ci.org/harfbuzz/harfbuzz.svg?branch=master)](https://travis-ci.org/harfbuzz/harfbuzz)
[![AppVeyor Build Status](https://ci.appveyor.com/api/projects/status/0t0flrxpstj9lb9w?svg=true&branch=master)](https://ci.appveyor.com/project/harfbuzz/harfbuzz)
[![CircleCI Build Status](https://circleci.com/gh/harfbuzz/harfbuzz/tree/master.svg?style=svg)](https://circleci.com/gh/harfbuzz/harfbuzz/tree/master)
+[![OSS-Fuzz Status](https://oss-fuzz-build-logs.storage.googleapis.com/badges/harfbuzz.svg)](https://oss-fuzz-build-logs.storage.googleapis.com/index.html)
[![Coverity Code Health](https://img.shields.io/coverity/scan/5450.svg)](https://scan.coverity.com/projects/behdad-harfbuzz)
[![Codacy Code Health](https://api.codacy.com/project/badge/Grade/f17f1708783c447488bc8dd317150eaa)](https://app.codacy.com/app/behdad/harfbuzz)
[![Codecov Code Coverage](https://codecov.io/gh/harfbuzz/harfbuzz/branch/master/graph/badge.svg)](https://codecov.io/gh/harfbuzz/harfbuzz)
Modified: trunk/Build/source/libs/harfbuzz/harfbuzz-src/configure.ac
===================================================================
--- trunk/Build/source/libs/harfbuzz/harfbuzz-src/configure.ac 2019-08-24 10:48:43 UTC (rev 51948)
+++ trunk/Build/source/libs/harfbuzz/harfbuzz-src/configure.ac 2019-08-24 13:13:59 UTC (rev 51949)
@@ -1,6 +1,6 @@
AC_PREREQ([2.64])
AC_INIT([HarfBuzz],
- [2.6.0],
+ [2.6.1],
[https://github.com/harfbuzz/harfbuzz/issues/new],
[harfbuzz],
[http://harfbuzz.org/])
Modified: trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-aat-layout-lcar-table.hh
===================================================================
--- trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-aat-layout-lcar-table.hh 2019-08-24 10:48:43 UTC (rev 51948)
+++ trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-aat-layout-lcar-table.hh 2019-08-24 13:13:59 UTC (rev 51949)
@@ -38,56 +38,121 @@
typedef ArrayOf<HBINT16> LigCaretClassEntry;
-struct lcar
+struct lcarFormat0
{
- static constexpr hb_tag_t tableTag = HB_AAT_TAG_lcar;
+ unsigned int get_lig_carets (hb_font_t *font,
+ hb_direction_t direction,
+ hb_codepoint_t glyph,
+ unsigned int start_offset,
+ unsigned int *caret_count /* IN/OUT */,
+ hb_position_t *caret_array /* OUT */,
+ const void *base) const
+ {
+ const OffsetTo<LigCaretClassEntry>* entry_offset = lookupTable.get_value (glyph,
+ font->face->get_num_glyphs ());
+ const LigCaretClassEntry& array = entry_offset ? base+*entry_offset : Null (LigCaretClassEntry);
+ if (caret_count)
+ {
+ hb_array_t<const HBINT16> arr = array.sub_array (start_offset, caret_count);
+ for (unsigned int i = 0; i < arr.length; ++i)
+ caret_array[i] = font->em_scale_dir (arr[i], direction);
+ }
+ return array.len;
+ }
+ bool sanitize (hb_sanitize_context_t *c, const void *base) const
+ {
+ TRACE_SANITIZE (this);
+ return_trace (likely (c->check_struct (this) && lookupTable.sanitize (c, base)));
+ }
+
+ protected:
+ Lookup<OffsetTo<LigCaretClassEntry>>
+ lookupTable; /* data Lookup table associating glyphs */
+ public:
+ DEFINE_SIZE_MIN (2);
+};
+
+struct lcarFormat1
+{
unsigned int get_lig_carets (hb_font_t *font,
hb_direction_t direction,
hb_codepoint_t glyph,
unsigned int start_offset,
unsigned int *caret_count /* IN/OUT */,
- hb_position_t *caret_array /* OUT */) const
+ hb_position_t *caret_array /* OUT */,
+ const void *base) const
{
- const OffsetTo<LigCaretClassEntry>* entry_offset = lookup.get_value (glyph,
- font->face->get_num_glyphs ());
- const LigCaretClassEntry& array = entry_offset ? this+*entry_offset : Null (LigCaretClassEntry);
+ const OffsetTo<LigCaretClassEntry>* entry_offset = lookupTable.get_value (glyph,
+ font->face->get_num_glyphs ());
+ const LigCaretClassEntry& array = entry_offset ? base+*entry_offset : Null (LigCaretClassEntry);
if (caret_count)
{
hb_array_t<const HBINT16> arr = array.sub_array (start_offset, caret_count);
- switch (format)
+ for (unsigned int i = 0; i < arr.length; ++i)
{
- case 0:
- for (unsigned int i = 0; i < arr.length; ++i)
- caret_array[i] = font->em_scale_dir (arr[i], direction);
- break;
- case 1:
- for (unsigned int i = 0; i < arr.length; ++i)
- {
- hb_position_t x, y;
- font->get_glyph_contour_point_for_origin (glyph, arr[i], direction, &x, &y);
- caret_array[i] = HB_DIRECTION_IS_HORIZONTAL (direction) ? x : y;
- }
- break;
+ hb_position_t x = 0, y = 0;
+ font->get_glyph_contour_point_for_origin (glyph, arr[i], direction, &x, &y);
+ caret_array[i] = HB_DIRECTION_IS_HORIZONTAL (direction) ? x : y;
}
}
return array.len;
}
+ bool sanitize (hb_sanitize_context_t *c, const void *base) const
+ {
+ TRACE_SANITIZE (this);
+ return_trace (likely (c->check_struct (this) && lookupTable.sanitize (c, base)));
+ }
+
+ protected:
+ Lookup<OffsetTo<LigCaretClassEntry>>
+ lookupTable; /* data Lookup table associating glyphs */
+ public:
+ DEFINE_SIZE_MIN (2);
+};
+
+struct lcar
+{
+ static constexpr hb_tag_t tableTag = HB_AAT_TAG_lcar;
+
+ unsigned int get_lig_carets (hb_font_t *font,
+ hb_direction_t direction,
+ hb_codepoint_t glyph,
+ unsigned int start_offset,
+ unsigned int *caret_count /* IN/OUT */,
+ hb_position_t *caret_array /* OUT */) const
+ {
+ switch (format)
+ {
+ case 0: return u.format0.get_lig_carets (font, direction, glyph, start_offset,
+ caret_count, caret_array, this);
+ case 1: return u.format1.get_lig_carets (font, direction, glyph, start_offset,
+ caret_count, caret_array, this);
+ default:if (caret_count) *caret_count = 0; return 0;
+ }
+ }
+
bool sanitize (hb_sanitize_context_t *c) const
{
TRACE_SANITIZE (this);
- return_trace (likely (c->check_struct (this) &&
- version.major == 1 &&
- lookup.sanitize (c, this)));
+ if (unlikely (!c->check_struct (this) || version.major != 1))
+ return_trace (false);
+
+ switch (format) {
+ case 0: return_trace (u.format0.sanitize (c, this));
+ case 1: return_trace (u.format1.sanitize (c, this));
+ default:return_trace (true);
+ }
}
protected:
FixedVersion<>version; /* Version number of the ligature caret table */
HBUINT16 format; /* Format of the ligature caret table. */
- Lookup<OffsetTo<LigCaretClassEntry>>
- lookup; /* data Lookup table associating glyphs */
-
+ union {
+ lcarFormat0 format0;
+ lcarFormat0 format1;
+ } u;
public:
DEFINE_SIZE_MIN (8);
};
Modified: trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-aat-layout-opbd-table.hh
===================================================================
--- trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-aat-layout-opbd-table.hh 2019-08-24 10:48:43 UTC (rev 51948)
+++ trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-aat-layout-opbd-table.hh 2019-08-24 13:13:59 UTC (rev 51949)
@@ -45,50 +45,112 @@
return_trace (likely (c->check_struct (this)));
}
- HBINT16 leftSide;
- HBINT16 topSide;
- HBINT16 rightSide;
- HBINT16 bottomSide;
+ FWORD leftSide;
+ FWORD topSide;
+ FWORD rightSide;
+ FWORD bottomSide;
public:
DEFINE_SIZE_STATIC (8);
};
-struct opbd
+struct opbdFormat0
{
- static constexpr hb_tag_t tableTag = HB_AAT_TAG_opbd;
+ bool get_bounds (hb_font_t *font, hb_codepoint_t glyph_id,
+ hb_glyph_extents_t *extents, const void *base) const
+ {
+ const OffsetTo<OpticalBounds> *bounds_offset = lookupTable.get_value (glyph_id, font->face->get_num_glyphs ());
+ if (!bounds_offset) return false;
+ const OpticalBounds &bounds = base+*bounds_offset;
- bool get_optical_bounds (hb_font_t *font, hb_codepoint_t glyph_id,
- hb_position_t *left, hb_position_t *top,
- hb_position_t *right, hb_position_t *bottom) const
+ if (extents)
+ *extents = {
+ font->em_scale_x (bounds.leftSide),
+ font->em_scale_y (bounds.topSide),
+ font->em_scale_x (bounds.rightSide),
+ font->em_scale_y (bounds.bottomSide)
+ };
+ return true;
+ }
+
+ bool sanitize (hb_sanitize_context_t *c, const void *base) const
{
+ TRACE_SANITIZE (this);
+ return_trace (likely (c->check_struct (this) && lookupTable.sanitize (c, base)));
+ }
+
+ protected:
+ Lookup<OffsetTo<OpticalBounds>>
+ lookupTable; /* Lookup table associating glyphs with the four
+ * int16 values for the left-side, top-side,
+ * right-side, and bottom-side optical bounds. */
+ public:
+ DEFINE_SIZE_MIN (2);
+};
+
+struct opbdFormat1
+{
+ bool get_bounds (hb_font_t *font, hb_codepoint_t glyph_id,
+ hb_glyph_extents_t *extents, const void *base) const
+ {
const OffsetTo<OpticalBounds> *bounds_offset = lookupTable.get_value (glyph_id, font->face->get_num_glyphs ());
if (!bounds_offset) return false;
- const OpticalBounds &bounds = this+*bounds_offset;
- switch (format)
+ const OpticalBounds &bounds = base+*bounds_offset;
+
+ hb_position_t left = 0, top = 0, right = 0, bottom = 0, ignore;
+ if (font->get_glyph_contour_point (glyph_id, bounds.leftSide, &left, &ignore) ||
+ font->get_glyph_contour_point (glyph_id, bounds.topSide, &ignore, &top) ||
+ font->get_glyph_contour_point (glyph_id, bounds.rightSide, &right, &ignore) ||
+ font->get_glyph_contour_point (glyph_id, bounds.bottomSide, &ignore, &bottom))
{
- case 0:
- *left = font->em_scale_x (bounds.leftSide);
- *top = font->em_scale_y (bounds.topSide);
- *right = font->em_scale_x (bounds.rightSide);
- *bottom = font->em_scale_y (bounds.bottomSide);
+ if (extents)
+ *extents = {left, top, right, bottom};
return true;
- case 1:
- hb_position_t ignore;
- return font->get_glyph_contour_point (glyph_id, bounds.leftSide, left, &ignore) &&
- font->get_glyph_contour_point (glyph_id, bounds.topSide, &ignore, top) &&
- font->get_glyph_contour_point (glyph_id, bounds.rightSide, right, &ignore) &&
- font->get_glyph_contour_point (glyph_id, bounds.bottomSide, &ignore, bottom);
- default:
- return false;
}
+ return false;
}
+ bool sanitize (hb_sanitize_context_t *c, const void *base) const
+ {
+ TRACE_SANITIZE (this);
+ return_trace (likely (c->check_struct (this) && lookupTable.sanitize (c, base)));
+ }
+
+ protected:
+ Lookup<OffsetTo<OpticalBounds>>
+ lookupTable; /* Lookup table associating glyphs with the four
+ * int16 values for the left-side, top-side,
+ * right-side, and bottom-side optical bounds. */
+ public:
+ DEFINE_SIZE_MIN (2);
+};
+
+struct opbd
+{
+ static constexpr hb_tag_t tableTag = HB_AAT_TAG_opbd;
+
+ bool get_bounds (hb_font_t *font, hb_codepoint_t glyph_id,
+ hb_glyph_extents_t *extents) const
+ {
+ switch (format)
+ {
+ case 0: return u.format0.get_bounds (font, glyph_id, extents, this);
+ case 1: return u.format1.get_bounds (font, glyph_id, extents, this);
+ default:return false;
+ }
+ }
+
bool sanitize (hb_sanitize_context_t *c) const
{
TRACE_SANITIZE (this);
- return_trace (likely (c->check_struct (this) &&
- version.major == 1 &&
- lookupTable.sanitize (c, this)));
+ if (unlikely (!c->check_struct (this) || version.major != 1))
+ return_trace (false);
+
+ switch (format)
+ {
+ case 0: return_trace (u.format0.sanitize (c, this));
+ case 1: return_trace (u.format1.sanitize (c, this));
+ default:return_trace (true);
+ }
}
protected:
@@ -97,10 +159,10 @@
HBUINT16 format; /* Format of the optical bounds table.
* Format 0 indicates distance and Format 1 indicates
* control point. */
- Lookup<OffsetTo<OpticalBounds>>
- lookupTable; /* Lookup table associating glyphs with the four
- * int16 values for the left-side, top-side,
- * right-side, and bottom-side optical bounds. */
+ union {
+ opbdFormat0 format0;
+ opbdFormat1 format1;
+ } u;
public:
DEFINE_SIZE_MIN (8);
};
Modified: trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-aat-layout-trak-table.hh
===================================================================
--- trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-aat-layout-trak-table.hh 2019-08-24 10:48:43 UTC (rev 51948)
+++ trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-aat-layout-trak-table.hh 2019-08-24 13:13:59 UTC (rev 51949)
@@ -93,13 +93,6 @@
int get_tracking (const void *base, float ptem) const
{
- /* CoreText points are CSS pixels (96 per inch),
- * NOT typographic points (72 per inch).
- *
- * https://developer.apple.com/library/content/documentation/GraphicsAnimation/Conceptual/HighResolutionOSX/Explained/Explained.html
- */
- float csspx = ptem * 96.f / 72.f;
-
/*
* Choose track.
*/
@@ -130,10 +123,10 @@
hb_array_t<const Fixed> size_table ((base+sizeTable).arrayZ, sizes);
unsigned int size_index;
for (size_index = 0; size_index < sizes - 1; size_index++)
- if (size_table[size_index].to_float () >= csspx)
+ if (size_table[size_index].to_float () >= ptem)
break;
- return roundf (interpolate_at (size_index ? size_index - 1 : 0, csspx,
+ return roundf (interpolate_at (size_index ? size_index - 1 : 0, ptem,
*trackTableEntry, base));
}
Modified: trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-coretext.cc
===================================================================
--- trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-coretext.cc 2019-08-24 10:48:43 UTC (rev 51948)
+++ trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-coretext.cc 2019-08-24 13:13:59 UTC (rev 51949)
@@ -49,24 +49,6 @@
/* https://developer.apple.com/documentation/coretext/1508745-ctfontcreatewithgraphicsfont */
#define HB_CORETEXT_DEFAULT_FONT_SIZE 12.f
-static CGFloat
-coretext_font_size_from_ptem (float ptem)
-{
- /* CoreText points are CSS pixels (96 per inch),
- * NOT typographic points (72 per inch).
- *
- * https://developer.apple.com/library/content/documentation/GraphicsAnimation/Conceptual/HighResolutionOSX/Explained/Explained.html
- */
- ptem *= 96.f / 72.f;
- return (CGFloat) (ptem <= 0.f ? HB_CORETEXT_DEFAULT_FONT_SIZE : ptem);
-}
-static float
-coretext_font_size_to_ptem (CGFloat size)
-{
- size *= 72. / 96.;
- return size <= 0 ? 0 : size;
-}
-
static void
release_table_data (void *user_data)
{
@@ -320,7 +302,8 @@
if (unlikely (!face_data)) return nullptr;
CGFontRef cg_font = (CGFontRef) (const void *) face->data.coretext;
- CTFontRef ct_font = create_ct_font (cg_font, coretext_font_size_from_ptem (font->ptem));
+ CGFloat font_size = font->ptem <= 0.f ? HB_CORETEXT_DEFAULT_FONT_SIZE : font->ptem;
+ CTFontRef ct_font = create_ct_font (cg_font, font_size);
if (unlikely (!ct_font))
{
@@ -344,7 +327,7 @@
const hb_coretext_font_data_t *data = font->data.coretext;
if (unlikely (!data)) return nullptr;
- if (fabs (CTFontGetSize((CTFontRef) data) - coretext_font_size_from_ptem (font->ptem)) > .5)
+ if (fabs (CTFontGetSize ((CTFontRef) data) - font->ptem) > .5)
{
/* XXX-MT-bug
* Note that evaluating condition above can be dangerous if another thread
@@ -384,7 +367,7 @@
if (unlikely (hb_object_is_immutable (font)))
return font;
- hb_font_set_ptem (font, coretext_font_size_to_ptem (CTFontGetSize(ct_font)));
+ hb_font_set_ptem (font, CTFontGetSize (ct_font));
/* Let there be dragons here... */
font->data.coretext.cmpexch (nullptr, (hb_coretext_font_data_t *) CFRetain (ct_font));
Modified: trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-directwrite.cc
===================================================================
--- trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-directwrite.cc 2019-08-24 10:48:43 UTC (rev 51948)
+++ trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-directwrite.cc 2019-08-24 13:13:59 UTC (rev 51949)
@@ -879,29 +879,12 @@
features, num_features, 0);
}
-/**
- * hb_directwrite_shape_experimental_width:
- * Experimental API to test DirectWrite's justification algorithm.
- *
- * It inserts Kashida at wrong order so don't use the API ever.
- *
- * It doesn't work with cygwin/msys due to header bugs so one
- * should use MSVC toolchain in order to use it for now.
- *
- * @font:
- * @buffer:
- * @features:
- * @num_features:
- * @width:
- *
- * Since: 1.4.2
- **/
-hb_bool_t
-hb_directwrite_shape_experimental_width (hb_font_t *font,
- hb_buffer_t *buffer,
- const hb_feature_t *features,
- unsigned int num_features,
- float width)
+HB_UNUSED static bool
+_hb_directwrite_shape_experimental_width (hb_font_t *font,
+ hb_buffer_t *buffer,
+ const hb_feature_t *features,
+ unsigned int num_features,
+ float width)
{
static const char *shapers = "directwrite";
hb_shape_plan_t *shape_plan;
Modified: trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-directwrite.h
===================================================================
--- trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-directwrite.h 2019-08-24 10:48:43 UTC (rev 51948)
+++ trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-directwrite.h 2019-08-24 13:13:59 UTC (rev 51949)
@@ -29,11 +29,6 @@
HB_BEGIN_DECLS
-HB_EXTERN hb_bool_t
-hb_directwrite_shape_experimental_width (hb_font_t *font, hb_buffer_t *buffer,
- const hb_feature_t *features,
- unsigned int num_features, float width);
-
HB_EXTERN hb_face_t *
hb_directwrite_face_create (IDWriteFontFace *font_face);
Modified: trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-font.cc
===================================================================
--- trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-font.cc 2019-08-24 10:48:43 UTC (rev 51948)
+++ trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-font.cc 2019-08-24 13:13:59 UTC (rev 51949)
@@ -518,10 +518,10 @@
/**
* hb_font_funcs_create: (Xconstructor)
*
- *
*
- * Return value: (transfer full):
*
+ * Return value: (transfer full):
+ *
* Since: 0.9.2
**/
hb_font_funcs_t *
@@ -540,10 +540,10 @@
/**
* hb_font_funcs_get_empty:
*
- *
*
- * Return value: (transfer full):
*
+ * Return value: (transfer full):
+ *
* Since: 0.9.2
**/
hb_font_funcs_t *
@@ -556,10 +556,10 @@
* hb_font_funcs_reference: (skip)
* @ffuncs: font functions.
*
- *
*
- * Return value:
*
+ * Return value:
+ *
* Since: 0.9.2
**/
hb_font_funcs_t *
@@ -572,8 +572,8 @@
* hb_font_funcs_destroy: (skip)
* @ffuncs: font functions.
*
- *
*
+ *
* Since: 0.9.2
**/
void
@@ -592,15 +592,15 @@
/**
* hb_font_funcs_set_user_data: (skip)
* @ffuncs: font functions.
- * @key:
- * @data:
- * @destroy:
- * @replace:
+ * @key:
+ * @data:
+ * @destroy:
+ * @replace:
*
- *
*
- * Return value:
*
+ * Return value:
+ *
* Since: 0.9.2
**/
hb_bool_t
@@ -616,12 +616,12 @@
/**
* hb_font_funcs_get_user_data: (skip)
* @ffuncs: font functions.
- * @key:
+ * @key:
*
- *
*
- * Return value: (transfer none):
*
+ * Return value: (transfer none):
+ *
* Since: 0.9.2
**/
void *
@@ -636,8 +636,8 @@
* hb_font_funcs_make_immutable:
* @ffuncs: font functions.
*
- *
*
+ *
* Since: 0.9.2
**/
void
@@ -653,10 +653,10 @@
* hb_font_funcs_is_immutable:
* @ffuncs: font functions.
*
- *
*
- * Return value:
*
+ * Return value:
+ *
* Since: 0.9.2
**/
hb_bool_t
@@ -751,14 +751,14 @@
/**
* hb_font_get_glyph:
* @font: a font.
- * @unicode:
- * @variation_selector:
- * @glyph: (out):
+ * @unicode:
+ * @variation_selector:
+ * @glyph: (out):
*
- *
*
- * Return value:
*
+ * Return value:
+ *
* Since: 0.9.2
**/
hb_bool_t
@@ -774,13 +774,13 @@
/**
* hb_font_get_nominal_glyph:
* @font: a font.
- * @unicode:
- * @glyph: (out):
+ * @unicode:
+ * @glyph: (out):
*
- *
*
- * Return value:
*
+ * Return value:
+ *
* Since: 1.2.3
**/
hb_bool_t
@@ -794,14 +794,14 @@
/**
* hb_font_get_variation_glyph:
* @font: a font.
- * @unicode:
- * @variation_selector:
- * @glyph: (out):
+ * @unicode:
+ * @variation_selector:
+ * @glyph: (out):
*
- *
*
- * Return value:
*
+ * Return value:
+ *
* Since: 1.2.3
**/
hb_bool_t
@@ -815,12 +815,12 @@
/**
* hb_font_get_glyph_h_advance:
* @font: a font.
- * @glyph:
+ * @glyph:
*
- *
*
- * Return value:
*
+ * Return value:
+ *
* Since: 0.9.2
**/
hb_position_t
@@ -833,12 +833,12 @@
/**
* hb_font_get_glyph_v_advance:
* @font: a font.
- * @glyph:
+ * @glyph:
*
- *
*
- * Return value:
*
+ * Return value:
+ *
* Since: 0.9.2
**/
hb_position_t
@@ -852,8 +852,8 @@
* hb_font_get_glyph_h_advances:
* @font: a font.
*
- *
*
+ *
* Since: 1.8.6
**/
void
@@ -870,8 +870,8 @@
* hb_font_get_glyph_v_advances:
* @font: a font.
*
- *
*
+ *
* Since: 1.8.6
**/
void
@@ -888,14 +888,14 @@
/**
* hb_font_get_glyph_h_origin:
* @font: a font.
- * @glyph:
- * @x: (out):
- * @y: (out):
+ * @glyph:
+ * @x: (out):
+ * @y: (out):
*
- *
*
- * Return value:
*
+ * Return value:
+ *
* Since: 0.9.2
**/
hb_bool_t
@@ -909,14 +909,14 @@
/**
* hb_font_get_glyph_v_origin:
* @font: a font.
- * @glyph:
- * @x: (out):
- * @y: (out):
+ * @glyph:
+ * @x: (out):
+ * @y: (out):
*
- *
*
- * Return value:
*
+ * Return value:
+ *
* Since: 0.9.2
**/
hb_bool_t
@@ -930,13 +930,13 @@
/**
* hb_font_get_glyph_h_kerning:
* @font: a font.
- * @left_glyph:
- * @right_glyph:
+ * @left_glyph:
+ * @right_glyph:
*
- *
*
- * Return value:
*
+ * Return value:
+ *
* Since: 0.9.2
**/
hb_position_t
@@ -950,13 +950,13 @@
/**
* hb_font_get_glyph_v_kerning:
* @font: a font.
- * @top_glyph:
- * @bottom_glyph:
+ * @top_glyph:
+ * @bottom_glyph:
*
- *
*
- * Return value:
*
+ * Return value:
+ *
* Since: 0.9.2
* Deprecated: 2.0.0
**/
@@ -971,13 +971,13 @@
/**
* hb_font_get_glyph_extents:
* @font: a font.
- * @glyph:
- * @extents: (out):
+ * @glyph:
+ * @extents: (out):
*
- *
*
- * Return value:
*
+ * Return value:
+ *
* Since: 0.9.2
**/
hb_bool_t
@@ -991,15 +991,15 @@
/**
* hb_font_get_glyph_contour_point:
* @font: a font.
- * @glyph:
- * @point_index:
- * @x: (out):
- * @y: (out):
+ * @glyph:
+ * @point_index:
+ * @x: (out):
+ * @y: (out):
*
- *
*
- * Return value:
*
+ * Return value:
+ *
* Since: 0.9.2
**/
hb_bool_t
@@ -1013,14 +1013,14 @@
/**
* hb_font_get_glyph_name:
* @font: a font.
- * @glyph:
- * @name: (array length=size):
- * @size:
+ * @glyph:
+ * @name: (array length=size):
+ * @size:
*
- *
*
- * Return value:
*
+ * Return value:
+ *
* Since: 0.9.2
**/
hb_bool_t
@@ -1034,14 +1034,14 @@
/**
* hb_font_get_glyph_from_name:
* @font: a font.
- * @name: (array length=len):
- * @len:
- * @glyph: (out):
+ * @name: (array length=len):
+ * @len:
+ * @glyph: (out):
*
- *
*
- * Return value:
*
+ * Return value:
+ *
* Since: 0.9.2
**/
hb_bool_t
@@ -1075,13 +1075,13 @@
/**
* hb_font_get_glyph_advance_for_direction:
* @font: a font.
- * @glyph:
- * @direction:
- * @x: (out):
- * @y: (out):
+ * @glyph:
+ * @direction:
+ * @x: (out):
+ * @y: (out):
*
- *
*
+ *
* Since: 0.9.2
**/
void
@@ -1095,10 +1095,10 @@
/**
* hb_font_get_glyph_advances_for_direction:
* @font: a font.
- * @direction:
+ * @direction:
*
- *
*
+ *
* Since: 1.8.6
**/
HB_EXTERN void
@@ -1116,13 +1116,13 @@
/**
* hb_font_get_glyph_origin_for_direction:
* @font: a font.
- * @glyph:
- * @direction:
- * @x: (out):
- * @y: (out):
+ * @glyph:
+ * @direction:
+ * @x: (out):
+ * @y: (out):
*
- *
*
+ *
* Since: 0.9.2
**/
void
@@ -1137,13 +1137,13 @@
/**
* hb_font_add_glyph_origin_for_direction:
* @font: a font.
- * @glyph:
- * @direction:
- * @x: (out):
- * @y: (out):
+ * @glyph:
+ * @direction:
+ * @x: (out):
+ * @y: (out):
*
- *
*
+ *
* Since: 0.9.2
**/
void
@@ -1158,13 +1158,13 @@
/**
* hb_font_subtract_glyph_origin_for_direction:
* @font: a font.
- * @glyph:
- * @direction:
- * @x: (out):
- * @y: (out):
+ * @glyph:
+ * @direction:
+ * @x: (out):
+ * @y: (out):
*
- *
*
+ *
* Since: 0.9.2
**/
void
@@ -1179,14 +1179,14 @@
/**
* hb_font_get_glyph_kerning_for_direction:
* @font: a font.
- * @first_glyph:
- * @second_glyph:
- * @direction:
- * @x: (out):
- * @y: (out):
+ * @first_glyph:
+ * @second_glyph:
+ * @direction:
+ * @x: (out):
+ * @y: (out):
*
- *
*
+ *
* Since: 0.9.2
**/
void
@@ -1201,14 +1201,14 @@
/**
* hb_font_get_glyph_extents_for_origin:
* @font: a font.
- * @glyph:
- * @direction:
- * @extents: (out):
+ * @glyph:
+ * @direction:
+ * @extents: (out):
*
- *
*
- * Return value:
*
+ * Return value:
+ *
* Since: 0.9.2
**/
hb_bool_t
@@ -1223,16 +1223,16 @@
/**
* hb_font_get_glyph_contour_point_for_origin:
* @font: a font.
- * @glyph:
- * @point_index:
- * @direction:
- * @x: (out):
- * @y: (out):
+ * @glyph:
+ * @point_index:
+ * @direction:
+ * @x: (out):
+ * @y: (out):
*
- *
*
- * Return value:
*
+ * Return value:
+ *
* Since: 0.9.2
**/
hb_bool_t
@@ -1248,12 +1248,12 @@
/**
* hb_font_glyph_to_string:
* @font: a font.
- * @glyph:
- * @s: (array length=size):
- * @size:
+ * @glyph:
+ * @s: (array length=size):
+ * @size:
*
- *
*
+ *
* Since: 0.9.2
**/
void
@@ -1268,14 +1268,14 @@
/**
* hb_font_glyph_from_string:
* @font: a font.
- * @s: (array length=len) (element-type uint8_t):
- * @len:
- * @glyph: (out):
+ * @s: (array length=len) (element-type uint8_t):
+ * @len:
+ * @glyph: (out):
*
- *
*
- * Return value:
*
+ * Return value:
+ *
* Since: 0.9.2
**/
hb_bool_t
@@ -1341,10 +1341,10 @@
* hb_font_create: (Xconstructor)
* @face: a face.
*
- *
*
- * Return value: (transfer full):
*
+ * Return value: (transfer full):
+ *
* Since: 0.9.2
**/
hb_font_t *
@@ -1364,10 +1364,10 @@
* hb_font_create_sub_font:
* @parent: parent font.
*
- *
*
- * Return value: (transfer full):
*
+ * Return value: (transfer full):
+ *
* Since: 0.9.2
**/
hb_font_t *
@@ -1385,14 +1385,13 @@
font->x_scale = parent->x_scale;
font->y_scale = parent->y_scale;
+ font->mults_changed ();
font->x_ppem = parent->x_ppem;
font->y_ppem = parent->y_ppem;
font->ptem = parent->ptem;
font->num_coords = parent->num_coords;
- if (!font->num_coords)
- font->coords = nullptr;
- else
+ if (font->num_coords)
{
unsigned int size = parent->num_coords * sizeof (parent->coords[0]);
font->coords = (int *) malloc (size);
@@ -1408,8 +1407,8 @@
/**
* hb_font_get_empty:
*
- *
*
+ *
* Return value: (transfer full)
*
* Since: 0.9.2
@@ -1424,10 +1423,10 @@
* hb_font_reference: (skip)
* @font: a font.
*
- *
*
- * Return value: (transfer full):
*
+ * Return value: (transfer full):
+ *
* Since: 0.9.2
**/
hb_font_t *
@@ -1440,8 +1439,8 @@
* hb_font_destroy: (skip)
* @font: a font.
*
- *
*
+ *
* Since: 0.9.2
**/
void
@@ -1466,15 +1465,15 @@
/**
* hb_font_set_user_data: (skip)
* @font: a font.
- * @key:
- * @data:
- * @destroy:
- * @replace:
+ * @key:
+ * @data:
+ * @destroy:
+ * @replace:
*
- *
*
- * Return value:
*
+ * Return value:
+ *
* Since: 0.9.2
**/
hb_bool_t
@@ -1490,12 +1489,12 @@
/**
* hb_font_get_user_data: (skip)
* @font: a font.
- * @key:
+ * @key:
*
- *
*
- * Return value: (transfer none):
*
+ * Return value: (transfer none):
+ *
* Since: 0.9.2
**/
void *
@@ -1509,8 +1508,8 @@
* hb_font_make_immutable:
* @font: a font.
*
- *
*
+ *
* Since: 0.9.2
**/
void
@@ -1529,10 +1528,10 @@
* hb_font_is_immutable:
* @font: a font.
*
- *
*
- * Return value:
*
+ * Return value:
+ *
* Since: 0.9.2
**/
hb_bool_t
@@ -1571,10 +1570,10 @@
* hb_font_get_parent:
* @font: a font.
*
- *
*
- * Return value: (transfer none):
*
+ * Return value: (transfer none):
+ *
* Since: 0.9.2
**/
hb_font_t *
@@ -1615,10 +1614,10 @@
* hb_font_get_face:
* @font: a font.
*
- *
*
- * Return value: (transfer none):
*
+ * Return value: (transfer none):
+ *
* Since: 0.9.2
**/
hb_face_t *
@@ -1632,11 +1631,11 @@
* hb_font_set_funcs:
* @font: a font.
* @klass: (closure font_data) (destroy destroy) (scope notified):
- * @font_data:
- * @destroy:
+ * @font_data:
+ * @destroy:
*
- *
*
+ *
* Since: 0.9.2
**/
void
@@ -1669,10 +1668,10 @@
* hb_font_set_funcs_data:
* @font: a font.
* @font_data: (destroy destroy) (scope notified):
- * @destroy:
+ * @destroy:
*
- *
*
+ *
* Since: 0.9.2
**/
void
@@ -1699,11 +1698,11 @@
/**
* hb_font_set_scale:
* @font: a font.
- * @x_scale:
- * @y_scale:
+ * @x_scale:
+ * @y_scale:
*
- *
*
+ *
* Since: 0.9.2
**/
void
@@ -1722,11 +1721,11 @@
/**
* hb_font_get_scale:
* @font: a font.
- * @x_scale: (out):
- * @y_scale: (out):
+ * @x_scale: (out):
+ * @y_scale: (out):
*
- *
*
+ *
* Since: 0.9.2
**/
void
@@ -1741,11 +1740,11 @@
/**
* hb_font_set_ppem:
* @font: a font.
- * @x_ppem:
- * @y_ppem:
+ * @x_ppem:
+ * @y_ppem:
*
- *
*
+ *
* Since: 0.9.2
**/
void
@@ -1763,11 +1762,11 @@
/**
* hb_font_get_ppem:
* @font: a font.
- * @x_ppem: (out):
- * @y_ppem: (out):
+ * @x_ppem: (out):
+ * @y_ppem: (out):
*
- *
*
+ *
* Since: 0.9.2
**/
void
@@ -1815,6 +1814,7 @@
return font->ptem;
}
+#ifndef HB_NO_VAR
/*
* Variations
*/
@@ -1830,7 +1830,6 @@
font->num_coords = coords_length;
}
-#ifndef HB_NO_VAR
/**
* hb_font_set_variations:
*
@@ -1909,7 +1908,6 @@
hb_font_set_var_coords_design (font, coords, coords_length);
free (coords);
}
-#endif
/**
* hb_font_set_var_coords_normalized:
@@ -1951,8 +1949,8 @@
return font->coords;
}
+#endif
-
#ifndef HB_DISABLE_DEPRECATED
/*
* Deprecated get_glyph_func():
Modified: trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-font.h
===================================================================
--- trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-font.h 2019-08-24 10:48:43 UTC (rev 51948)
+++ trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-font.h 2019-08-24 13:13:59 UTC (rev 51949)
@@ -224,8 +224,8 @@
* @user_data:
* @destroy:
*
- *
*
+ *
* Since: 1.2.3
**/
HB_EXTERN void
@@ -256,8 +256,8 @@
* @user_data:
* @destroy:
*
- *
*
+ *
* Since: 1.2.3
**/
HB_EXTERN void
@@ -272,8 +272,8 @@
* @user_data:
* @destroy:
*
- *
*
+ *
* Since: 0.9.2
**/
HB_EXTERN void
@@ -288,8 +288,8 @@
* @user_data:
* @destroy:
*
- *
*
+ *
* Since: 0.9.2
**/
HB_EXTERN void
@@ -304,8 +304,8 @@
* @user_data:
* @destroy:
*
- *
*
+ *
* Since: 1.8.6
**/
HB_EXTERN void
@@ -320,8 +320,8 @@
* @user_data:
* @destroy:
*
- *
*
+ *
* Since: 1.8.6
**/
HB_EXTERN void
@@ -336,8 +336,8 @@
* @user_data:
* @destroy:
*
- *
*
+ *
* Since: 0.9.2
**/
HB_EXTERN void
@@ -352,8 +352,8 @@
* @user_data:
* @destroy:
*
- *
*
+ *
* Since: 0.9.2
**/
HB_EXTERN void
@@ -368,8 +368,8 @@
* @user_data:
* @destroy:
*
- *
*
+ *
* Since: 0.9.2
**/
HB_EXTERN void
@@ -384,8 +384,8 @@
* @user_data:
* @destroy:
*
- *
*
+ *
* Since: 0.9.2
**/
HB_EXTERN void
@@ -400,8 +400,8 @@
* @user_data:
* @destroy:
*
- *
*
+ *
* Since: 0.9.2
**/
HB_EXTERN void
@@ -416,8 +416,8 @@
* @user_data:
* @destroy:
*
- *
*
+ *
* Since: 0.9.2
**/
HB_EXTERN void
@@ -432,8 +432,8 @@
* @user_data:
* @destroy:
*
- *
*
+ *
* Since: 0.9.2
**/
HB_EXTERN void
Modified: trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-cff2-table.cc
===================================================================
--- trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-cff2-table.cc 2019-08-24 10:48:43 UTC (rev 51948)
+++ trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-cff2-table.cc 2019-08-24 13:13:59 UTC (rev 51949)
@@ -110,12 +110,10 @@
if (unlikely (!is_valid () || (glyph >= num_glyphs))) return false;
- unsigned int num_coords;
- const int *coords = hb_font_get_var_coords_normalized (font, &num_coords);
unsigned int fd = fdSelect->get_fd (glyph);
cff2_cs_interpreter_t<cff2_cs_opset_extents_t, cff2_extents_param_t> interp;
const byte_str_t str = (*charStrings)[glyph];
- interp.env.init (str, *this, fd, coords, num_coords);
+ interp.env.init (str, *this, fd, font->coords, font->num_coords);
cff2_extents_param_t param;
param.init ();
if (unlikely (!interp.interpret (param))) return false;
Modified: trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-cmap-table.hh
===================================================================
--- trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-cmap-table.hh 2019-08-24 10:48:43 UTC (rev 51948)
+++ trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-cmap-table.hh 2019-08-24 13:13:59 UTC (rev 51949)
@@ -993,6 +993,15 @@
const CmapSubtable *subtable;
+ /* Symbol subtable.
+ * Prefer symbol if available.
+ * https://github.com/harfbuzz/harfbuzz/issues/1918 */
+ if ((subtable = this->find_subtable (3, 0)))
+ {
+ if (symbol) *symbol = true;
+ return subtable;
+ }
+
/* 32-bit subtables. */
if ((subtable = this->find_subtable (3, 10))) return subtable;
if ((subtable = this->find_subtable (0, 6))) return subtable;
@@ -1005,13 +1014,6 @@
if ((subtable = this->find_subtable (0, 1))) return subtable;
if ((subtable = this->find_subtable (0, 0))) return subtable;
- /* Symbol subtable. */
- if ((subtable = this->find_subtable (3, 0)))
- {
- if (symbol) *symbol = true;
- return subtable;
- }
-
/* Meh. */
return &Null (CmapSubtable);
}
Modified: trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-layout.cc
===================================================================
--- trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-layout.cc 2019-08-24 10:48:43 UTC (rev 51948)
+++ trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-layout.cc 2019-08-24 13:13:59 UTC (rev 51949)
@@ -375,10 +375,14 @@
{
if (caret_count) *caret_count = result_caret_count;
}
+ else
+ {
#ifndef HB_NO_AAT
- else
result = font->face->table.lcar->get_lig_carets (font, direction, glyph, start_offset, caret_count, caret_array);
+#else
+ if (caret_count) *caret_count = 0;
#endif
+ }
return result;
}
#endif
Modified: trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-shape-complex-indic.cc
===================================================================
--- trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-shape-complex-indic.cc 2019-08-24 10:48:43 UTC (rev 51948)
+++ trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-shape-complex-indic.cc 2019-08-24 13:13:59 UTC (rev 51949)
@@ -131,13 +131,6 @@
{HB_TAG('b','l','w','s'), F_GLOBAL_MANUAL_JOINERS},
{HB_TAG('p','s','t','s'), F_GLOBAL_MANUAL_JOINERS},
{HB_TAG('h','a','l','n'), F_GLOBAL_MANUAL_JOINERS},
- /*
- * Positioning features.
- * We don't care about the types.
- */
- {HB_TAG('d','i','s','t'), F_GLOBAL},
- {HB_TAG('a','b','v','m'), F_GLOBAL},
- {HB_TAG('b','l','w','m'), F_GLOBAL},
};
/*
@@ -163,10 +156,6 @@
_INDIC_PSTS,
_INDIC_HALN,
- _INDIC_DIST,
- _INDIC_ABVM,
- _INDIC_BLWM,
-
INDIC_NUM_FEATURES,
INDIC_BASIC_FEATURES = INDIC_INIT, /* Don't forget to update this! */
};
Modified: trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-shape-complex-khmer.cc
===================================================================
--- trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-shape-complex-khmer.cc 2019-08-24 10:48:43 UTC (rev 51948)
+++ trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-shape-complex-khmer.cc 2019-08-24 13:13:59 UTC (rev 51949)
@@ -56,13 +56,6 @@
{HB_TAG('a','b','v','s'), F_GLOBAL_MANUAL_JOINERS},
{HB_TAG('b','l','w','s'), F_GLOBAL_MANUAL_JOINERS},
{HB_TAG('p','s','t','s'), F_GLOBAL_MANUAL_JOINERS},
- /*
- * Positioning features.
- * We don't care about the types.
- */
- {HB_TAG('d','i','s','t'), F_GLOBAL},
- {HB_TAG('a','b','v','m'), F_GLOBAL},
- {HB_TAG('b','l','w','m'), F_GLOBAL},
};
/*
@@ -80,10 +73,6 @@
_KHMER_BLWS,
_KHMER_PSTS,
- _KHMER_DIST,
- _KHMER_ABVM,
- _KHMER_BLWM,
-
KHMER_NUM_FEATURES,
KHMER_BASIC_FEATURES = _KHMER_PRES, /* Don't forget to update this! */
};
Modified: trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-shape-complex-myanmar.cc
===================================================================
--- trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-shape-complex-myanmar.cc 2019-08-24 10:48:43 UTC (rev 51948)
+++ trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-shape-complex-myanmar.cc 2019-08-24 13:13:59 UTC (rev 51949)
@@ -59,25 +59,6 @@
HB_TAG('b','l','w','s'),
HB_TAG('p','s','t','s'),
};
-static const hb_tag_t
-myanmar_positioning_features[] =
-{
- /*
- * Positioning features.
- * We don't care about the types.
- */
- HB_TAG('d','i','s','t'),
- /* Pre-release version of Windows 8 Myanmar font had abvm,blwm
- * features. The released Windows 8 version of the font (as well
- * as the released spec) used 'mark' instead. The Windows 8
- * shaper however didn't apply 'mark' but did apply 'mkmk'.
- * Perhaps it applied abvm/blwm. This was fixed in a Windows 8
- * update, so now it applies mark/mkmk. We are guessing that
- * it still applies abvm/blwm too.
- */
- HB_TAG('a','b','v','m'),
- HB_TAG('b','l','w','m'),
-};
static void
setup_syllables_myanmar (const hb_ot_shape_plan_t *plan,
@@ -114,9 +95,6 @@
for (unsigned int i = 0; i < ARRAY_LENGTH (myanmar_other_features); i++)
map->enable_feature (myanmar_other_features[i], F_MANUAL_ZWJ);
-
- for (unsigned int i = 0; i < ARRAY_LENGTH (myanmar_positioning_features); i++)
- map->enable_feature (myanmar_positioning_features[i]);
}
static void
Modified: trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-shape-complex-use.cc
===================================================================
--- trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-shape-complex-use.cc 2019-08-24 10:48:43 UTC (rev 51948)
+++ trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-shape-complex-use.cc 2019-08-24 13:13:59 UTC (rev 51949)
@@ -88,17 +88,6 @@
HB_TAG('p','r','e','s'),
HB_TAG('p','s','t','s'),
};
-static const hb_tag_t
-use_positioning_features[] =
-{
- /*
- * Positioning features.
- * We don't care about the types.
- */
- HB_TAG('d','i','s','t'),
- HB_TAG('a','b','v','m'),
- HB_TAG('b','l','w','m'),
-};
static void
setup_syllables_use (const hb_ot_shape_plan_t *plan,
@@ -154,10 +143,6 @@
/* "Standard typographic presentation" */
for (unsigned int i = 0; i < ARRAY_LENGTH (use_other_features); i++)
map->enable_feature (use_other_features[i], F_MANUAL_ZWJ);
-
- /* "Positional feature application" */
- for (unsigned int i = 0; i < ARRAY_LENGTH (use_positioning_features); i++)
- map->enable_feature (use_positioning_features[i]);
}
struct use_shape_plan_t
Modified: trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-shape.cc
===================================================================
--- trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-shape.cc 2019-08-24 10:48:43 UTC (rev 51948)
+++ trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-shape.cc 2019-08-24 13:13:59 UTC (rev 51949)
@@ -285,6 +285,8 @@
static const hb_ot_map_feature_t
common_features[] =
{
+ {HB_TAG('a','b','v','m'), F_GLOBAL},
+ {HB_TAG('b','l','w','m'), F_GLOBAL},
{HB_TAG('c','c','m','p'), F_GLOBAL},
{HB_TAG('l','o','c','l'), F_GLOBAL},
{HB_TAG('m','a','r','k'), F_GLOBAL_MANUAL_JOINERS},
@@ -299,6 +301,7 @@
{HB_TAG('c','a','l','t'), F_GLOBAL},
{HB_TAG('c','l','i','g'), F_GLOBAL},
{HB_TAG('c','u','r','s'), F_GLOBAL},
+ {HB_TAG('d','i','s','t'), F_GLOBAL},
{HB_TAG('k','e','r','n'), F_GLOBAL_HAS_FALLBACK},
{HB_TAG('l','i','g','a'), F_GLOBAL},
{HB_TAG('r','c','l','t'), F_GLOBAL},
Modified: trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-var-avar-table.hh
===================================================================
--- trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-var-avar-table.hh 2019-08-24 10:48:43 UTC (rev 51948)
+++ trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-var-avar-table.hh 2019-08-24 13:13:59 UTC (rev 51949)
@@ -49,9 +49,10 @@
}
public:
- F2DOT14 fromCoord; /* A normalized coordinate value obtained using
- * default normalization. */
- F2DOT14 toCoord; /* The modified, normalized coordinate value. */
+ F2DOT14 coords[2];
+// F2DOT14 fromCoord; /* A normalized coordinate value obtained using
+// * default normalization. */
+// F2DOT14 toCoord; /* The modified, normalized coordinate value. */
public:
DEFINE_SIZE_STATIC (4);
@@ -59,12 +60,13 @@
struct SegmentMaps : ArrayOf<AxisValueMap>
{
- int map (int value) const
+ int map (int value, unsigned int from_offset = 0, unsigned int to_offset = 1) const
{
+#define fromCoord coords[from_offset]
+#define toCoord coords[to_offset]
/* The following special-cases are not part of OpenType, which requires
* that at least -1, 0, and +1 must be mapped. But we include these as
* part of a better error recovery scheme. */
-
if (len < 2)
{
if (!len)
@@ -91,8 +93,12 @@
return arrayZ[i-1].toCoord +
((arrayZ[i].toCoord - arrayZ[i-1].toCoord) *
(value - arrayZ[i-1].fromCoord) + denom/2) / denom;
+#undef toCoord
+#undef fromCoord
}
+ int unmap (int value) const { return map (value, 1, 0); }
+
public:
DEFINE_SIZE_ARRAY (2, *this);
};
@@ -133,6 +139,18 @@
}
}
+ void unmap_coords (int *coords, unsigned int coords_length) const
+ {
+ unsigned int count = hb_min (coords_length, axisCount);
+
+ const SegmentMaps *map = &firstAxisSegmentMaps;
+ for (unsigned int i = 0; i < count; i++)
+ {
+ coords[i] = map->unmap (coords[i]);
+ map = &StructAfter<SegmentMaps> (*map);
+ }
+ }
+
protected:
FixedVersion<>version; /* Version of the avar table
* initially set to 0x00010000u */
@@ -140,7 +158,7 @@
HBUINT16 axisCount; /* The number of variation axes in the font. This
* must be the same number as axisCount in the
* 'fvar' table. */
- SegmentMaps firstAxisSegmentMaps;
+ SegmentMaps firstAxisSegmentMaps;
public:
DEFINE_SIZE_MIN (8);
Modified: trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-var-fvar-table.hh
===================================================================
--- trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-var-fvar-table.hh 2019-08-24 10:48:43 UTC (rev 51948)
+++ trunk/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-var-fvar-table.hh 2019-08-24 13:13:59 UTC (rev 51949)
@@ -240,6 +240,20 @@
return roundf (v * 16384.f);
}
+ float unnormalize_axis_value (unsigned int axis_index, float v) const
+ {
+ hb_ot_var_axis_info_t axis;
+ get_axis_info (axis_index, &axis);
+
+ if (v == 0)
+ return axis.default_value;
+ else if (v < 0)
+ v = v * (axis.default_value - axis.min_value) / 16384.f + axis.default_value;
+ else
+ v = v * (axis.max_value - axis.default_value) / 16384.f + axis.default_value;
+ return v;
+ }
+
unsigned int get_instance_count () const { return instanceCount; }
hb_ot_name_id_t get_instance_subfamily_name_id (unsigned int instance_index) const
Modified: trunk/Build/source/libs/harfbuzz/version.ac
===================================================================
--- trunk/Build/source/libs/harfbuzz/version.ac 2019-08-24 10:48:43 UTC (rev 51948)
+++ trunk/Build/source/libs/harfbuzz/version.ac 2019-08-24 13:13:59 UTC (rev 51949)
@@ -8,4 +8,4 @@
dnl --------------------------------------------------------
dnl
dnl m4-include this file to define the current harfbuzz version
-m4_define([harfbuzz_version], [2.6.0])
+m4_define([harfbuzz_version], [2.6.1])
More information about the tex-live-commits
mailing list