From 0a724be58b4ae6b71c4300427bc2dfe570aa1f66 Mon Sep 17 00:00:00 2001 From: Akira Kakuto Date: Sun, 24 Apr 2022 23:31:44 +0000 Subject: harfbuzz 4.2.1 git-svn-id: svn://tug.org/texlive/trunk@63128 c570f23f-e606-0410-a88d-b1316a301751 --- Build/source/libs/README | 4 +- Build/source/libs/harfbuzz/ChangeLog | 5 + Build/source/libs/harfbuzz/TLpatches/ChangeLog | 5 + Build/source/libs/harfbuzz/TLpatches/TL-Changes | 4 +- Build/source/libs/harfbuzz/configure | 24 +- .../libs/harfbuzz/harfbuzz-src/CMakeLists.txt | 4 +- Build/source/libs/harfbuzz/harfbuzz-src/ChangeLog | 404 +++++++++++++++++++++ Build/source/libs/harfbuzz/harfbuzz-src/NEWS | 12 + Build/source/libs/harfbuzz/harfbuzz-src/README.md | 6 +- .../source/libs/harfbuzz/harfbuzz-src/configure.ac | 2 +- .../source/libs/harfbuzz/harfbuzz-src/meson.build | 2 +- .../harfbuzz-src/src/check-static-inits.py | 2 +- .../harfbuzz-src/src/hb-aat-layout-morx-table.hh | 4 +- .../libs/harfbuzz/harfbuzz-src/src/hb-blob.cc | 4 +- .../harfbuzz-src/src/hb-ot-layout-gsubgpos.hh | 14 +- .../harfbuzz-src/src/hb-ot-shape-complex-khmer.cc | 9 +- .../src/hb-ot-shape-complex-myanmar.cc | 3 +- .../libs/harfbuzz/harfbuzz-src/src/hb-ot-shape.cc | 26 +- .../source/libs/harfbuzz/harfbuzz-src/src/main.cc | 20 +- Build/source/libs/harfbuzz/version.ac | 2 +- 20 files changed, 497 insertions(+), 59 deletions(-) (limited to 'Build') diff --git a/Build/source/libs/README b/Build/source/libs/README index 5b46bf55f05..860e33a0698 100644 --- a/Build/source/libs/README +++ b/Build/source/libs/README @@ -25,8 +25,8 @@ graphite2 1.3.14 - checked 10apr20 http://sourceforge.net/projects/silgraphite/files/graphite2/ (requires C++11) -harfbuzz 4.2.0 - checked 04apr22 - https://github.com/harfbuzz/harfbuzz/releases/download/4.2.0/ +harfbuzz 4.2.1 - checked 25apr22 + https://github.com/harfbuzz/harfbuzz/releases/download/4.2.1/ icu 70.1 - checked 16jan22 https://github.com/unicode-org/icu/releases/ diff --git a/Build/source/libs/harfbuzz/ChangeLog b/Build/source/libs/harfbuzz/ChangeLog index 1cb21554445..296b421ac35 100644 --- a/Build/source/libs/harfbuzz/ChangeLog +++ b/Build/source/libs/harfbuzz/ChangeLog @@ -1,3 +1,8 @@ +2022-04-25 Akira Kakuto + + Import harfbuzz-4.2.1. + * version.ac: Adjusted. + 2022-04-04 Akira Kakuto Import harfbuzz-4.2.0. diff --git a/Build/source/libs/harfbuzz/TLpatches/ChangeLog b/Build/source/libs/harfbuzz/TLpatches/ChangeLog index 0e1212d2739..a8d0e0d8e22 100644 --- a/Build/source/libs/harfbuzz/TLpatches/ChangeLog +++ b/Build/source/libs/harfbuzz/TLpatches/ChangeLog @@ -1,3 +1,8 @@ +2022-04-25 Akira Kakuto + + Imported harfbuzz-4.2.1 source tree from: + https://github.com/harfbuzz/harfbuzz/releases/download/4.2.1/ + 2022-04-04 Akira Kakuto Imported harfbuzz-4.2.0 source tree from: diff --git a/Build/source/libs/harfbuzz/TLpatches/TL-Changes b/Build/source/libs/harfbuzz/TLpatches/TL-Changes index c8124ac5c69..aa3c120185a 100644 --- a/Build/source/libs/harfbuzz/TLpatches/TL-Changes +++ b/Build/source/libs/harfbuzz/TLpatches/TL-Changes @@ -1,5 +1,5 @@ -Changes applied to the harfbuzz-4.2.0/ tree as obtained from: - https://github.com/harfbuzz/harfbuzz/releases/download/4.2.0/ +Changes applied to the harfbuzz-4.2.1/ tree as obtained from: + https://github.com/harfbuzz/harfbuzz/releases/download/4.2.1/ Removed: COPYING diff --git a/Build/source/libs/harfbuzz/configure b/Build/source/libs/harfbuzz/configure index 56837e62396..d20e622349a 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.71 for harfbuzz (TeX Live) 4.2.0. +# Generated by GNU Autoconf 2.71 for harfbuzz (TeX Live) 4.2.1. # # Report bugs to . # @@ -611,8 +611,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='harfbuzz (TeX Live)' PACKAGE_TARNAME='harfbuzz--tex-live-' -PACKAGE_VERSION='4.2.0' -PACKAGE_STRING='harfbuzz (TeX Live) 4.2.0' +PACKAGE_VERSION='4.2.1' +PACKAGE_STRING='harfbuzz (TeX Live) 4.2.1' PACKAGE_BUGREPORT='tex-k@tug.org' PACKAGE_URL='' @@ -1346,7 +1346,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) 4.2.0 to adapt to many kinds of systems. +\`configure' configures harfbuzz (TeX Live) 4.2.1 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1418,7 +1418,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of harfbuzz (TeX Live) 4.2.0:";; + short | recursive ) echo "Configuration of harfbuzz (TeX Live) 4.2.1:";; esac cat <<\_ACEOF @@ -1523,7 +1523,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -harfbuzz (TeX Live) configure 4.2.0 +harfbuzz (TeX Live) configure 4.2.1 generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. @@ -2064,7 +2064,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 4.2.0, which was +It was created by harfbuzz (TeX Live) $as_me 4.2.1, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -4823,7 +4823,7 @@ fi # Define the identity of the package. PACKAGE='harfbuzz--tex-live-' - VERSION='4.2.0' + VERSION='4.2.1' # Some tools Automake needs. @@ -5035,8 +5035,8 @@ WARNING_CFLAGS=$kpse_cv_warning_cflags HB_VERSION_MAJOR=4 HB_VERSION_MINOR=2 -HB_VERSION_MICRO=0 -HB_VERSION=4.2.0 +HB_VERSION_MICRO=1 +HB_VERSION=4.2.1 ac_ext=c ac_cpp='$CPP $CPPFLAGS' @@ -8817,7 +8817,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 4.2.0, which was +This file was extended by harfbuzz (TeX Live) $as_me 4.2.1, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -8885,7 +8885,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -harfbuzz (TeX Live) config.status 4.2.0 +harfbuzz (TeX Live) config.status 4.2.1 configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" diff --git a/Build/source/libs/harfbuzz/harfbuzz-src/CMakeLists.txt b/Build/source/libs/harfbuzz/harfbuzz-src/CMakeLists.txt index 3259ca90ca5..9a1d9032fcd 100644 --- a/Build/source/libs/harfbuzz/harfbuzz-src/CMakeLists.txt +++ b/Build/source/libs/harfbuzz/harfbuzz-src/CMakeLists.txt @@ -462,7 +462,9 @@ if (UNIX OR MINGW) link_libraries(-Bsymbolic-functions) endif () - if (CMAKE_CXX_COMPILER_ID STREQUAL "Clang" OR CMAKE_CXX_COMPILER_ID STREQUAL "GNU") + # As of CMake 3.0.0, the compiler id for Apple-provided Clang is now "AppleClang"; + # thus we use MATCHES instead of STREQUAL to include either regular Clang or AppleClang + if (CMAKE_CXX_COMPILER_ID MATCHES "Clang" OR CMAKE_CXX_COMPILER_ID STREQUAL "GNU") # Make sure we don't link to libstdc++ set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-rtti -fno-exceptions") set (CMAKE_CXX_IMPLICIT_LINK_LIBRARIES "m") # libm diff --git a/Build/source/libs/harfbuzz/harfbuzz-src/ChangeLog b/Build/source/libs/harfbuzz/harfbuzz-src/ChangeLog index 96442fbacc7..db86a790269 100644 --- a/Build/source/libs/harfbuzz/harfbuzz-src/ChangeLog +++ b/Build/source/libs/harfbuzz/harfbuzz-src/ChangeLog @@ -1,3 +1,407 @@ +commit f7aee78e90bc53b3a95eb56d7550c9effe569ea2 +Author: Khaled Hosny +Date: Sun Apr 24 05:47:57 2022 +0200 + + 4.2.1 + + NEWS | 12 ++++++++++++ + configure.ac | 2 +- + meson.build | 2 +- + src/hb-version.h | 4 ++-- + 4 files changed, 16 insertions(+), 4 deletions(-) + +commit 6695bf056065f2e2e56c0e00b9740e6685a8af28 +Author: Behdad Esfahbod +Date: Fri Apr 22 13:48:41 2022 -0600 + + [gsubgpos] Remove wrong condition in Context application + + Fixes https://github.com/harfbuzz/harfbuzz/issues/3545 + + src/hb-ot-layout-gsubgpos.hh | 5 ----- + 1 file changed, 5 deletions(-) + +commit 038203de61d67b56b3426015b449178aa661157a +Author: Khaled Hosny +Date: Fri Apr 22 01:29:29 2022 +0200 + + Remove ABI tracker link + + Seems dead, no update since 2020. + + README.md | 1 - + 1 file changed, 1 deletion(-) + +commit c8810277bb004ad4ef1c0b2485c0fdecf39764b9 +Author: Khaled Hosny +Date: Fri Apr 22 01:01:06 2022 +0200 + + Update Coverity settings + + .github/workflows/coverity-scan.yml | 6 +++--- + README.md | 2 +- + 2 files changed, 4 insertions(+), 4 deletions(-) + +commit b2d317339a66be756b136d50ad74b328c3acfcec +Author: Khaled Hosny +Date: Fri Apr 22 00:47:37 2022 +0200 + + Update codacy badge + + README.md | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 6a38c83d4f9b285b66177d8d1757744621de23e2 +Author: Khaled Hosny +Date: Fri Apr 22 00:39:45 2022 +0200 + + Remove coveralls badge + + We stopped pushing coveralls builds since 2020. + + README.md | 1 - + 1 file changed, 1 deletion(-) + +commit 392f201047db16cdbc082217c0fb4e9db86a9097 +Author: Khaled Hosny +Date: Thu Apr 21 21:24:58 2022 +0200 + + [ci] Pin gcovr to version 5.0 + + Fixes https://github.com/harfbuzz/harfbuzz/issues/3540 + + .github/workflows/linux-ci.yml | 4 ++-- + .github/workflows/macos-ci.yml | 4 ++-- + 2 files changed, 4 insertions(+), 4 deletions(-) + +commit 4c177de1f597512f61e90039d54afa2f3884eb71 +Author: Behdad Esfahbod +Date: Thu Apr 21 13:51:37 2022 -0600 + + [perf] Err. Remove HUGE font from perf suite + + perf/benchmark-subset.cc | 2 ++ + perf/fonts/NotoSansCJKsc-VF.ttf | Bin 36144788 -> 0 bytes + 2 files changed, 2 insertions(+) + +commit 7f7ebdc6bb73bc24d6aa51f2a2c6b214484f5ee4 +Author: Behdad Esfahbod +Date: Thu Apr 21 11:25:12 2022 -0600 + + [perf] Reuse a font + + perf/benchmark-subset.cc | 2 +- + perf/fonts/Mplus1p-Regular.ttf | Bin 1757292 -> 0 bytes + 2 files changed, 1 insertion(+), 1 deletion(-) + +commit 85142f3247c6ee8cb69006872629cd855f5eeb8f +Author: Garret Rieger +Date: Wed Apr 20 22:32:54 2022 +0000 + + [perf] Add missing ninja command in profiling instructions. + + perf/README.md | 1 + + 1 file changed, 1 insertion(+) + +commit a5cf917892f31a7197ea9b58d2938f0cae3aaf9e +Author: Garret Rieger +Date: Wed Apr 20 22:31:26 2022 +0000 + + [perf] Update readme with profiling instructions. + + perf/README.md | 21 +++++++++++++++++++++ + 1 file changed, 21 insertions(+) + +commit df3ecea773c5f68632e5b4ff0fb5568ce1864272 +Author: Behdad Esfahbod +Date: Wed Apr 20 16:06:06 2022 -0600 + + [perf/perf] Fix run when ttfparser is not available + + perf/perf-draw.hh | 3 +++ + perf/perf-extents.hh | 3 +++ + 2 files changed, 6 insertions(+) + +commit f48647e58958e17e8a379c74d2f504f893d4c336 +Author: Garret Rieger +Date: Wed Apr 20 22:08:33 2022 +0000 + + In perf/README update meson command line to set release build type. + + perf/README.md | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit b3ce96da3b689dda4910ee72aa3b0f14d73230c7 +Author: Garret Rieger +Date: Wed Apr 20 21:51:20 2022 +0000 + + [perf] Add several more fonts to the subset benchmarks. + + perf/benchmark-subset.cc | 46 ++++++++++++++++++++++++++-------------- + perf/fonts/Mplus1p-Regular.ttf | Bin 0 -> 1757292 bytes + perf/fonts/NotoSansCJKsc-VF.ttf | Bin 0 -> 36144788 bytes + 3 files changed, 30 insertions(+), 16 deletions(-) + +commit 9ad300360d4fd9dee74e9aca65b2878a791cb64f +Author: Behdad Esfahbod +Date: Wed Apr 20 15:53:37 2022 -0600 + + [perf/perf-draw] Port to new draw API + + perf/perf-draw.hh | 27 +++++++++++---------------- + 1 file changed, 11 insertions(+), 16 deletions(-) + +commit 23c7c305bb4a8ba0fc70a7818a81f7af5ab1289d +Author: Behdad Esfahbod +Date: Wed Apr 20 15:45:37 2022 -0600 + + [perf/benchmark-map] Adjust range specifiers + + perf/benchmark-map.cc | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +commit 2b03bcedef6523a2ff3103cd4420561b4a696b6b +Author: Garret Rieger +Date: Wed Apr 20 21:34:45 2022 +0000 + + [perf] Cleanup range specifiers in set benchmark. + + perf/benchmark-set.cc | 28 ++++++++++++---------------- + 1 file changed, 12 insertions(+), 16 deletions(-) + +commit 178c67003f4554220494ce949723af19582cea7b +Author: Garret Rieger +Date: Wed Apr 20 21:19:54 2022 +0000 + + [perf] Rework set insert test to not use pause/resume timing. + + These have high overhead which affect the result. Also change set iteration to time the individual iteration operation. + + perf/benchmark-set.cc | 52 +++++++++++++++++++++++++++++++++--------------- + perf/benchmark-subset.cc | 3 +++ + 2 files changed, 39 insertions(+), 16 deletions(-) + +commit fbd183d0eb4aff0c3e790f58788d361d6640430e +Author: Garret Rieger +Date: Wed Apr 20 20:05:14 2022 +0000 + + [perf] Start writing subset benchmarks. + + perf/benchmark-subset.cc | 70 ++++++++++++++++++++++++++++++++++++++++++++++++ + perf/meson.build | 10 +++++++ + 2 files changed, 80 insertions(+) + +commit fc2027bf0709e356f3b66d3bc4edd1e9042e94ee +Author: Garret Rieger +Date: Wed Apr 20 19:33:04 2022 +0000 + + [perf] Add map benchmarks. + + perf/benchmark-map.cc | 63 +++++++++++++++++++++++++++++++++++++++++++++++++++ + perf/benchmark-set.cc | 5 ++++ + perf/meson.build | 16 +++++++++---- + 3 files changed, 79 insertions(+), 5 deletions(-) + +commit 057ec2c95396ddcaf1820f5c9fa6f7986bb010b3 +Author: Garret Rieger +Date: Wed Apr 20 19:15:03 2022 +0000 + + [perf] Add set ieration and lookup benchmarks. + + perf/benchmark-set.cc | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 48 insertions(+) + +commit 40975fc3c233af72d5f5591d957d128793e1c2dc +Author: Garret Rieger +Date: Wed Apr 20 18:54:36 2022 +0000 + + [perf] Add some instructions for building/running benchmarks. + + perf/README.md | 24 ++++++++++++++++++++++++ + 1 file changed, 24 insertions(+) + +commit cef64b947d26c10cbad47ea73e3c9fc9e5c55fc4 +Author: Garret Rieger +Date: Wed Apr 20 18:36:35 2022 +0000 + + [perf] Add the start of a benchmark for set operations. + + perf/benchmark-set.cc | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ + perf/meson.build | 15 +++++++++++++++ + 2 files changed, 64 insertions(+) + +commit e8b40c7a09607ecf6e2ce0d9bc32b826a5481ad7 +Author: Garret Rieger +Date: Wed Apr 20 17:47:02 2022 +0000 + + Upgrade google benchmark dep to latest version to fix build failure. + + subprojects/.gitignore | 2 +- + subprojects/google-benchmark.wrap | 16 +++++++++------- + 2 files changed, 10 insertions(+), 8 deletions(-) + +commit 8575a8f50c25ce96932f94d50425b1d7de8aeb12 +Author: Behdad Esfahbod +Date: Thu Apr 21 11:14:09 2022 -0600 + + Add _hb_codepoint_is_regional_indicator() + + src/hb-ot-shape.cc | 9 ++++++--- + 1 file changed, 6 insertions(+), 3 deletions(-) + +commit c1ee7d28f3ea476b6e80a82d1485e91a0efc9c3f +Author: Behdad Esfahbod +Date: Wed Apr 20 13:38:05 2022 -0600 + + Typo + + Co-authored-by: Khaled Hosny + + src/hb-ot-shape.cc | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 4d48fae4f247c789612f6a888aba6abf7906f012 +Author: Behdad Esfahbod +Date: Wed Apr 20 11:35:19 2022 -0600 + + Enforce Regional_Indicators native direction to LTR + + And undo the morx direction reversal change introduced in + https://github.com/harfbuzz/harfbuzz/pull/3315 + 23159084b43c1ce429d9e98035bf845919fd8a89 + + This fixes original bug https://github.com/harfbuzz/harfbuzz/issues/3314 + + And the reversion in morx code fixes regressions: + https://github.com/harfbuzz/harfbuzz/issues/3528 + https://github.com/harfbuzz/harfbuzz/issues/3535 + + Supersedes: + https://github.com/harfbuzz/harfbuzz/pull/3529 + + src/hb-aat-layout-morx-table.hh | 4 ++-- + src/hb-ot-shape.cc | 19 ++++++++++++++----- + test/shape/data/in-house/tests/macos.tests | 8 +++++++- + 3 files changed, 23 insertions(+), 8 deletions(-) + +commit a85461b9b6367d5ce313c800f9efc6a1ad750616 +Author: Behdad Esfahbod +Date: Wed Apr 20 12:13:16 2022 -0600 + + Add link to Context LookupFlag discussion + + https://github.com/harfbuzz/harfbuzz/discussions/3538 + + src/hb-ot-layout-gsubgpos.hh | 9 ++++----- + 1 file changed, 4 insertions(+), 5 deletions(-) + +commit af9eb6850a188a0491fcfd8a379534c5632a0a05 +Author: Simon Cozens +Date: Wed Apr 20 16:55:31 2022 +0100 + + Updated version + + docs/features.dot | 89 +++++++++++++++++++++++++++++++++++++++++++------------ + 1 file changed, 70 insertions(+), 19 deletions(-) + +commit 91e2f3b92a6a21ad462b6ef41bfd6a88f598e965 +Author: Simon Cozens +Date: Tue Apr 19 15:20:53 2022 +0100 + + Add cheat sheet + + docs/features.dot | 208 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 208 insertions(+) + +commit 9e59c401e05018eacc09d277251f692a517652c8 +Author: Simon Cozens +Date: Wed Apr 20 16:56:34 2022 +0100 + + [myanmar] Reword confusing comment about masks + + src/hb-ot-shape-complex-myanmar.cc | 3 +-- + 1 file changed, 1 insertion(+), 2 deletions(-) + +commit 383c11d75659540f4d064824f83446389a8334ce +Author: Khaled Hosny +Date: Tue Apr 19 16:31:44 2022 +0200 + + Add test for ligature-id allocation + + Test for the fix in 7bdc20ec810c14056d6362b076aa6717f10f26a0 for the + regression from 43be5ba442548528c89ad31c0927cc68515b736e. + + .../fonts/8339c821814d9bad7c77169332327ad8b0f33c81.ttf | Bin 0 -> 2312 bytes + test/shape/data/in-house/tests/ligature-id.tests | 1 + + 2 files changed, 1 insertion(+) + +commit 903cf8cfce631e5e0a5c8941d207dff3e3a59b82 +Author: Behdad Esfahbod +Date: Wed Apr 13 15:31:51 2022 -0600 + + [check-static-inits] Unbreak test + + src/check-static-inits.py | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit ec925ece05f3de0ba49a7712a4a2ebb389c54f70 +Author: Behdad Esfahbod +Date: Wed Apr 13 11:51:48 2022 -0600 + + [khmer] Reinstate a pause after basic features + + This was removed as part of 044d7a06db552e1564b8575f4d23798f009d9dde, + which caused the regression. Just adding a pause fixes the shaping. + Debugged by just tracing the good/bad shaping and observing the + lookup orders intermingling in the bad shaping. + + Test: + hb-shape LeelawUI.ttf --unicodes U+1780,U+17D2,U+179A,U+17BB + + Fixes https://github.com/harfbuzz/harfbuzz/issues/3531 + + src/hb-ot-shape-complex-khmer.cc | 9 ++++++++- + 1 file changed, 8 insertions(+), 1 deletion(-) + +commit cc0f1f3b60a920d5da19cc4f2886fd0e74655e8c +Author: Cosimo Lupo +Date: Tue Apr 12 10:45:43 2022 +0100 + + Expose --passthrough-tables option to hb-subset CLI tool + + util/hb-subset.cc | 1 + + 1 file changed, 1 insertion(+) + +commit 53eeeab0e39a9079324f8aad39a6ca0f446030e1 +Author: Cosimo Lupo +Date: Wed Apr 6 12:54:40 2022 +0100 + + CMakeLists.txt: also match 'AppleClang' compiler to not link with libc++ + + CMakeLists.txt | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +commit 88bb746b42ca4ae67e5e25cb669b604170d349c6 +Author: Khaled Hosny +Date: Fri Apr 1 02:18:37 2022 +0200 + + [blob] Return nullptr from create_from_file_or_fail + + Fix a couple of cases where it would return empty blob, possibly + missed in bdfed8f113431a2156e13d59a4b21e19feb7efd9. + + src/hb-blob.cc | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +commit b179d357a99884370dd8719d71ae87ca6dca33d7 +Author: Behdad Esfahbod +Date: Wed Mar 30 12:59:52 2022 -0600 + + [main] Fix unused-variable warnings + + src/main.cc | 20 ++++++++++---------- + 1 file changed, 10 insertions(+), 10 deletions(-) + commit 9d5730b958974bc9db95e46e6bad52e9e9cd6e1c Author: Khaled Hosny Date: Wed Mar 30 15:08:34 2022 +0200 diff --git a/Build/source/libs/harfbuzz/harfbuzz-src/NEWS b/Build/source/libs/harfbuzz/harfbuzz-src/NEWS index fe3da4b04cc..0559840cf35 100644 --- a/Build/source/libs/harfbuzz/harfbuzz-src/NEWS +++ b/Build/source/libs/harfbuzz/harfbuzz-src/NEWS @@ -1,3 +1,15 @@ +Overview of changes leading to 4.2.1 +Sunday, April 24, 2022 +==================================== +- Make sure hb_blob_create_from_file_or_fail() always returns nullptr in case + of failure and not empty blob sometimes. (Khaled Hosny) +- Add --passthrough-tables option to hb-subset. (Cosimo Lupo) +- Reinstate a pause after basic features in Khmer shaper, fixing a regression + introduced in previous release. (Behdad Esfahbod) +- Better handling of Regional_Indicator when shaped with RTL-native scripts, + reverting earlier fix that caused regressions in AAT shaping. (Behdad Esfahbod) + + Overview of changes leading to 4.2.0 Wednesday, March 30, 2022 ==================================== diff --git a/Build/source/libs/harfbuzz/harfbuzz-src/README.md b/Build/source/libs/harfbuzz/harfbuzz-src/README.md index 9deb32c1e89..fc12c65568c 100644 --- a/Build/source/libs/harfbuzz/harfbuzz-src/README.md +++ b/Build/source/libs/harfbuzz/harfbuzz-src/README.md @@ -1,12 +1,10 @@ [![Linux CI Status](https://github.com/harfbuzz/harfbuzz/workflows/linux-ci/badge.svg)](https://github.com/harfbuzz/harfbuzz/workflows/linux-ci/badge.svg) [![CircleCI Build Status](https://circleci.com/gh/harfbuzz/harfbuzz/tree/main.svg?style=svg)](https://circleci.com/gh/harfbuzz/harfbuzz/tree/main) [![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) +[![Coverity Scan Build Status](https://scan.coverity.com/projects/15166/badge.svg)](https://scan.coverity.com/projects/harfbuzz) +[![Codacy Badge](https://app.codacy.com/project/badge/Grade/89c872f5ce1c42af802602bfcd15d90a)](https://www.codacy.com/gh/harfbuzz/harfbuzz/dashboard?utm_source=github.com&utm_medium=referral&utm_content=harfbuzz/harfbuzz&utm_campaign=Badge_Grade) [![Codecov Code Coverage](https://codecov.io/gh/harfbuzz/harfbuzz/branch/main/graph/badge.svg)](https://codecov.io/gh/harfbuzz/harfbuzz) -[![Coverals Code Coverage](https://img.shields.io/coveralls/harfbuzz/harfbuzz.svg)](https://coveralls.io/r/harfbuzz/harfbuzz) [![Packaging status](https://repology.org/badge/tiny-repos/harfbuzz.svg)](https://repology.org/project/harfbuzz/versions) -[ABI Tracker](http://abi-laboratory.pro/tracker/timeline/harfbuzz/) This is HarfBuzz, a text shaping library. diff --git a/Build/source/libs/harfbuzz/harfbuzz-src/configure.ac b/Build/source/libs/harfbuzz/harfbuzz-src/configure.ac index 65246a6cd1f..c353567d4bb 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], - [4.2.0], + [4.2.1], [https://github.com/harfbuzz/harfbuzz/issues/new], [harfbuzz], [http://harfbuzz.org/]) diff --git a/Build/source/libs/harfbuzz/harfbuzz-src/meson.build b/Build/source/libs/harfbuzz/harfbuzz-src/meson.build index 7de42b88b2e..ed59489bea7 100644 --- a/Build/source/libs/harfbuzz/harfbuzz-src/meson.build +++ b/Build/source/libs/harfbuzz/harfbuzz-src/meson.build @@ -1,6 +1,6 @@ project('harfbuzz', 'c', 'cpp', meson_version: '>= 0.55.0', - version: '4.2.0', + version: '4.2.1', default_options: [ 'cpp_rtti=false', # Just to support msvc, we are passing -fno-exceptions also anyway 'cpp_std=c++11', diff --git a/Build/source/libs/harfbuzz/harfbuzz-src/src/check-static-inits.py b/Build/source/libs/harfbuzz/harfbuzz-src/src/check-static-inits.py index edd5874c18c..c6e2db1ea6b 100644 --- a/Build/source/libs/harfbuzz/harfbuzz-src/src/check-static-inits.py +++ b/Build/source/libs/harfbuzz/harfbuzz-src/src/check-static-inits.py @@ -14,7 +14,7 @@ if sys.version_info < (3, 5): print ('check-static-inits.py: needs python 3.5 for recursive support in glob') sys.exit (77) -OBJS = glob.glob (os.path.join (builddir, libs, '**', 'hb*.o'), recursive=True) +OBJS = glob.glob (os.path.join (builddir, libs, '**', '*hb*.o'), recursive=True) if not OBJS: print ('check-static-inits.py: object files not found; skipping test') sys.exit (77) diff --git a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-aat-layout-morx-table.hh b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-aat-layout-morx-table.hh index 2f99510925d..b77c1f4d449 100644 --- a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-aat-layout-morx-table.hh +++ b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-aat-layout-morx-table.hh @@ -1038,12 +1038,12 @@ struct Chain goto skip; if (reverse) - _hb_ot_layout_reverse_graphemes (c->buffer); + c->buffer->reverse (); subtable->apply (c); if (reverse) - _hb_ot_layout_reverse_graphemes (c->buffer); + c->buffer->reverse (); (void) c->buffer->message (c->font, "end chainsubtable %d", c->lookup_index); diff --git a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-blob.cc b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-blob.cc index f120002d17b..65e44c7f6a7 100644 --- a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-blob.cc +++ b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-blob.cc @@ -631,7 +631,7 @@ hb_blob_create_from_file_or_fail (const char *file_name) Allison Lortie permission but changed a lot to suit our need. */ #if defined(HAVE_MMAP) && !defined(HB_NO_MMAP) hb_mapped_file_t *file = (hb_mapped_file_t *) hb_calloc (1, sizeof (hb_mapped_file_t)); - if (unlikely (!file)) return hb_blob_get_empty (); + if (unlikely (!file)) return nullptr; int fd = open (file_name, O_RDONLY | O_BINARY, 0); if (unlikely (fd == -1)) goto fail_without_close; @@ -671,7 +671,7 @@ fail_without_close: #elif defined(_WIN32) && !defined(HB_NO_MMAP) hb_mapped_file_t *file = (hb_mapped_file_t *) hb_calloc (1, sizeof (hb_mapped_file_t)); - if (unlikely (!file)) return hb_blob_get_empty (); + if (unlikely (!file)) return nullptr; HANDLE fd; unsigned int size = strlen (file_name) + 1; diff --git a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-layout-gsubgpos.hh b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-layout-gsubgpos.hh index 3faa1e53d5c..56e8c5b0063 100644 --- a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-layout-gsubgpos.hh +++ b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-layout-gsubgpos.hh @@ -1415,11 +1415,6 @@ static inline void apply_lookup (hb_ot_apply_context_t *c, if (idx >= count) continue; - /* Don't recurse to ourself at same position. - * Note that this test is too naive, it doesn't catch longer loops. */ - if (unlikely (idx == 0 && lookupRecord[i].lookupListIndex == c->lookup_index)) - continue; - unsigned int orig_len = buffer->backtrack_len () + buffer->lookahead_len (); /* This can happen if earlier recursed lookups deleted many entries. */ @@ -1457,11 +1452,10 @@ static inline void apply_lookup (hb_ot_apply_context_t *c, * NOT the one after it. * * - If buffer length was decreased by n, it does not necessarily - * mean that n match positions where removed, as there might - * have been marks and default-ignorables in the sequence. We - * should instead drop match positions between current-position - * and current-position + n instead. Though, am not sure which - * one is better. Both cases have valid uses. Sigh. + * mean that n match positions where removed, as there recursed-to + * lookup might had a different LookupFlag. Here's a constructed + * case of that: + * https://github.com/harfbuzz/harfbuzz/discussions/3538 * * It should be possible to construct tests for both of these cases. */ diff --git a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-shape-complex-khmer.cc b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-shape-complex-khmer.cc index d7ec1632ead..a7d5bf574b6 100644 --- a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-shape-complex-khmer.cc +++ b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-shape-complex-khmer.cc @@ -110,7 +110,14 @@ collect_features_khmer (hb_ot_shape_planner_t *plan) map->enable_feature (HB_TAG('l','o','c','l'), F_PER_SYLLABLE); map->enable_feature (HB_TAG('c','c','m','p'), F_PER_SYLLABLE); - for (unsigned i = 0; i < KHMER_NUM_FEATURES; i++) + unsigned int i = 0; + for (; i < KHMER_BASIC_FEATURES; i++) + map->add_feature (khmer_features[i]); + + /* https://github.com/harfbuzz/harfbuzz/issues/3531 */ + map->add_gsub_pause (nullptr); + + for (; i < KHMER_NUM_FEATURES; i++) map->add_feature (khmer_features[i]); } diff --git a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-shape-complex-myanmar.cc b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-shape-complex-myanmar.cc index c7aa80a79ae..13beaf4d4ce 100644 --- a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-shape-complex-myanmar.cc +++ b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-shape-complex-myanmar.cc @@ -105,8 +105,7 @@ setup_masks_myanmar (const hb_ot_shape_plan_t *plan HB_UNUSED, HB_BUFFER_ALLOCATE_VAR (buffer, myanmar_category); HB_BUFFER_ALLOCATE_VAR (buffer, myanmar_position); - /* We cannot setup masks here. We save information about characters - * and setup masks later on in a pause-callback. */ + /* No masks, we just save information about characters. */ unsigned int count = buffer->len; hb_glyph_info_t *info = buffer->info; diff --git a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-shape.cc b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-shape.cc index 298cf477861..99aadab3f03 100644 --- a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-shape.cc +++ b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-shape.cc @@ -47,6 +47,9 @@ #include "hb-aat-layout.hh" +static inline bool +_hb_codepoint_is_regional_indicator (hb_codepoint_t u) +{ return hb_in_range (u, 0x1F1E6u, 0x1F1FFu); } #ifndef HB_NO_AAT_SHAPE static inline bool @@ -504,9 +507,9 @@ hb_set_unicode_props (hb_buffer_t *buffer) } /* Regional_Indicators are hairy as hell... * https://github.com/harfbuzz/harfbuzz/issues/2265 */ - else if (unlikely (i && hb_in_range (info[i].codepoint, 0x1F1E6u, 0x1F1FFu))) + else if (unlikely (i && _hb_codepoint_is_regional_indicator (info[i].codepoint))) { - if (hb_in_range (info[i - 1].codepoint, 0x1F1E6u, 0x1F1FFu) && + if (_hb_codepoint_is_regional_indicator (info[i - 1].codepoint) && !_hb_glyph_info_is_continuation (&info[i - 1])) _hb_glyph_info_set_continuation (&info[i]); } @@ -598,24 +601,33 @@ hb_ensure_native_direction (hb_buffer_t *buffer) * direction, so that features like ligatures will work as intended. * * https://github.com/harfbuzz/harfbuzz/issues/501 + * + * Similar thing about Regional_Indicators; They are bidi=L, but Script=Common. + * If they are present in a run of natively-RTL text, they get assigned a script + * with natively RTL direction, which would result in wrong shaping if we + * assign such native RTL direction to them then. Detect that as well. + * + * https://github.com/harfbuzz/harfbuzz/issues/3314 */ if (unlikely (horiz_dir == HB_DIRECTION_RTL && direction == HB_DIRECTION_LTR)) { - bool found_number = false, found_letter = false; + bool found_number = false, found_letter = false, found_ri = false; const auto* info = buffer->info; const auto count = buffer->len; for (unsigned i = 0; i < count; i++) { auto gc = _hb_glyph_info_get_general_category (&info[i]); if (gc == HB_UNICODE_GENERAL_CATEGORY_DECIMAL_NUMBER) - found_number = true; + found_number = true; else if (HB_UNICODE_GENERAL_CATEGORY_IS_LETTER (gc)) { - found_letter = true; - break; + found_letter = true; + break; } + else if (_hb_codepoint_is_regional_indicator (info[i].codepoint)) + found_ri = true; } - if (found_number && !found_letter) + if ((found_number || found_ri) && !found_letter) horiz_dir = HB_DIRECTION_LTR; } diff --git a/Build/source/libs/harfbuzz/harfbuzz-src/src/main.cc b/Build/source/libs/harfbuzz/harfbuzz-src/src/main.cc index fa35ae1770b..7a7614f7b69 100644 --- a/Build/source/libs/harfbuzz/harfbuzz-src/src/main.cc +++ b/Build/source/libs/harfbuzz/harfbuzz-src/src/main.cc @@ -136,8 +136,8 @@ struct draw_data_t }; static void -move_to (hb_draw_funcs_t *dfuncs, draw_data_t *draw_data, - hb_draw_state_t *st, +move_to (hb_draw_funcs_t *, draw_data_t *draw_data, + hb_draw_state_t *, float to_x, float to_y, void *) { @@ -145,8 +145,8 @@ move_to (hb_draw_funcs_t *dfuncs, draw_data_t *draw_data, } static void -line_to (hb_draw_funcs_t *dfuncs, draw_data_t *draw_data, - hb_draw_state_t *st, +line_to (hb_draw_funcs_t *, draw_data_t *draw_data, + hb_draw_state_t *, float to_x, float to_y, void *) { @@ -154,8 +154,8 @@ line_to (hb_draw_funcs_t *dfuncs, draw_data_t *draw_data, } static void -quadratic_to (hb_draw_funcs_t *dfuncs, draw_data_t *draw_data, - hb_draw_state_t *st, +quadratic_to (hb_draw_funcs_t *, draw_data_t *draw_data, + hb_draw_state_t *, float control_x, float control_y, float to_x, float to_y, void *) @@ -165,8 +165,8 @@ quadratic_to (hb_draw_funcs_t *dfuncs, draw_data_t *draw_data, } static void -cubic_to (hb_draw_funcs_t *dfuncs, draw_data_t *draw_data, - hb_draw_state_t *st, +cubic_to (hb_draw_funcs_t *, draw_data_t *draw_data, + hb_draw_state_t *, float control1_x, float control1_y, float control2_x, float control2_y, float to_x, float to_y, @@ -178,8 +178,8 @@ cubic_to (hb_draw_funcs_t *dfuncs, draw_data_t *draw_data, } static void -close_path (hb_draw_funcs_t *dfuncs, draw_data_t *draw_data, - hb_draw_state_t *st, +close_path (hb_draw_funcs_t *, draw_data_t *draw_data, + hb_draw_state_t *, void *) { fprintf (draw_data->f, "Z"); diff --git a/Build/source/libs/harfbuzz/version.ac b/Build/source/libs/harfbuzz/version.ac index ede14ef23d7..ef40866be78 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], [4.2.0]) +m4_define([harfbuzz_version], [4.2.1]) -- cgit v1.2.3