diff options
author | Akira Kakuto <kakuto@fuk.kindai.ac.jp> | 2017-09-06 08:48:50 +0000 |
---|---|---|
committer | Akira Kakuto <kakuto@fuk.kindai.ac.jp> | 2017-09-06 08:48:50 +0000 |
commit | 16e197d845e28903ffa6b30dcbedd3938fab0faa (patch) | |
tree | e0fe07807142a5c9b1481790c605014dd39197b7 /Build | |
parent | e6b2e4e09ae5d7dcae4522e8bb11c1f0a45d2a3a (diff) |
harfbuzz 1.5.1
git-svn-id: svn://tug.org/texlive/trunk@45229 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build')
-rw-r--r-- | Build/source/libs/README | 2 | ||||
-rw-r--r-- | Build/source/libs/harfbuzz/ChangeLog | 5 | ||||
-rw-r--r-- | Build/source/libs/harfbuzz/TLpatches/ChangeLog | 5 | ||||
-rw-r--r-- | Build/source/libs/harfbuzz/TLpatches/TL-Changes | 2 | ||||
-rwxr-xr-x | Build/source/libs/harfbuzz/configure | 24 | ||||
-rw-r--r-- | Build/source/libs/harfbuzz/harfbuzz-src/ChangeLog | 153 | ||||
-rw-r--r-- | Build/source/libs/harfbuzz/harfbuzz-src/NEWS | 13 | ||||
-rw-r--r-- | Build/source/libs/harfbuzz/harfbuzz-src/configure.ac | 2 | ||||
-rw-r--r-- | Build/source/libs/harfbuzz/harfbuzz-src/src/hb-buffer.cc | 18 | ||||
-rw-r--r-- | Build/source/libs/harfbuzz/harfbuzz-src/src/hb-buffer.h | 4 | ||||
-rw-r--r-- | Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-shape-complex-indic-private.hh | 2 | ||||
-rw-r--r-- | Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-shape.cc | 19 | ||||
-rw-r--r-- | Build/source/libs/harfbuzz/version.ac | 2 |
13 files changed, 217 insertions, 34 deletions
diff --git a/Build/source/libs/README b/Build/source/libs/README index b28a6a577e7..f00fc80e29f 100644 --- a/Build/source/libs/README +++ b/Build/source/libs/README @@ -24,7 +24,7 @@ gmp 6.1.2 - checked 16dec16 graphite2 1.3.10 - checked 20jun17 http://sourceforge.net/projects/silgraphite/files/graphite2/ -harfbuzz 1.5.0 - checked 24aug17 +harfbuzz 1.5.1 - checked 06Sep17 http://www.freedesktop.org/software/harfbuzz/release/ icu 58.2 - checked 13mar17 diff --git a/Build/source/libs/harfbuzz/ChangeLog b/Build/source/libs/harfbuzz/ChangeLog index 1122f8d58dd..5b813118fc8 100644 --- a/Build/source/libs/harfbuzz/ChangeLog +++ b/Build/source/libs/harfbuzz/ChangeLog @@ -1,3 +1,8 @@ +2017-09-06 Akira Kakuto <kakuto@fuk.kindai.ac.jp> + + Import harfbuzz-1.5.1. + * version.ac: Adjusted. + 2017-08-24 Akira Kakuto <kakuto@fuk.kindai.ac.jp> Import harfbuzz-1.5.0. diff --git a/Build/source/libs/harfbuzz/TLpatches/ChangeLog b/Build/source/libs/harfbuzz/TLpatches/ChangeLog index 914a2ee5f8d..c63378ab3d4 100644 --- a/Build/source/libs/harfbuzz/TLpatches/ChangeLog +++ b/Build/source/libs/harfbuzz/TLpatches/ChangeLog @@ -1,3 +1,8 @@ +2017-09-06 Akira Kakuto <kakuto@fuk.kindai.ac.jp> + + Imported harfbuzz-1.5.1 source tree from: + http://www.freedesktop.org/software/harfbuzz/release/ + 2017-08-24 Akira Kakuto <kakuto@fuk.kindai.ac.jp> Imported harfbuzz-1.5.0 source tree from: diff --git a/Build/source/libs/harfbuzz/TLpatches/TL-Changes b/Build/source/libs/harfbuzz/TLpatches/TL-Changes index 269ffbd8b18..62e7d3c1249 100644 --- a/Build/source/libs/harfbuzz/TLpatches/TL-Changes +++ b/Build/source/libs/harfbuzz/TLpatches/TL-Changes @@ -1,4 +1,4 @@ -Changes applied to the harfbuzz-1.5.0/ tree as obtained from: +Changes applied to the harfbuzz-1.5.1/ tree as obtained from: http://www.freedesktop.org/software/harfbuzz/release/ Removed: diff --git a/Build/source/libs/harfbuzz/configure b/Build/source/libs/harfbuzz/configure index 1e7ae0b4454..9838a3b1779 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.5.0. +# Generated by GNU Autoconf 2.69 for harfbuzz (TeX Live) 1.5.1. # # Report bugs to <tex-k@tug.org>. # @@ -580,8 +580,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='harfbuzz (TeX Live)' PACKAGE_TARNAME='harfbuzz--tex-live-' -PACKAGE_VERSION='1.5.0' -PACKAGE_STRING='harfbuzz (TeX Live) 1.5.0' +PACKAGE_VERSION='1.5.1' +PACKAGE_STRING='harfbuzz (TeX Live) 1.5.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.5.0 to adapt to many kinds of systems. +\`configure' configures harfbuzz (TeX Live) 1.5.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.5.0:";; + short | recursive ) echo "Configuration of harfbuzz (TeX Live) 1.5.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.5.0 +harfbuzz (TeX Live) configure 1.5.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.5.0, which was +It was created by harfbuzz (TeX Live) $as_me 1.5.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.5.0' + VERSION='1.5.1' cat >>confdefs.h <<_ACEOF @@ -4206,8 +4206,8 @@ WARNING_CFLAGS=$kpse_cv_warning_cflags HB_VERSION_MAJOR=1 HB_VERSION_MINOR=5 -HB_VERSION_MICRO=0 -HB_VERSION=1.5.0 +HB_VERSION_MICRO=1 +HB_VERSION=1.5.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.5.0, which was +This file was extended by harfbuzz (TeX Live) $as_me 1.5.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.5.0 +harfbuzz (TeX Live) config.status 1.5.1 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" diff --git a/Build/source/libs/harfbuzz/harfbuzz-src/ChangeLog b/Build/source/libs/harfbuzz/harfbuzz-src/ChangeLog index 699e67d042d..55885cfa14c 100644 --- a/Build/source/libs/harfbuzz/harfbuzz-src/ChangeLog +++ b/Build/source/libs/harfbuzz/harfbuzz-src/ChangeLog @@ -1,3 +1,156 @@ +commit d03f11f246efec13e48fd68a9ce136db771b22bf +Author: Behdad Esfahbod <behdad@behdad.org> +Date: Mon Sep 4 20:14:13 2017 -0700 + + Fix buffer_diff for empty buffers + + If buffers are empty, content type should be ignored. + + This fixes last of the failing tests: fuzzed.tests. Green again! + + src/hb-buffer.cc | 2 +- + src/hb-buffer.h | 4 ++-- + util/options.hh | 2 +- + 3 files changed, 4 insertions(+), 4 deletions(-) + +commit 7cc348041d0b026ca6d2c240134e8f9100600e99 +Author: Behdad Esfahbod <behdad@behdad.org> +Date: Mon Sep 4 20:04:59 2017 -0700 + + [unsafe-to-break] Fix unsafe-to-break for cluster-level=1 + + Fixes tests/shaping/tests/cluster.tests + + src/hb-ot-shape.cc | 17 +++++++++++------ + 1 file changed, 11 insertions(+), 6 deletions(-) + +commit 61a9d7e6d0e6df7b48f58fa1679f0f93407993b2 +Author: Behdad Esfahbod <behdad@behdad.org> +Date: Mon Sep 4 19:48:52 2017 -0700 + + Minor + + test/shaping/run-tests.sh | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +commit 03a5a6f873e5a50011f1c2418f5ceab86d9c2931 +Author: Behdad Esfahbod <behdad@behdad.org> +Date: Fri Sep 1 19:09:54 2017 -0700 + + [util] Add --unicodes to hb-view / hb-shape + + Fixes https://github.com/behdad/harfbuzz/issues/154 + + test/shaping/hb_test_tools.py | 2 +- + util/options.cc | 65 + ++++++++++++++++++++++++++++++++++++++++++- + 2 files changed, 65 insertions(+), 2 deletions(-) + +commit 0e5b475d98dd67e927534508fe2cd8dc9765e24e +Author: Behdad Esfahbod <behdad@behdad.org> +Date: Fri Sep 1 18:28:47 2017 -0700 + + Minor + + test/shaping/run-tests.sh | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 3e1fc6d18ba0019bbeede78b95070a6e7156c314 +Author: Behdad Esfahbod <behdad@behdad.org> +Date: Fri Sep 1 10:46:48 2017 -0700 + + Minor + + test/shaping/run-tests.sh | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +commit 04f009f84891b513087830c7aa1b755addd016d9 +Author: Behdad Esfahbod <behdad@behdad.org> +Date: Fri Sep 1 10:38:25 2017 -0700 + + Add test accidentally removed in previous commit + + test/shaping/tests/indic-syllable.tests | 1 + + 1 file changed, 1 insertion(+) + +commit 06cb162cd79cc922b572e5f532ca867223b6dc4c +Author: Behdad Esfahbod <behdad@behdad.org> +Date: Fri Sep 1 10:34:21 2017 -0700 + + [indic] Treat Consonant_With_Stacker as consonant + + Fixes https://github.com/behdad/harfbuzz/issues/528 + "Kannada JIHVAMULIYA and UPADHMANIYA insert dotted circles" + + src/hb-ot-shape-complex-indic-private.hh | 2 +- + .../sha1sum/3d0b77a2360aa6faa1385aaa510509ab70dfbeff.ttf | Bin 0 -> + 988 bytes + test/shaping/tests/indic-syllable.tests | 3 ++- + 3 files changed, 3 insertions(+), 2 deletions(-) + +commit c449d2d8c9e27502380faa0b568a374c838ac9a7 +Author: Behdad Esfahbod <behdad@behdad.org> +Date: Wed Aug 30 17:28:22 2017 -0700 + + [unsafe-to-break] Mark during fraction-slash formation + + Fixes tests/automatic-fractions.tests + + src/hb-ot-shape.cc | 2 ++ + 1 file changed, 2 insertions(+) + +commit b262ebcc9c9539076d17751e9bae06a8fd5001ff +Author: Behdad Esfahbod <behdad@behdad.org> +Date: Wed Aug 30 17:25:10 2017 -0700 + + [util] Fix cluster sweeping during --verify + + If *I* get this wrong in 2017, I have no idea how others get their + head around + cluster math... + + Fixes tests/arabic-fallback-shaping.tests + + util/options.hh | 11 ++++++++--- + 1 file changed, 8 insertions(+), 3 deletions(-) + +commit 69d701b02e5ebc3597b0d0576dbab8e1ece51944 +Author: Behdad Esfahbod <behdad@behdad.org> +Date: Wed Aug 30 17:07:29 2017 -0700 + + [util] When --verify fails, return reconstructed shape results + + util/options.hh | 8 +++----- + util/view-cairo.hh | 2 +- + 2 files changed, 4 insertions(+), 6 deletions(-) + +commit 099472e08bf81d6dd8ca1647999592df6b7fdfb9 +Author: Behdad Esfahbod <behdad@behdad.org> +Date: Wed Aug 30 16:45:06 2017 -0700 + + hb_buffer_diff() tweak + + I like to have a mode where CONTAINS_NOTDEF and CONTAINS_DOTTEDCIRCLE + are not + returned. Abused a value of -1 for that. hb-shape now uses it. + Fixes two + of the six tests failing with --verify in test/shaping/run-tests.sh. + + src/hb-buffer.cc | 16 ++++++++-------- + test/shaping/run-tests.sh | 4 ++-- + util/options.hh | 2 +- + 3 files changed, 11 insertions(+), 11 deletions(-) + +commit e8b364b86023731e0416ab4eb433467c4b7a0ec2 +Author: Behdad Esfahbod <behdad@behdad.org> +Date: Wed Aug 23 15:00:45 2017 -0700 + + 1.5.0 + + NEWS | 44 ++++++++++++++++++++++++++++++++++++++++++++ + configure.ac | 2 +- + 2 files changed, 45 insertions(+), 1 deletion(-) + commit 224d20e4e1c62416ff842a81188dfeff069f895b Author: Behdad Esfahbod <behdad@behdad.org> Date: Wed Aug 23 14:41:48 2017 -0700 diff --git a/Build/source/libs/harfbuzz/harfbuzz-src/NEWS b/Build/source/libs/harfbuzz/harfbuzz-src/NEWS index 3a3962bcfd2..92e5a53705e 100644 --- a/Build/source/libs/harfbuzz/harfbuzz-src/NEWS +++ b/Build/source/libs/harfbuzz/harfbuzz-src/NEWS @@ -1,3 +1,16 @@ +Overview of changes leading to 1.5.1 +Tuesday, September 5, 2017 +==================================== + +- Fix "unsafe-to-break" in fallback shaping and other corner cases. + All our tests pass with --verify now, meaning unsafe-to-break API + works as expected. +- Add --unicodes to hb-view / hb-shape. +- [indic] Treat Consonant_With_Stacker as consonant. This will need + further tweaking. +- hb_buffer_diff() tweaks. + + Overview of changes leading to 1.5.0 Wednesday, August 23, 2017 ==================================== diff --git a/Build/source/libs/harfbuzz/harfbuzz-src/configure.ac b/Build/source/libs/harfbuzz/harfbuzz-src/configure.ac index 82895eab96d..9151abc058a 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.5.0], + [1.5.1], [https://github.com/behdad/harfbuzz/issues/new], [harfbuzz], [http://harfbuzz.org/]) diff --git a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-buffer.cc b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-buffer.cc index a45062aa5ae..171d1016e3f 100644 --- a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-buffer.cc +++ b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-buffer.cc @@ -31,10 +31,6 @@ #include "hb-utf-private.hh" -#ifndef HB_DEBUG_BUFFER -#define HB_DEBUG_BUFFER (HB_DEBUG+0) -#endif - /** * SECTION: hb-buffer * @title: Buffers @@ -1885,6 +1881,9 @@ hb_buffer_t::sort (unsigned int start, unsigned int end, int(*compar)(const hb_g /** * hb_buffer_diff: * + * If dottedcircle_glyph is (hb_codepoint_t) -1 then %HB_BUFFER_DIFF_FLAG_DOTTED_CIRCLE_PRESENT + * and %HB_BUFFER_DIFF_FLAG_NOTDEF_PRESENT are never returned. This should be used by most + * callers if just comparing two buffers is needed. * * Since: 1.5.0 **/ @@ -1894,10 +1893,11 @@ hb_buffer_diff (hb_buffer_t *buffer, hb_codepoint_t dottedcircle_glyph, unsigned int position_fuzz) { - if (buffer->content_type != reference->content_type) + if (buffer->content_type != reference->content_type && buffer->len && reference->len) return HB_BUFFER_DIFF_FLAG_CONTENT_TYPE_MISMATCH; hb_buffer_diff_flags_t result = HB_BUFFER_DIFF_FLAG_EQUAL; + bool contains = dottedcircle_glyph != (hb_codepoint_t) -1; unsigned int count = reference->len; @@ -1911,9 +1911,9 @@ hb_buffer_diff (hb_buffer_t *buffer, unsigned int i; for (i = 0; i < count; i++) { - if (info[i].codepoint == dottedcircle_glyph) + if (contains && info[i].codepoint == dottedcircle_glyph) result |= HB_BUFFER_DIFF_FLAG_DOTTED_CIRCLE_PRESENT; - else if (info[i].codepoint == 0) + if (contains && info[i].codepoint == 0) result |= HB_BUFFER_DIFF_FLAG_NOTDEF_PRESENT; } result |= HB_BUFFER_DIFF_FLAG_LENGTH_MISMATCH; @@ -1933,9 +1933,9 @@ hb_buffer_diff (hb_buffer_t *buffer, result |= HB_BUFFER_DIFF_FLAG_CLUSTER_MISMATCH; if ((buf_info->mask & HB_GLYPH_FLAG_DEFINED) != (ref_info->mask & HB_GLYPH_FLAG_DEFINED)) result |= HB_BUFFER_DIFF_FLAG_GLYPH_FLAGS_MISMATCH; - if (ref_info->codepoint == dottedcircle_glyph) + if (contains && ref_info->codepoint == dottedcircle_glyph) result |= HB_BUFFER_DIFF_FLAG_DOTTED_CIRCLE_PRESENT; - else if (ref_info->codepoint == 0) + if (contains && ref_info->codepoint == 0) result |= HB_BUFFER_DIFF_FLAG_NOTDEF_PRESENT; buf_info++; ref_info++; diff --git a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-buffer.h b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-buffer.h index ffbf66ee12f..1d633f7dcdd 100644 --- a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-buffer.h +++ b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-buffer.h @@ -481,12 +481,12 @@ typedef enum { /*< flags >*/ /* Buffers with different content_type cannot be meaningfully compared * in any further detail. */ - HB_BUFFER_DIFF_FLAG_CONTENT_TYPE_MISMATCH = 0X0001, + HB_BUFFER_DIFF_FLAG_CONTENT_TYPE_MISMATCH = 0x0001, /* For buffers with differing length, the per-glyph comparison is not * attempted, though we do still scan reference for dottedcircle / .notdef * glyphs. */ - HB_BUFFER_DIFF_FLAG_LENGTH_MISMATCH = 0X0002, + HB_BUFFER_DIFF_FLAG_LENGTH_MISMATCH = 0x0002, /* We want to know if dottedcircle / .notdef glyphs are present in the * reference, as we may not care so much about other differences in this diff --git a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-shape-complex-indic-private.hh b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-shape-complex-indic-private.hh index 58be4222465..c880311ee4c 100644 --- a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-shape-complex-indic-private.hh +++ b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-shape-complex-indic-private.hh @@ -121,7 +121,7 @@ enum indic_syllabic_category_t { INDIC_SYLLABIC_CATEGORY_CONSONANT_PREFIXED = OT_X, /* Don't care. */ INDIC_SYLLABIC_CATEGORY_CONSONANT_SUBJOINED = OT_CM, INDIC_SYLLABIC_CATEGORY_CONSONANT_SUCCEEDING_REPHA = OT_N, - INDIC_SYLLABIC_CATEGORY_CONSONANT_WITH_STACKER = OT_Repha, /* TODO */ + INDIC_SYLLABIC_CATEGORY_CONSONANT_WITH_STACKER = OT_C, INDIC_SYLLABIC_CATEGORY_GEMINATION_MARK = OT_SM, INDIC_SYLLABIC_CATEGORY_INVISIBLE_STACKER = OT_Coeng, INDIC_SYLLABIC_CATEGORY_JOINER = OT_ZWJ, 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 bc5366969be..8cd8fcc17e0 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 @@ -275,8 +275,7 @@ hb_insert_dotted_circle (hb_buffer_t *buffer, hb_font_t *font) static void hb_form_clusters (hb_buffer_t *buffer) { - if (!(buffer->scratch_flags & HB_BUFFER_SCRATCH_FLAG_HAS_NON_ASCII) || - buffer->cluster_level != HB_BUFFER_CLUSTER_LEVEL_MONOTONE_GRAPHEMES) + if (!(buffer->scratch_flags & HB_BUFFER_SCRATCH_FLAG_HAS_NON_ASCII)) return; /* Loop duplicated in hb_ensure_native_direction(), and in _hb-coretext.cc */ @@ -288,11 +287,17 @@ hb_form_clusters (hb_buffer_t *buffer) if (likely (!HB_UNICODE_GENERAL_CATEGORY_IS_MARK (_hb_glyph_info_get_general_category (&info[i])) && !_hb_glyph_info_is_joiner (&info[i]))) { - buffer->merge_clusters (base, i); + if (buffer->cluster_level == HB_BUFFER_CLUSTER_LEVEL_MONOTONE_GRAPHEMES) + buffer->merge_clusters (base, i); + else + buffer->unsafe_to_break (base, i); base = i; } } - buffer->merge_clusters (base, count); + if (buffer->cluster_level == HB_BUFFER_CLUSTER_LEVEL_MONOTONE_GRAPHEMES) + buffer->merge_clusters (base, count); + else + buffer->unsafe_to_break (base, count); } static void @@ -394,6 +399,8 @@ hb_ot_shape_setup_masks_fraction (hb_ot_shape_context_t *c) HB_UNICODE_GENERAL_CATEGORY_DECIMAL_NUMBER) end++; + buffer->unsafe_to_break (start, end); + for (unsigned int j = start; j < i; j++) info[j].mask |= pre_mask; info[i].mask |= c->plan->frac_mask; @@ -578,8 +585,6 @@ hb_ot_substitute_default (hb_ot_shape_context_t *c) { hb_buffer_t *buffer = c->buffer; - hb_ot_shape_initialize_masks (c); - hb_ot_mirror_chars (c); HB_BUFFER_ALLOCATE_VAR (buffer, glyph_index); @@ -834,8 +839,10 @@ hb_ot_shape_internal (hb_ot_shape_context_t *c) c->buffer->clear_output (); + hb_ot_shape_initialize_masks (c); hb_set_unicode_props (c->buffer); hb_insert_dotted_circle (c->buffer, c->font); + hb_form_clusters (c->buffer); hb_ensure_native_direction (c->buffer); diff --git a/Build/source/libs/harfbuzz/version.ac b/Build/source/libs/harfbuzz/version.ac index c3ae4200794..6135ebdeca8 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.5.0]) +m4_define([harfbuzz_version], [1.5.1]) |