[HarfBuzz] harfbuzz: Branch 'master' - 2 commits

Behdad Esfahbod behdad at kemper.freedesktop.org
Sat Aug 8 09:04:09 PDT 2015


 src/hb-ot-shape-fallback.cc                                             |    5 ++---
 test/shaping/Makefile.am                                                |    1 +
 test/shaping/fonts/sha1sum/6466d38c62e73a39202435a4f73bf5d6acbb73c0.ttf |binary
 test/shaping/fonts/sha1sum/MANIFEST                                     |    1 +
 test/shaping/tests/MANIFEST                                             |    1 +
 test/shaping/tests/cluster.tests                                        |    1 +
 6 files changed, 6 insertions(+), 3 deletions(-)

New commits:
commit 9099e48e29fe5cfdf8566c8f1ba6ddc8c0799e7e
Author: jfkthame <jfkthame at gmail.com>
Date:   Fri Aug 7 17:51:28 2015 +0100

    Don't rely on .cluster field in fallback_position
    
    Fixes tests/cluster.
    
    Fixes https://github.com/behdad/harfbuzz/pull/123

diff --git a/src/hb-ot-shape-fallback.cc b/src/hb-ot-shape-fallback.cc
index 53274b5..748372d 100644
--- a/src/hb-ot-shape-fallback.cc
+++ b/src/hb-ot-shape-fallback.cc
@@ -418,13 +418,12 @@ _hb_ot_shape_fallback_position (const hb_ot_shape_plan_t *plan,
   _hb_buffer_assert_gsubgpos_vars (buffer);
 
   unsigned int start = 0;
-  unsigned int last_cluster = buffer->info[0].cluster;
   unsigned int count = buffer->len;
+  hb_glyph_info_t *info = buffer->info;
   for (unsigned int i = 1; i < count; i++)
-    if (buffer->info[i].cluster != last_cluster) {
+    if (likely (!HB_UNICODE_GENERAL_CATEGORY_IS_MARK (_hb_glyph_info_get_general_category (&info[i])))) {
       position_cluster (plan, font, buffer, start, i);
       start = i;
-      last_cluster = buffer->info[i].cluster;
     }
   position_cluster (plan, font, buffer, start, count);
 }
commit f3792342f670978cdc3f8512fb5e80314ca0678d
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Sat Aug 8 18:02:18 2015 +0200

    [tests] Add test for fallback positioning with cluster_level > 0
    
    For https://github.com/behdad/harfbuzz/pull/123
    Currently fails.  Fix coming.

diff --git a/test/shaping/Makefile.am b/test/shaping/Makefile.am
index 22e326e..bab3b47 100644
--- a/test/shaping/Makefile.am
+++ b/test/shaping/Makefile.am
@@ -38,6 +38,7 @@ CLEANFILES += \
 TESTS = \
 	tests/arabic-fallback-shaping.tests \
 	tests/arabic-feature-order.tests \
+	tests/cluster.tests \
 	tests/context-matching.tests \
 	tests/default-ignorables.tests \
 	tests/hangul-jamo.tests \
diff --git a/test/shaping/fonts/sha1sum/6466d38c62e73a39202435a4f73bf5d6acbb73c0.ttf b/test/shaping/fonts/sha1sum/6466d38c62e73a39202435a4f73bf5d6acbb73c0.ttf
new file mode 100644
index 0000000..33c4229
Binary files /dev/null and b/test/shaping/fonts/sha1sum/6466d38c62e73a39202435a4f73bf5d6acbb73c0.ttf differ
diff --git a/test/shaping/fonts/sha1sum/MANIFEST b/test/shaping/fonts/sha1sum/MANIFEST
index 2881f0a..072911f 100644
--- a/test/shaping/fonts/sha1sum/MANIFEST
+++ b/test/shaping/fonts/sha1sum/MANIFEST
@@ -6,6 +6,7 @@
 4cce528e99f600ed9c25a2b69e32eb94a03b4ae8.ttf
 5028afb650b1bb718ed2131e872fbcce57828fff.ttf
 57a9d9f83020155cbb1d2be1f43d82388cbecc88.ttf
+6466d38c62e73a39202435a4f73bf5d6acbb73c0.ttf
 757ebd573617a24aa9dfbf0b885c54875c6fe06b.ttf
 7e14e7883ed152baa158b80e207b66114c823a8b.ttf
 813c2f8e5512187fd982417a7fb4286728e6f4a8.ttf
diff --git a/test/shaping/tests/MANIFEST b/test/shaping/tests/MANIFEST
index 323ad46..0d97806 100644
--- a/test/shaping/tests/MANIFEST
+++ b/test/shaping/tests/MANIFEST
@@ -1,5 +1,6 @@
 arabic-fallback-shaping.tests
 arabic-feature-order.tests
+cluster.tests
 context-matching.tests
 default-ignorables.tests
 hangul-jamo.tests
diff --git a/test/shaping/tests/cluster.tests b/test/shaping/tests/cluster.tests
new file mode 100644
index 0000000..3a3a397
--- /dev/null
+++ b/test/shaping/tests/cluster.tests
@@ -0,0 +1 @@
+fonts/sha1sum/6466d38c62e73a39202435a4f73bf5d6acbb73c0.ttf:--cluster-level=2:U+0078,U+030A,U+0058,U+030A:[gid2=0+1083|gid4=1 at -555,-8+0|gid1=2+1200|gid4=3 at -614,349+0]


More information about the HarfBuzz mailing list