From 22f3e6739c985c8c8c57f362a9e50f73248ab11b Mon Sep 17 00:00:00 2001 From: Akira Kakuto Date: Wed, 7 Sep 2016 22:09:03 +0000 Subject: harfbuzz 1.3.1 git-svn-id: svn://tug.org/texlive/trunk@42013 c570f23f-e606-0410-a88d-b1316a301751 --- Build/source/libs/harfbuzz/ChangeLog | 5 + Build/source/libs/harfbuzz/configure | 22 +- .../libs/harfbuzz/harfbuzz-PATCHES/ChangeLog | 5 + .../libs/harfbuzz/harfbuzz-PATCHES/TL-Changes | 2 +- Build/source/libs/harfbuzz/harfbuzz-src/ChangeLog | 244 +++++++++++++++++++++ Build/source/libs/harfbuzz/harfbuzz-src/NEWS | 9 + Build/source/libs/harfbuzz/harfbuzz-src/README | 1 + .../source/libs/harfbuzz/harfbuzz-src/configure.ac | 4 +- .../harfbuzz/harfbuzz-src/src/hb-buffer-private.hh | 6 +- .../harfbuzz/harfbuzz-src/src/hb-cache-private.hh | 8 +- .../libs/harfbuzz/harfbuzz-src/src/hb-coretext.cc | 17 +- .../harfbuzz/harfbuzz-src/src/hb-directwrite.cc | 6 +- .../libs/harfbuzz/harfbuzz-src/src/hb-face.cc | 2 - .../libs/harfbuzz/harfbuzz-src/src/hb-font.cc | 2 - .../source/libs/harfbuzz/harfbuzz-src/src/hb-ft.cc | 6 +- .../libs/harfbuzz/harfbuzz-src/src/hb-ot-layout.cc | 8 + .../libs/harfbuzz/harfbuzz-src/src/hb-ot-map.cc | 7 +- .../libs/harfbuzz/harfbuzz-src/src/hb-ot-tag.cc | 21 +- .../harfbuzz/harfbuzz-src/src/hb-set-private.hh | 4 +- .../harfbuzz/harfbuzz-src/src/hb-shape-plan.cc | 5 +- .../libs/harfbuzz/harfbuzz-src/src/hb-uniscribe.cc | 4 +- Build/source/libs/harfbuzz/version.ac | 2 +- 22 files changed, 343 insertions(+), 47 deletions(-) (limited to 'Build/source/libs') diff --git a/Build/source/libs/harfbuzz/ChangeLog b/Build/source/libs/harfbuzz/ChangeLog index ed95904fc03..44768191e6c 100644 --- a/Build/source/libs/harfbuzz/ChangeLog +++ b/Build/source/libs/harfbuzz/ChangeLog @@ -1,3 +1,8 @@ +2016-09-07 Akira Kakuto + + Import harfbuzz-1.3.1. + * version.ac: Adjusted. + 2016-07-22 Akira Kakuto Import harfbuzz-1.3.0. diff --git a/Build/source/libs/harfbuzz/configure b/Build/source/libs/harfbuzz/configure index 27c526dc06d..cdaf064eee5 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) 1.3.0. +# Generated by GNU Autoconf 2.69 for harfbuzz (TeX Live) 1.3.1. # # Report bugs to . # @@ -580,8 +580,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='harfbuzz (TeX Live)' PACKAGE_TARNAME='harfbuzz--tex-live-' -PACKAGE_VERSION='1.3.0' -PACKAGE_STRING='harfbuzz (TeX Live) 1.3.0' +PACKAGE_VERSION='1.3.1' +PACKAGE_STRING='harfbuzz (TeX Live) 1.3.1' PACKAGE_BUGREPORT='tex-k@tug.org' PACKAGE_URL='' @@ -1312,7 +1312,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) 1.3.0 to adapt to many kinds of systems. +\`configure' configures harfbuzz (TeX Live) 1.3.1 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1383,7 +1383,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of harfbuzz (TeX Live) 1.3.0:";; + short | recursive ) echo "Configuration of harfbuzz (TeX Live) 1.3.1:";; esac cat <<\_ACEOF @@ -1490,7 +1490,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -harfbuzz (TeX Live) configure 1.3.0 +harfbuzz (TeX Live) configure 1.3.1 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -2080,7 +2080,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 1.3.0, which was +It was created by harfbuzz (TeX Live) $as_me 1.3.1, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -4003,7 +4003,7 @@ fi # Define the identity of the package. PACKAGE='harfbuzz--tex-live-' - VERSION='1.3.0' + VERSION='1.3.1' cat >>confdefs.h <<_ACEOF @@ -4207,7 +4207,7 @@ WARNING_CFLAGS=$kpse_cv_warning_cflags HB_VERSION_MAJOR=1 HB_VERSION_MINOR=2 HB_VERSION_MICRO=7 -HB_VERSION=1.3.0 +HB_VERSION=1.3.1 ac_ext=c ac_cpp='$CPP $CPPFLAGS' @@ -6866,7 +6866,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 1.3.0, which was +This file was extended by harfbuzz (TeX Live) $as_me 1.3.1, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -6932,7 +6932,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 1.3.0 +harfbuzz (TeX Live) config.status 1.3.1 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" diff --git a/Build/source/libs/harfbuzz/harfbuzz-PATCHES/ChangeLog b/Build/source/libs/harfbuzz/harfbuzz-PATCHES/ChangeLog index 1eca17ed6f7..e21862cdeec 100644 --- a/Build/source/libs/harfbuzz/harfbuzz-PATCHES/ChangeLog +++ b/Build/source/libs/harfbuzz/harfbuzz-PATCHES/ChangeLog @@ -1,3 +1,8 @@ +2016-09-07 Akira Kakuto + + Imported harfbuzz-1.3.1 source tree from: + http://www.freedesktop.org/software/harfbuzz/release/ + 2016-07-22 Akira Kakuto Imported harfbuzz-1.3.0 source tree from: diff --git a/Build/source/libs/harfbuzz/harfbuzz-PATCHES/TL-Changes b/Build/source/libs/harfbuzz/harfbuzz-PATCHES/TL-Changes index 54c169ec5d8..b976df434fd 100644 --- a/Build/source/libs/harfbuzz/harfbuzz-PATCHES/TL-Changes +++ b/Build/source/libs/harfbuzz/harfbuzz-PATCHES/TL-Changes @@ -1,4 +1,4 @@ -Changes applied to the harfbuzz-1.3.0/ tree as obtained from: +Changes applied to the harfbuzz-1.3.1/ tree as obtained from: http://www.freedesktop.org/software/harfbuzz/release/ Removed: diff --git a/Build/source/libs/harfbuzz/harfbuzz-src/ChangeLog b/Build/source/libs/harfbuzz/harfbuzz-src/ChangeLog index 106d1e81cfc..c148ab06f8a 100644 --- a/Build/source/libs/harfbuzz/harfbuzz-src/ChangeLog +++ b/Build/source/libs/harfbuzz/harfbuzz-src/ChangeLog @@ -1,3 +1,247 @@ +commit b717cd7be506217e466e32a456df9af4d2720c0c +Author: Dominik Röttsches +Date: Wed Sep 7 23:56:57 2016 +0300 + + Do reconfigure the cascade list for Emoji font on OS X 10.9.5 (#313) + + This seems to fix crash issues on 10.9.5 reported on Chrome, compare + crbug.com/549610 + + src/hb-coretext.cc | 13 ++++++++++--- + 1 file changed, 10 insertions(+), 3 deletions(-) + +commit 67e9fdf427e8536f0a134f84ad3bf1740245fe12 +Author: Dominik Röttsches +Date: Mon Sep 5 11:27:25 2016 +0300 + + Blacklist Padauk 2.80 and 3.00 (#311) + + According to comments in issue #305 broken GDEF tables lead + to incorrect rendering of Latin characters. Blacklisting + this font. + + src/hb-ot-layout.cc | 8 ++++++++ + 1 file changed, 8 insertions(+) + +commit 17f0dd2dfb9a15aed9d1a229115940cc23bdbc97 +Author: Ebrahim Byagowi +Date: Fri Sep 2 01:21:48 2016 +0430 + + [ci] Add msys2 build to CI and run its testsuite on Windows (#310) + + appveyor.yml | 20 ++++++++++++++++---- + 1 file changed, 16 insertions(+), 4 deletions(-) + +commit 5362ce6a6455c539d615e7fb221a904ac744b74c +Author: Ebrahim Byagowi +Date: Thu Sep 1 20:05:45 2016 +0430 + + [dwrite] Minor, don't include unnecessary headers (#309) + + src/hb-directwrite.cc | 4 ---- + 1 file changed, 4 deletions(-) + +commit c4f36b04e32ae5111ef11d225e5d6e82c8216185 +Author: Ebrahim Byagowi +Date: Thu Sep 1 17:31:16 2016 +0430 + + [ci] Add Windows CI support, provided by AppVeyor (#308) + + README | 1 + + appveyor.yml | 28 ++++++++++++++++++++++++++++ + win32/generate-msvc.mak | 2 +- + 3 files changed, 30 insertions(+), 1 deletion(-) + +commit 3d976d20f1b97c771e64a9cfed2760ebec64037a +Author: Khaled Hosny +Date: Sat Aug 27 16:38:42 2016 +0300 + + Show the shaper name in the debug message (#306) + + src/hb-shape-plan.cc | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +commit 547ddb0721365dca985aef5b759d08718f7c5f82 +Merge: bd1aac9 e7ecbba +Author: Sascha Brawer +Date: Thu Aug 18 22:33:14 2016 +0200 + + Merge pull request #303 from behdad/fonnapa + + Support Americanist Phonetic Notation + +commit e7ecbba2cc3c9369c5e7dc7296cb210018aca3bb +Author: Sascha Brawer +Date: Thu Aug 18 12:48:38 2016 +0200 + + Support Americanist Phonetic Notation + + OpenType language system tag: `APPH` + https://www.microsoft.com/typography/otspec/languagetags.htm + + IETF BCP47 variant tag: `fonnapa` + http://www.iana.org/assignments/language-subtag-registry/language-subtag-registry + + src/hb-ot-tag.cc | 14 ++++++++++++-- + test/api/test-ot-tag.c | 6 ++++++ + 2 files changed, 18 insertions(+), 2 deletions(-) + +commit bd1aac9c0021a936058637424a478abf792533dd +Merge: 18c19dd a0f1b44 +Author: Sascha Brawer +Date: Thu Aug 18 13:59:38 2016 +0200 + + Merge pull request #302 from khaledhosny/master + + [travis] Fix MacOS libtool issue + +commit a0f1b44b6c0e3b1e6a1ba63dde2be22e0425353f +Author: Khaled Hosny +Date: Tue Aug 16 03:09:04 2016 +0200 + + [coretext] Blind fix for build on MacOS 10.9 + + src/hb-coretext.cc | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 0634d5600e559a69a92d49173ffb8e715fe7576c +Author: Khaled Hosny +Date: Tue Aug 16 02:49:48 2016 +0200 + + [travis] Fix MacOS libtool issue + + Reveals another MacOS build breakage in the Core Text shaper. + + .travis.yml | 1 + + 1 file changed, 1 insertion(+) + +commit 18c19dd34dcdcaab0a6d47768339f8fb70c0d3f0 +Author: Behdad Esfahbod +Date: Tue Aug 9 13:03:14 2016 -0700 + + Fix build + + test/api/test-ot-tag.c | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +commit 91f2585411aaf5565fcf0c991b9055b0b397f1cd +Author: Behdad Esfahbod +Date: Mon Aug 8 18:08:08 2016 -0700 + + Actually add test + + test/shaping/Makefile.am | 1 + + 1 file changed, 1 insertion(+) + +commit f1b76275da716a4174092e6389979e03c0e3be59 +Author: Behdad Esfahbod +Date: Mon Aug 8 18:06:09 2016 -0700 + + Add tests for Chinese language tags + + Using font from https://github.com/behdad/harfbuzz/issues/300 + + .../sha1sum/6991b13ce889466be6de3f66e891de2bc0f117ee.ttf | Bin 0 -> + 5596 bytes + test/shaping/tests/language-tags.tests | 12 + ++++++++++++ + 2 files changed, 12 insertions(+) + +commit 37f21bdbb75c98d741e749b7f1e0f367941aef4e +Author: Behdad Esfahbod +Date: Mon Aug 8 17:57:06 2016 -0700 + + Map Macao to ZHH lang tag + + Fixes https://github.com/behdad/harfbuzz/issues/300 + + src/hb-ot-tag.cc | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +commit 09c7a2d6bf00dc902343e999f92cac0e8146f949 +Author: Behdad Esfahbod +Date: Mon Aug 8 17:28:54 2016 -0700 + + Limit bits-per-feature to eight + + Limits number of alternatives per glyph per feature to 255, so be it. + That's better than possibly breaking shaping because of one bad + feature + value. + + src/hb-ot-map.cc | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +commit 333173103bb618f721bd25d0c565a3c3c9ea224e +Author: Behdad Esfahbod +Date: Mon Aug 8 17:24:04 2016 -0700 + + Fix sign of shift operators + + This one: + + map->mask = (1 << (next_bit + bits_needed)) - (1 << next_bit); + + before the fix, the shift was done as an int, causing overflow + if it ever got to 1 << 31. Sprinkle 'u's around. + + Fixes https://bugs.chromium.org/p/chromium/issues/detail?id=634805 + + src/hb-buffer-private.hh | 6 +++--- + src/hb-cache-private.hh | 8 ++++---- + src/hb-coretext.cc | 2 +- + src/hb-directwrite.cc | 2 +- + src/hb-face.cc | 2 -- + src/hb-font.cc | 2 -- + src/hb-ft.cc | 6 ++++-- + src/hb-ot-map.cc | 4 ++-- + src/hb-set-private.hh | 4 ++-- + src/hb-uniscribe.cc | 4 ++-- + 10 files changed, 19 insertions(+), 21 deletions(-) + +commit 10a0d4aa2254f783758bb908175047df3a0b41fe +Author: Behdad Esfahbod +Date: Mon Aug 8 16:51:08 2016 -0700 + + Map zh-Hant-HK to ZHH + + Fixes https://github.com/behdad/harfbuzz/issues/300 + + src/hb-ot-tag.cc | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +commit dd31fc9f7e6d23b414b22874de96eb3c002c80ba +Author: Khaled Hosny +Date: Fri Jul 22 02:26:54 2016 +0300 + + Don’t build UCDN support when building with GLib (#296) + + Regression from: b424b6c372dfe4c0ed75a49761eb34a416819446. + + configure.ac | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 489acf6c3180d3726158864fa0e1adeea3c23fae +Author: Behdad Esfahbod +Date: Fri Jul 22 17:41:43 2016 -0700 + + [coretext] "Fix" crashes on CoreText < 10.10 + + Fixes https://github.com/behdad/harfbuzz/issues/297 + + src/hb-coretext.cc | 8 ++++++++ + 1 file changed, 8 insertions(+) + +commit a732e00ea4fffebaa85a89420f09df4c11d650e0 +Author: Behdad Esfahbod +Date: Thu Jul 21 01:58:00 2016 -0700 + + 1.3.0 + + NEWS | 15 +++++++++++++++ + configure.ac | 2 +- + 2 files changed, 16 insertions(+), 1 deletion(-) + commit 08c08af2f9ed683ad20322c3ef1ba0f87ce15426 Author: Behdad Esfahbod Date: Thu Jul 21 01:23:33 2016 -0700 diff --git a/Build/source/libs/harfbuzz/harfbuzz-src/NEWS b/Build/source/libs/harfbuzz/harfbuzz-src/NEWS index 6f46119c815..52686870c31 100644 --- a/Build/source/libs/harfbuzz/harfbuzz-src/NEWS +++ b/Build/source/libs/harfbuzz/harfbuzz-src/NEWS @@ -1,3 +1,12 @@ +Overview of changes leading to 1.3.1 +Wednesday, September 7, 2016 +==================================== + +- Blacklist bad GDEF of more fonts (Padauk). +- More CoreText backend crash fixes with OS X 10.9.5. +- Misc fixes. + + Overview of changes leading to 1.3.0 Thursday, July 21, 2016 ==================================== diff --git a/Build/source/libs/harfbuzz/harfbuzz-src/README b/Build/source/libs/harfbuzz/harfbuzz-src/README index 3fcdfb4c338..69a1bdd9ff3 100644 --- a/Build/source/libs/harfbuzz/harfbuzz-src/README +++ b/Build/source/libs/harfbuzz/harfbuzz-src/README @@ -1,4 +1,5 @@ [![Build Status](https://travis-ci.org/behdad/harfbuzz.svg)](https://travis-ci.org/behdad/harfbuzz) +[![Build Status](https://ci.appveyor.com/api/projects/status/4oaq58ns2h0m2soa?svg=true)](https://ci.appveyor.com/project/behdad/harfbuzz) [![Coverage Status](https://img.shields.io/coveralls/behdad/harfbuzz.svg)](https://coveralls.io/r/behdad/harfbuzz) [ABI Tracker](http://abi-laboratory.pro/tracker/timeline/harfbuzz/) diff --git a/Build/source/libs/harfbuzz/harfbuzz-src/configure.ac b/Build/source/libs/harfbuzz/harfbuzz-src/configure.ac index e1a28f2d837..ea6fc27cb9c 100644 --- a/Build/source/libs/harfbuzz/harfbuzz-src/configure.ac +++ b/Build/source/libs/harfbuzz/harfbuzz-src/configure.ac @@ -1,6 +1,6 @@ AC_PREREQ([2.64]) AC_INIT([HarfBuzz], - [1.3.0], + [1.3.1], [https://github.com/behdad/harfbuzz/issues/new], [harfbuzz], [http://harfbuzz.org/]) @@ -288,7 +288,7 @@ AM_CONDITIONAL(HAVE_ICU_BUILTIN, $have_icu && test "x$with_icu" = "xbuiltin") dnl =========================================================================== have_ucdn=true -if $have_glib || $have_icu && test "x$with_icu" = "xbuiltin"; then +if $have_glib || test \( $have_icu -a "x$with_icu" = "xbuiltin" \); then have_ucdn=false fi if $have_ucdn; then diff --git a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-buffer-private.hh b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-buffer-private.hh index ed592f4481f..bca308da2f5 100644 --- a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-buffer-private.hh +++ b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-buffer-private.hh @@ -134,7 +134,7 @@ struct hb_buffer_t { #ifndef HB_NDEBUG unsigned int end = start + count; assert (end <= 8); - unsigned int bits = (1<> value_bits) != (key >> cache_bits)) return false; - *value = v & ((1<> key_bits) || (value >> value_bits))) return false; /* Overflows */ - unsigned int k = key & ((1<>cache_bits)< hb_cmap_cache_t; diff --git a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-coretext.cc b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-coretext.cc index f4d9716e9e3..ee7f91cc9a7 100644 --- a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-coretext.cc +++ b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-coretext.cc @@ -145,6 +145,21 @@ create_ct_font (CGFontRef cg_font, CGFloat font_size) DEBUG_MSG (CORETEXT, cg_font, "Font CTFontCreateWithGraphicsFont() failed"); return NULL; } + + /* crbug.com/576941 and crbug.com/625902 and the investigation in the latter + * bug indicate that the cascade list reconfiguration occasionally causes + * crashes in CoreText on OS X 10.9, thus let's skip this step on older + * operating system versions. Except for the emoji font, where _not_ + * reconfiguring the cascade list causes CoreText crashes. For details, see + * crbug.com/549610 */ + if (&CTGetCoreTextVersion != NULL && CTGetCoreTextVersion() < kCTVersionNumber10_10) { + CFStringRef fontName = CTFontCopyPostScriptName (ct_font); + bool isEmojiFont = CFStringCompare (fontName, CFSTR("AppleColorEmoji"), 0) == kCFCompareEqualTo; + CFRelease (fontName); + if (!isEmojiFont) + return ct_font; + } + CFURLRef original_url = (CFURLRef)CTFontCopyAttribute(ct_font, kCTFontURLAttribute); /* Create font copy with cascade list that has LastResort first; this speeds up CoreText @@ -717,7 +732,7 @@ _hb_coretext_shape (hb_shape_plan_t *shape_plan, pchars[chars_len++] = 0xFFFDu; else { pchars[chars_len++] = 0xD800u + ((c - 0x10000u) >> 10); - pchars[chars_len++] = 0xDC00u + ((c - 0x10000u) & ((1 << 10) - 1)); + pchars[chars_len++] = 0xDC00u + ((c - 0x10000u) & ((1u << 10) - 1)); } } diff --git a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-directwrite.cc b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-directwrite.cc index 09889d04ec5..76482acd3b3 100644 --- a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-directwrite.cc +++ b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-directwrite.cc @@ -29,10 +29,6 @@ #include "hb-directwrite.h" -#include "hb-open-file-private.hh" -#include "hb-ot-name-table.hh" -#include "hb-ot-tag.h" - #ifndef HB_DEBUG_DIRECTWRITE #define HB_DEBUG_DIRECTWRITE (HB_DEBUG+0) @@ -586,7 +582,7 @@ _hb_directwrite_shape(hb_shape_plan_t *shape_plan, textString[chars_len++] = 0xFFFDu; else { textString[chars_len++] = 0xD800u + ((c - 0x10000u) >> 10); - textString[chars_len++] = 0xDC00u + ((c - 0x10000u) & ((1 << 10) - 1)); + textString[chars_len++] = 0xDC00u + ((c - 0x10000u) & ((1u << 10) - 1)); } } diff --git a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-face.cc b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-face.cc index 9effc41c887..6b563bc8f1c 100644 --- a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-face.cc +++ b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-face.cc @@ -35,8 +35,6 @@ #include "hb-ot-head-table.hh" #include "hb-ot-maxp-table.hh" -#include "hb-cache-private.hh" - #include diff --git a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-font.cc b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-font.cc index 60554b9c786..08fcd647588 100644 --- a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-font.cc +++ b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-font.cc @@ -35,8 +35,6 @@ #include "hb-ot-head-table.hh" #include "hb-ot-maxp-table.hh" -#include "hb-cache-private.hh" - #include diff --git a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ft.cc b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ft.cc index eaa1311d445..2b06c59be38 100644 --- a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ft.cc +++ b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ft.cc @@ -33,6 +33,8 @@ #include "hb-font-private.hh" +#include "hb-cache-private.hh" // Maybe use in the future? + #include FT_ADVANCES_H #include FT_TRUETYPE_TABLES_H @@ -606,8 +608,8 @@ hb_ft_font_create (FT_Face ft_face, hb_face_destroy (face); _hb_ft_font_set_funcs (font, ft_face, false); hb_font_set_scale (font, - (int) (((uint64_t) ft_face->size->metrics.x_scale * (uint64_t) ft_face->units_per_EM + (1<<15)) >> 16), - (int) (((uint64_t) ft_face->size->metrics.y_scale * (uint64_t) ft_face->units_per_EM + (1<<15)) >> 16)); + (int) (((uint64_t) ft_face->size->metrics.x_scale * (uint64_t) ft_face->units_per_EM + (1u<<15)) >> 16), + (int) (((uint64_t) ft_face->size->metrics.y_scale * (uint64_t) ft_face->units_per_EM + (1u<<15)) >> 16)); #if 0 /* hb-ft works in no-hinting model */ hb_font_set_ppem (font, ft_face->size->metrics.x_ppem, diff --git a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-layout.cc b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-layout.cc index b52c5f37e29..5cb1491c341 100644 --- a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-layout.cc +++ b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-layout.cc @@ -120,6 +120,14 @@ _hb_ot_layout_create (hb_face_t *face) /* 2c0c90c6f6087ffbfea76589c93113a9cbb0e75f cantarell-fonts-0.0.21/otf/Cantarell-Bold.otf */ /* 55461f5b853c6da88069ffcdf7f4dd3f8d7e3e6b cantarell-fonts-0.0.21/otf/Cantarell-Bold-Oblique.otf */ || (188 == gdef_len && 3426 == gpos_len && 264 == gsub_len) + /* 6c93b63b64e8b2c93f5e824e78caca555dc887c7 padauk-2.80/Padauk-book.ttf */ + || (1046 == gdef_len && 17112 == gpos_len && 71788 == gsub_len) + /* d89b1664058359b8ec82e35d3531931125991fb9 padauk-2.80/Padauk-bookbold.ttf */ + || (1058 == gdef_len && 17514 == gpos_len && 71794 == gsub_len) + /* 824cfd193aaf6234b2b4dc0cf3c6ef576c0d00ef padauk-3.0/Padauk-book.ttf */ + || (1330 == gdef_len && 57938 == gpos_len && 109904 == gsub_len) + /* 91fcc10cf15e012d27571e075b3b4dfe31754a8a padauk-3.0/Padauk-bookbold.ttf */ + || (1330 == gdef_len && 58972 == gpos_len && 109904 == gsub_len) ) { /* Many versions of Tahoma have bad GDEF tables that incorrectly classify some spacing marks diff --git a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-map.cc b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-map.cc index 7822cef8b3c..17e3f4065e3 100644 --- a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-map.cc +++ b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-map.cc @@ -193,7 +193,8 @@ hb_ot_map_builder_t::compile (hb_ot_map_t &m) /* Uses the global bit */ bits_needed = 0; else - bits_needed = _hb_bit_storage (info->max_value); + /* Limit to 8 bits per feature. */ + bits_needed = MIN(8u, _hb_bit_storage (info->max_value)); if (!info->max_value || next_bit + bits_needed > 8 * sizeof (hb_mask_t)) continue; /* Feature disabled, or not enough bits. */ @@ -243,11 +244,11 @@ hb_ot_map_builder_t::compile (hb_ot_map_t &m) map->mask = 1; } else { map->shift = next_bit; - map->mask = (1 << (next_bit + bits_needed)) - (1 << next_bit); + map->mask = (1u << (next_bit + bits_needed)) - (1u << next_bit); next_bit += bits_needed; m.global_mask |= (info->default_value << map->shift) & map->mask; } - map->_1_mask = (1 << map->shift) & map->mask; + map->_1_mask = (1u << map->shift) & map->mask; map->needs_fallback = !found; } diff --git a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-tag.cc b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-tag.cc index 04835576da8..5f21ac09677 100644 --- a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-tag.cc +++ b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-tag.cc @@ -826,16 +826,19 @@ static const LangTag ot_languages[] = { }; typedef struct { - char language[8]; + char language[11]; hb_tag_t tag; } LangTagLong; static const LangTagLong ot_languages_zh[] = { + /* Store longest-first, if one is a prefix of another. */ {"zh-cn", HB_TAG('Z','H','S',' ')}, /* Chinese (China) */ {"zh-hk", HB_TAG('Z','H','H',' ')}, /* Chinese (Hong Kong) */ - {"zh-mo", HB_TAG('Z','H','T',' ')}, /* Chinese (Macao) */ + {"zh-mo", HB_TAG('Z','H','H',' ')}, /* Chinese (Macao) */ {"zh-sg", HB_TAG('Z','H','S',' ')}, /* Chinese (Singapore) */ {"zh-tw", HB_TAG('Z','H','T',' ')}, /* Chinese (Taiwan) */ {"zh-hans", HB_TAG('Z','H','S',' ')}, /* Chinese (Simplified) */ + {"zh-hant-hk",HB_TAG('Z','H','H',' ')}, /* Chinese (Hong Kong) */ + {"zh-hant-mo",HB_TAG('Z','H','H',' ')}, /* Chinese (Macao) */ {"zh-hant", HB_TAG('Z','H','T',' ')}, /* Chinese (Traditional) */ }; @@ -889,13 +892,21 @@ hb_ot_tag_from_language (hb_language_t language) } /* - * The International Phonetic Alphabet is a variant tag in BCP-47, - * which can be applied to any language. + * "fonipa" is a variant tag in BCP-47, meaning the International Phonetic Alphabet. + * It can be applied to any language. */ if (strstr (lang_str, "-fonipa")) { return HB_TAG('I','P','P','H'); /* Phonetic transcription—IPA conventions */ } + /* + * "fonnapa" is a variant tag in BCP-47, meaning the North American Phonetic Alphabet + * also known as Americanist Phonetic Notation. It can be applied to any language. + */ + if (strstr (lang_str, "-fonnapa")) { + return HB_TAG('A','P','P','H'); /* Phonetic transcription—Americanist conventions */ + } + /* Find a language matching in the first component */ { const LangTag *lang_tag; @@ -967,6 +978,8 @@ hb_ot_tag_to_language (hb_tag_t tag) /* struct LangTag has only room for 3-letter language tags. */ switch (tag) { + case HB_TAG('A','P','P','H'): /* Phonetic transcription—Americanist conventions */ + return hb_language_from_string ("und-fonnapa", -1); case HB_TAG('I','P','P','H'): /* Phonetic transcription—IPA conventions */ return hb_language_from_string ("und-fonipa", -1); } diff --git a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-set-private.hh b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-set-private.hh index 3c302b1daf6..e2010d76267 100644 --- a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-set-private.hh +++ b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-set-private.hh @@ -313,7 +313,7 @@ struct hb_set_t for (unsigned int i = 0; i < ELTS; i++) if (elts[i]) for (unsigned int j = 0; j < BITS; j++) - if (elts[i] & (1 << j)) + if (elts[i] & (1u << j)) return i * BITS + j; return INVALID; } @@ -322,7 +322,7 @@ struct hb_set_t for (unsigned int i = ELTS; i; i--) if (elts[i - 1]) for (unsigned int j = BITS; j; j--) - if (elts[i - 1] & (1 << (j - 1))) + if (elts[i - 1] & (1u << (j - 1))) return (i - 1) * BITS + (j - 1); return INVALID; } diff --git a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-shape-plan.cc b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-shape-plan.cc index 56e2ea5c192..87231fb33a6 100644 --- a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-shape-plan.cc +++ b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-shape-plan.cc @@ -289,9 +289,10 @@ hb_shape_plan_execute (hb_shape_plan_t *shape_plan, unsigned int num_features) { DEBUG_MSG_FUNC (SHAPE_PLAN, shape_plan, - "num_features=%d shaper_func=%p", + "num_features=%d shaper_func=%p, shaper_name=%s", num_features, - shape_plan->shaper_func); + shape_plan->shaper_func, + shape_plan->shaper_name); if (unlikely (!buffer->len)) return true; diff --git a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-uniscribe.cc b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-uniscribe.cc index 7fda6788b6a..07007a64022 100644 --- a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-uniscribe.cc +++ b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-uniscribe.cc @@ -771,7 +771,7 @@ retry: pchars[chars_len++] = 0xFFFDu; else { pchars[chars_len++] = 0xD800u + ((c - 0x10000u) >> 10); - pchars[chars_len++] = 0xDC00u + ((c - 0x10000u) & ((1 << 10) - 1)); + pchars[chars_len++] = 0xDC00u + ((c - 0x10000u) & ((1u << 10) - 1)); } } @@ -827,7 +827,7 @@ retry: /* MinGW32 doesn't define fMergeNeutralItems, so we bruteforce */ //bidi_control.fMergeNeutralItems = true; - *(uint32_t*)&bidi_control |= 1<<24; + *(uint32_t*)&bidi_control |= 1u<<24; bidi_state.uBidiLevel = HB_DIRECTION_IS_FORWARD (buffer->props.direction) ? 0 : 1; bidi_state.fOverrideDirection = 1; diff --git a/Build/source/libs/harfbuzz/version.ac b/Build/source/libs/harfbuzz/version.ac index b977e8964c1..a0e058da46f 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], [1.3.0]) +m4_define([harfbuzz_version], [1.3.1]) -- cgit v1.2.3