[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
This commit is contained in:
Behdad Esfahbod 2017-08-30 17:25:10 -07:00
parent 69d701b02e
commit b262ebcc9c
1 changed files with 8 additions and 3 deletions

View File

@ -366,13 +366,18 @@ struct shape_options_t : option_group_t
} }
else else
{ {
unsigned int cluster = info[end].cluster;
if (forward) if (forward)
while (text_end < num_chars && text[text_end].cluster != cluster) {
unsigned int cluster = info[end].cluster;
while (text_end < num_chars && text[text_end].cluster < cluster)
text_end++; text_end++;
}
else else
while (text_start && text[text_start - 1].cluster != cluster) {
unsigned int cluster = info[end - 1].cluster;
while (text_start && text[text_start - 1].cluster >= cluster)
text_start--; text_start--;
}
} }
assert (text_start < text_end); assert (text_start < text_end);