[Indic] Better check for applying 'init'
Specifically, don't apply 'init' if previous char is a joiner. Fixes some more of Bengali.
This commit is contained in:
parent
34a7440b7c
commit
2c372b80f6
|
@ -1101,14 +1101,7 @@ final_reordering_syllable (hb_buffer_t *buffer,
|
|||
if (info[start].indic_position () == POS_PRE_M &&
|
||||
(!start ||
|
||||
!(FLAG (_hb_glyph_info_get_general_category (&info[start - 1])) &
|
||||
(FLAG (HB_UNICODE_GENERAL_CATEGORY_LOWERCASE_LETTER) |
|
||||
FLAG (HB_UNICODE_GENERAL_CATEGORY_MODIFIER_LETTER) |
|
||||
FLAG (HB_UNICODE_GENERAL_CATEGORY_OTHER_LETTER) |
|
||||
FLAG (HB_UNICODE_GENERAL_CATEGORY_TITLECASE_LETTER) |
|
||||
FLAG (HB_UNICODE_GENERAL_CATEGORY_UPPERCASE_LETTER) |
|
||||
FLAG (HB_UNICODE_GENERAL_CATEGORY_SPACING_MARK) |
|
||||
FLAG (HB_UNICODE_GENERAL_CATEGORY_ENCLOSING_MARK) |
|
||||
FLAG (HB_UNICODE_GENERAL_CATEGORY_NON_SPACING_MARK)))))
|
||||
FLAG_RANGE (HB_UNICODE_GENERAL_CATEGORY_FORMAT, HB_UNICODE_GENERAL_CATEGORY_NON_SPACING_MARK))))
|
||||
info[start].mask |= init_mask;
|
||||
|
||||
|
||||
|
|
|
@ -734,7 +734,8 @@ hb_in_range (T u, T lo, T hi)
|
|||
* For example, for testing "x ∈ {x1, x2, x3}" use:
|
||||
* (FLAG(x) & (FLAG(x1) | FLAG(x2) | FLAG(x3)))
|
||||
*/
|
||||
#define FLAG(x) (1<<(x))
|
||||
#define FLAG(x) (ASSERT_STATIC_EXPR_ZERO((x) < 8 * sizeof(int)) + (1<<(x)))
|
||||
#define FLAG_RANGE(x,y) (ASSERT_STATIC_EXPR_ZERO ((x) < (y)) + FLAG(y+1) - FLAG(x))
|
||||
|
||||
|
||||
template <typename T, typename T2> inline void
|
||||
|
|
Loading…
Reference in New Issue