Improve CGJ skipping logic
authorBehdad Esfahbod <behdad@behdad.org>
Fri, 5 Jan 2018 12:46:12 +0000 (12:46 +0000)
committerBehdad Esfahbod <behdad@behdad.org>
Fri, 5 Jan 2018 12:48:19 +0000 (12:48 +0000)
commit8c0d1916a41f0fb32340ce5257de780acf598353
tree9b4a8cad57fdf322b6743b343368b226aacf7529
parent293e443529d0621b9f94ea15d1425104394f6b9e
Improve CGJ skipping logic

Previously we made CGJ unskippable.  Now, if CGJ did NOT prevent
any reordering, allow skipping over it.  To make this work we
had to make changes to the Arabic mark reordering algorithm
implementation to renumber moved MCM marks.  See comments.

Fixes https://github.com/harfbuzz/harfbuzz/issues/554
src/hb-buffer-private.hh
src/hb-ot-layout-private.hh
src/hb-ot-shape-complex-arabic.cc
src/hb-ot-shape-normalize.cc
test/shaping/tests/arabic-mark-order.tests