[arabic] Don't stretch over cased letters
Addresses
6e6f82b6f3 (commitcomment-14248516)
This commit is contained in:
parent
5337db29af
commit
59821ab8b4
@ -38,6 +38,28 @@
|
||||
|
||||
#define HB_BUFFER_SCRATCH_FLAG_ARABIC_HAS_STCH HB_BUFFER_SCRATCH_FLAG_COMPLEX0
|
||||
|
||||
/* See:
|
||||
* https://github.com/behdad/harfbuzz/commit/6e6f82b6f3dde0fc6c3c7d991d9ec6cfff57823d#commitcomment-14248516 */
|
||||
#define HB_ARABIC_GENERAL_CATEGORY_IS_WORD(gen_cat) \
|
||||
(FLAG_SAFE (gen_cat) & \
|
||||
(FLAG (HB_UNICODE_GENERAL_CATEGORY_UNASSIGNED) | \
|
||||
FLAG (HB_UNICODE_GENERAL_CATEGORY_PRIVATE_USE) | \
|
||||
/*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 (HB_UNICODE_GENERAL_CATEGORY_DECIMAL_NUMBER) | \
|
||||
FLAG (HB_UNICODE_GENERAL_CATEGORY_LETTER_NUMBER) | \
|
||||
FLAG (HB_UNICODE_GENERAL_CATEGORY_OTHER_NUMBER) | \
|
||||
FLAG (HB_UNICODE_GENERAL_CATEGORY_CURRENCY_SYMBOL) | \
|
||||
FLAG (HB_UNICODE_GENERAL_CATEGORY_MODIFIER_SYMBOL) | \
|
||||
FLAG (HB_UNICODE_GENERAL_CATEGORY_MATH_SYMBOL) | \
|
||||
FLAG (HB_UNICODE_GENERAL_CATEGORY_OTHER_SYMBOL)))
|
||||
|
||||
|
||||
/*
|
||||
* Joining types:
|
||||
@ -501,7 +523,7 @@ apply_stch (const hb_ot_shape_plan_t *plan,
|
||||
while (context &&
|
||||
!hb_in_range<unsigned> (info[context - 1].arabic_shaping_action(), STCH_FIXED, STCH_REPEATING) &&
|
||||
(_hb_glyph_info_is_default_ignorable (&info[context - 1]) ||
|
||||
HB_UNICODE_GENERAL_CATEGORY_IS_WORD (_hb_glyph_info_get_general_category (&info[context - 1]))))
|
||||
HB_ARABIC_GENERAL_CATEGORY_IS_WORD (_hb_glyph_info_get_general_category (&info[context - 1]))))
|
||||
{
|
||||
context--;
|
||||
w_total += pos[context].x_advance;
|
||||
|
@ -362,24 +362,4 @@ extern HB_INTERNAL const hb_unicode_funcs_t _hb_unicode_funcs_nil;
|
||||
(FLAG (HB_UNICODE_GENERAL_CATEGORY_SPACING_MARK) | \
|
||||
FLAG (HB_UNICODE_GENERAL_CATEGORY_NON_SPACING_MARK)))
|
||||
|
||||
#define HB_UNICODE_GENERAL_CATEGORY_IS_WORD(gen_cat) \
|
||||
(FLAG_SAFE (gen_cat) & \
|
||||
(FLAG (HB_UNICODE_GENERAL_CATEGORY_UNASSIGNED) | \
|
||||
FLAG (HB_UNICODE_GENERAL_CATEGORY_PRIVATE_USE) | \
|
||||
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 (HB_UNICODE_GENERAL_CATEGORY_DECIMAL_NUMBER) | \
|
||||
FLAG (HB_UNICODE_GENERAL_CATEGORY_LETTER_NUMBER) | \
|
||||
FLAG (HB_UNICODE_GENERAL_CATEGORY_OTHER_NUMBER) | \
|
||||
FLAG (HB_UNICODE_GENERAL_CATEGORY_CURRENCY_SYMBOL) | \
|
||||
FLAG (HB_UNICODE_GENERAL_CATEGORY_MODIFIER_SYMBOL) | \
|
||||
FLAG (HB_UNICODE_GENERAL_CATEGORY_MATH_SYMBOL) | \
|
||||
FLAG (HB_UNICODE_GENERAL_CATEGORY_OTHER_SYMBOL)))
|
||||
|
||||
#endif /* HB_UNICODE_PRIVATE_HH */
|
||||
|
@ -5,7 +5,7 @@
|
||||
ܐܒܓܕ
|
||||
ܐܒܓܕܐ
|
||||
ܐܒܓܕܐܐܐܐܐܐܐܐܐ
|
||||
ܐܒܓܕܐܐܐܐܐܐܐܐܐ
|
||||
ܐܒܓܕܓܓܓܓܓܓ
|
||||
ܐܒܓ
|
||||
|
||||
|
||||
ܫܘabcܒ.
|
||||
|
Loading…
Reference in New Issue
Block a user