summaryrefslogtreecommitdiff
path: root/Build/source/libs/harfbuzz
diff options
context:
space:
mode:
authorAkira Kakuto <kakuto@fuk.kindai.ac.jp>2017-09-06 08:48:50 +0000
committerAkira Kakuto <kakuto@fuk.kindai.ac.jp>2017-09-06 08:48:50 +0000
commit16e197d845e28903ffa6b30dcbedd3938fab0faa (patch)
treee0fe07807142a5c9b1481790c605014dd39197b7 /Build/source/libs/harfbuzz
parente6b2e4e09ae5d7dcae4522e8bb11c1f0a45d2a3a (diff)
harfbuzz 1.5.1
git-svn-id: svn://tug.org/texlive/trunk@45229 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source/libs/harfbuzz')
-rw-r--r--Build/source/libs/harfbuzz/ChangeLog5
-rw-r--r--Build/source/libs/harfbuzz/TLpatches/ChangeLog5
-rw-r--r--Build/source/libs/harfbuzz/TLpatches/TL-Changes2
-rwxr-xr-xBuild/source/libs/harfbuzz/configure24
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-src/ChangeLog153
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-src/NEWS13
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-src/configure.ac2
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-src/src/hb-buffer.cc18
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-src/src/hb-buffer.h4
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-shape-complex-indic-private.hh2
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-shape.cc19
-rw-r--r--Build/source/libs/harfbuzz/version.ac2
12 files changed, 216 insertions, 33 deletions
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])