Index: third_party/harfbuzz-ng/src/hb-ot-shape-complex-use.cc |
diff --git a/third_party/harfbuzz-ng/src/hb-ot-shape-complex-use.cc b/third_party/harfbuzz-ng/src/hb-ot-shape-complex-use.cc |
index d2b6e63bd3f92067d076e71fec5bd1c091e3565a..045ead52f680dbe59d6e4a7e98f0fa7768c18700 100644 |
--- a/third_party/harfbuzz-ng/src/hb-ot-shape-complex-use.cc |
+++ b/third_party/harfbuzz-ng/src/hb-ot-shape-complex-use.cc |
@@ -184,6 +184,9 @@ has_arabic_joining (hb_script_t script) |
case HB_SCRIPT_MANICHAEAN: |
case HB_SCRIPT_PSALTER_PAHLAVI: |
+ /* Unicode-9.0 additions */ |
+ case HB_SCRIPT_ADLAM: |
+ |
return true; |
default: |
@@ -227,12 +230,12 @@ data_destroy_use (void *data) |
enum syllable_type_t { |
independent_cluster, |
virama_terminated_cluster, |
- consonant_cluster, |
- vowel_cluster, |
+ standard_cluster, |
number_joiner_terminated_cluster, |
numeral_cluster, |
symbol_cluster, |
broken_cluster, |
+ non_cluster, |
}; |
#include "hb-ot-shape-complex-use-machine.hh" |
@@ -312,13 +315,13 @@ setup_topographical_masks (const hb_ot_shape_plan_t *plan, |
{ |
case independent_cluster: |
case symbol_cluster: |
+ case non_cluster: |
/* These don't join. Nothing to do. */ |
last_form = _NONE; |
break; |
case virama_terminated_cluster: |
- case consonant_cluster: |
- case vowel_cluster: |
+ case standard_cluster: |
case number_joiner_terminated_cluster: |
case numeral_cluster: |
case broken_cluster: |
@@ -421,15 +424,14 @@ reorder_syllable (hb_buffer_t *buffer, unsigned int start, unsigned int end) |
/* Only a few syllable types need reordering. */ |
if (unlikely (!(FLAG_SAFE (syllable_type) & |
(FLAG (virama_terminated_cluster) | |
- FLAG (consonant_cluster) | |
- FLAG (vowel_cluster) | |
+ FLAG (standard_cluster) | |
FLAG (broken_cluster) | |
0)))) |
return; |
hb_glyph_info_t *info = buffer->info; |
-#define BASE_FLAGS (FLAG (USE_B) | FLAG (USE_GB) | FLAG (USE_IV)) |
+#define BASE_FLAGS (FLAG (USE_B) | FLAG (USE_GB)) |
/* Move things forward. */ |
if (info[start].use_category() == USE_R && end - start > 1) |