[HarfBuzz] harfbuzz: Branch 'master'
Behdad Esfahbod
behdad at kemper.freedesktop.org
Tue Oct 23 23:50:48 UTC 2018
src/hb-aat-layout-morx-table.hh | 7 ++++---
test/shaping/data/in-house/Makefile.sources | 1 +
test/shaping/data/in-house/fonts/TestMORXTwentyeight.ttf |binary
test/shaping/data/in-house/tests/aat-morx.tests | 1 +
4 files changed, 6 insertions(+), 3 deletions(-)
New commits:
commit ba502dea1e81981f3893b5353400909bf60e354f
Author: Behdad Esfahbod <behdad at behdad.org>
Date: Tue Oct 23 16:46:10 2018 -0700
[morx] Fix cluster-merging when ligating
Only merge when actual ligature happened.
Fixes https://github.com/harfbuzz/harfbuzz/issues/1305
diff --git a/src/hb-aat-layout-morx-table.hh b/src/hb-aat-layout-morx-table.hh
index ff791cb7..c663fcc8 100644
--- a/src/hb-aat-layout-morx-table.hh
+++ b/src/hb-aat-layout-morx-table.hh
@@ -399,9 +399,6 @@ struct LigatureSubtable
if (unlikely (!match_length))
return true;
- /* TODO Only when ligation happens? */
- buffer->merge_out_clusters (match_positions[0], buffer->out_len);
-
unsigned int cursor = match_length;
do
{
@@ -437,6 +434,7 @@ struct LigatureSubtable
bool (action & LigActionLast));
if (action & (LigActionStore | LigActionLast))
{
+
const GlyphID &ligatureData = ligature[ligature_idx];
if (unlikely (!ligatureData.sanitize (&c->sanitizer))) return false;
hb_codepoint_t lig = ligatureData;
@@ -452,6 +450,9 @@ struct LigatureSubtable
buffer->skip_glyph ();
end--;
}
+
+ buffer->move_to (end + 1);
+ buffer->merge_out_clusters (match_positions[cursor], buffer->out_len);
}
action_idx++;
diff --git a/test/shaping/data/in-house/Makefile.sources b/test/shaping/data/in-house/Makefile.sources
index 6e21ddd4..e5f105c7 100644
--- a/test/shaping/data/in-house/Makefile.sources
+++ b/test/shaping/data/in-house/Makefile.sources
@@ -1,5 +1,6 @@
TESTS = \
tests/aat-trak.tests \
+ tests/aat-morx.tests \
tests/arabic-fallback-shaping.tests \
tests/arabic-feature-order.tests \
tests/arabic-like-joining.tests \
diff --git a/test/shaping/data/in-house/fonts/TestMORXTwentyeight.ttf b/test/shaping/data/in-house/fonts/TestMORXTwentyeight.ttf
new file mode 100644
index 00000000..edabb439
Binary files /dev/null and b/test/shaping/data/in-house/fonts/TestMORXTwentyeight.ttf differ
diff --git a/test/shaping/data/in-house/tests/aat-morx.tests b/test/shaping/data/in-house/tests/aat-morx.tests
new file mode 100644
index 00000000..4153091d
--- /dev/null
+++ b/test/shaping/data/in-house/tests/aat-morx.tests
@@ -0,0 +1 @@
+../fonts/TestMORXTwentyeight.ttf::U+0041,U+0078,U+0045,U+0079,U+0044,U+0079,U+0079:[A_E_D=0+1394|x=0+529|y=0+510|y=5+510|y=6+510]
More information about the HarfBuzz
mailing list