[morx] Fix MORX-35
authorBehdad Esfahbod <behdad@behdad.org>
Sun, 7 Oct 2018 22:06:53 +0000 (18:06 -0400)
committerBehdad Esfahbod <behdad@behdad.org>
Sun, 7 Oct 2018 22:52:48 +0000 (18:52 -0400)
Fixes https://github.com/harfbuzz/harfbuzz/issues/1224

src/hb-aat-layout-morx-table.hh
test/shaping/data/text-rendering-tests/DISABLED
test/shaping/data/text-rendering-tests/Makefile.sources

index 63b937b..b9dddb2 100644 (file)
@@ -661,11 +661,17 @@ struct InsertionSubtable
         * current glyph, the next glyph processed would in fact be the first
         * one inserted."
         *
-        * This suggests that if DontAdvance is NOT set, we should move to
-        * end+count.  If it *was*, then move to end, such that newly inserted
-        * glyphs are now visible.
+        * So, if DontAdvance *is* set, we move to "end", such that newly
+        * inserted glyphs are visible.
+        *
+        * If DontAdvance is *not* set, if inserted before, move past them,
+        * such that original current glyph will be skipped over by the driver.
+        * Otherwise, again, just move to "end" such that current glyph will
+        * be skipped over by driver.
+        *
+        * https://github.com/harfbuzz/harfbuzz/issues/1224
         */
-       buffer->move_to ((flags & DontAdvance) ? end : end + count);
+       buffer->move_to ((flags & DontAdvance) || !before ? end : end + count);
       }
 
       if (flags & SetMark)
index 4e8b1cf..8539c0e 100644 (file)
@@ -1,6 +1,3 @@
-# https://github.com/harfbuzz/harfbuzz/issues/1224
-tests/MORX-35.tests
-
 # Non-Unicode cmap
 tests/CMAP-3.tests
 
index 5a3d20a..c7f4876 100644 (file)
@@ -55,6 +55,7 @@ TESTS = \
        tests/MORX-32.tests \
        tests/MORX-33.tests \
        tests/MORX-34.tests \
+       tests/MORX-35.tests \
        tests/MORX-36.tests \
        tests/MORX-37.tests \
        tests/MORX-38.tests \
@@ -73,7 +74,6 @@ TESTS = \
 
 DISBALED_TESTS = \
        tests/CMAP-3.tests \
-       tests/MORX-35.tests \
        tests/SHARAN-1.tests \
        tests/SHBALI-1.tests \
        tests/SHBALI-2.tests \