Index: third_party/harfbuzz-ng/src/hb-ot-shape-complex-arabic.cc |
diff --git a/third_party/harfbuzz-ng/src/hb-ot-shape-complex-arabic.cc b/third_party/harfbuzz-ng/src/hb-ot-shape-complex-arabic.cc |
index 9870ba3da05376de77301c2fc7d3a65505570a94..ae90864127104969b5a99243e8ba49218e2e6f25 100644 |
--- a/third_party/harfbuzz-ng/src/hb-ot-shape-complex-arabic.cc |
+++ b/third_party/harfbuzz-ng/src/hb-ot-shape-complex-arabic.cc |
@@ -223,8 +223,8 @@ data_create_arabic (const hb_ot_shape_plan_t *plan) |
for (unsigned int i = 0; i < ARABIC_NUM_FEATURES; i++) { |
arabic_plan->mask_array[i] = plan->map.get_1_mask (arabic_features[i]); |
arabic_plan->do_fallback = arabic_plan->do_fallback && |
- !FEATURE_IS_SYRIAC (arabic_features[i]) && |
- plan->map.needs_fallback (arabic_features[i]); |
+ (FEATURE_IS_SYRIAC (arabic_features[i]) || |
+ plan->map.needs_fallback (arabic_features[i])); |
} |
return arabic_plan; |
@@ -248,18 +248,17 @@ arabic_joining (hb_buffer_t *buffer) |
unsigned int prev = (unsigned int) -1, state = 0; |
/* Check pre-context */ |
- if (!(buffer->flags & HB_BUFFER_FLAG_BOT)) |
- for (unsigned int i = 0; i < buffer->context_len[0]; i++) |
- { |
- unsigned int this_type = get_joining_type (buffer->context[0][i], buffer->unicode->general_category (buffer->context[0][i])); |
+ for (unsigned int i = 0; i < buffer->context_len[0]; i++) |
+ { |
+ unsigned int this_type = get_joining_type (buffer->context[0][i], buffer->unicode->general_category (buffer->context[0][i])); |
- if (unlikely (this_type == JOINING_TYPE_T)) |
- continue; |
+ if (unlikely (this_type == JOINING_TYPE_T)) |
+ continue; |
- const arabic_state_table_entry *entry = &arabic_state_table[state][this_type]; |
- state = entry->next_state; |
- break; |
- } |
+ const arabic_state_table_entry *entry = &arabic_state_table[state][this_type]; |
+ state = entry->next_state; |
+ break; |
+ } |
for (unsigned int i = 0; i < count; i++) |
{ |
@@ -281,19 +280,18 @@ arabic_joining (hb_buffer_t *buffer) |
state = entry->next_state; |
} |
- if (!(buffer->flags & HB_BUFFER_FLAG_EOT)) |
- for (unsigned int i = 0; i < buffer->context_len[1]; i++) |
- { |
- unsigned int this_type = get_joining_type (buffer->context[1][i], buffer->unicode->general_category (buffer->context[1][i])); |
+ for (unsigned int i = 0; i < buffer->context_len[1]; i++) |
+ { |
+ unsigned int this_type = get_joining_type (buffer->context[1][i], buffer->unicode->general_category (buffer->context[1][i])); |
- if (unlikely (this_type == JOINING_TYPE_T)) |
- continue; |
+ if (unlikely (this_type == JOINING_TYPE_T)) |
+ continue; |
- const arabic_state_table_entry *entry = &arabic_state_table[state][this_type]; |
- if (entry->prev_action != NONE && prev != (unsigned int) -1) |
- info[prev].arabic_shaping_action() = entry->prev_action; |
- break; |
- } |
+ const arabic_state_table_entry *entry = &arabic_state_table[state][this_type]; |
+ if (entry->prev_action != NONE && prev != (unsigned int) -1) |
+ info[prev].arabic_shaping_action() = entry->prev_action; |
+ break; |
+ } |
} |
static void |