| OLD | NEW |
| 1 diff --git a/contrib/harfbuzz-unicode.c b/contrib/harfbuzz-unicode.c | 1 diff --git a/contrib/harfbuzz-unicode.c b/contrib/harfbuzz-unicode.c |
| 2 index 049e0ca..86458d0 100644 | 2 index 049e0ca..86458d0 100644 |
| 3 --- a/contrib/harfbuzz-unicode.c | 3 --- a/contrib/harfbuzz-unicode.c |
| 4 +++ b/contrib/harfbuzz-unicode.c | 4 +++ b/contrib/harfbuzz-unicode.c |
| 5 @@ -120,7 +120,6 @@ hb_utf16_script_run_next(unsigned *num_code_points, HB_Scrip
tItem *output, | 5 @@ -120,7 +120,6 @@ hb_utf16_script_run_next(unsigned *num_code_points, HB_Scrip
tItem *output, |
| 6 current_script = script; | 6 current_script = script; |
| 7 continue; | 7 continue; |
| 8 } else if (script == HB_Script_Inherited) { | 8 } else if (script == HB_Script_Inherited) { |
| 9 - current_script = script; | 9 - current_script = script; |
| 10 continue; | 10 continue; |
| (...skipping 16 matching lines...) Expand all Loading... |
| 27 --- a/src/harfbuzz-arabic.c | 27 --- a/src/harfbuzz-arabic.c |
| 28 +++ b/src/harfbuzz-arabic.c | 28 +++ b/src/harfbuzz-arabic.c |
| 29 @@ -1107,6 +1107,7 @@ HB_Bool HB_ArabicShape(HB_ShaperItem *item) | 29 @@ -1107,6 +1107,7 @@ HB_Bool HB_ArabicShape(HB_ShaperItem *item) |
| 30 assert(item->item.script == HB_Script_Arabic || item->item.script == HB_Scr
ipt_Syriac | 30 assert(item->item.script == HB_Script_Arabic || item->item.script == HB_Scr
ipt_Syriac |
| 31 || item->item.script == HB_Script_Nko); | 31 || item->item.script == HB_Script_Nko); |
| 32 | 32 |
| 33 + item->shaperFlags |= HB_ShaperFlag_ForceMarksToZeroWidth; | 33 + item->shaperFlags |= HB_ShaperFlag_ForceMarksToZeroWidth; |
| 34 #ifndef NO_OPENTYPE | 34 #ifndef NO_OPENTYPE |
| 35 | 35 |
| 36 if (HB_SelectScript(item, item->item.script == HB_Script_Arabic ? arabic_fe
atures : syriac_features)) { | 36 if (HB_SelectScript(item, item->item.script == HB_Script_Arabic ? arabic_fe
atures : syriac_features)) { |
| 37 diff --git a/src/harfbuzz-gpos.c b/src/harfbuzz-gpos.c | |
| 38 index a216005..7bd3b3b 100644 | |
| 39 --- a/src/harfbuzz-gpos.c | |
| 40 +++ b/src/harfbuzz-gpos.c | |
| 41 @@ -3012,6 +3012,9 @@ static HB_Error Lookup_MarkMarkPos( GPOS_Instance* gpi
, | |
| 42 j--; | |
| 43 } | |
| 44 | |
| 45 + if ( i > buffer->in_pos ) | |
| 46 + return HB_Err_Not_Covered; | |
| 47 + | |
| 48 error = _HB_OPEN_Coverage_Index( &mmp->Mark2Coverage, IN_GLYPH( j ), | |
| 49 &mark2_index ); | |
| 50 if ( error ) | |
| 51 diff --git a/src/harfbuzz-shaper.cpp b/src/harfbuzz-shaper.cpp | 37 diff --git a/src/harfbuzz-shaper.cpp b/src/harfbuzz-shaper.cpp |
| 52 index ce4d4ac..5999e08 100644 | 38 index ce4d4ac..5999e08 100644 |
| 53 --- a/src/harfbuzz-shaper.cpp | 39 --- a/src/harfbuzz-shaper.cpp |
| 54 +++ b/src/harfbuzz-shaper.cpp | 40 +++ b/src/harfbuzz-shaper.cpp |
| 55 @@ -430,8 +430,6 @@ void HB_HeuristicSetGlyphAttributes(HB_ShaperItem *item) | 41 @@ -430,8 +430,6 @@ void HB_HeuristicSetGlyphAttributes(HB_ShaperItem *item) |
| 56 | 42 |
| 57 // ### zeroWidth and justification are missing here!!!!! | 43 // ### zeroWidth and justification are missing here!!!!! |
| 58 | 44 |
| 59 - assert(item->num_glyphs <= length); | 45 - assert(item->num_glyphs <= length); |
| 60 - | 46 - |
| (...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 127 HB_ShaperFlag_NoKerning = 1, | 113 HB_ShaperFlag_NoKerning = 1, |
| 128 - HB_ShaperFlag_UseDesignMetrics = 2 | 114 - HB_ShaperFlag_UseDesignMetrics = 2 |
| 129 + HB_ShaperFlag_UseDesignMetrics = 1 << 1, | 115 + HB_ShaperFlag_UseDesignMetrics = 1 << 1, |
| 130 + /* Arabic vowels in some fonts (Times New Roman, at least) have | 116 + /* Arabic vowels in some fonts (Times New Roman, at least) have |
| 131 + non-zero advances, when they should be zero. Setting this shaper | 117 + non-zero advances, when they should be zero. Setting this shaper |
| 132 + flag causes us to zero out the advances for mark glyphs. */ | 118 + flag causes us to zero out the advances for mark glyphs. */ |
| 133 + HB_ShaperFlag_ForceMarksToZeroWidth = 1 << 2 | 119 + HB_ShaperFlag_ForceMarksToZeroWidth = 1 << 2 |
| 134 } HB_ShaperFlag; | 120 } HB_ShaperFlag; |
| 135 | 121 |
| 136 /* | 122 /* |
| 137 diff --git a/src/harfbuzz-tibetan.c b/src/harfbuzz-tibetan.c | |
| 138 index bfa31b1..847ac52 100644 | |
| 139 --- a/src/harfbuzz-tibetan.c | |
| 140 +++ b/src/harfbuzz-tibetan.c | |
| 141 @@ -90,7 +90,7 @@ static const unsigned char tibetanForm[0x80] = { | |
| 142 | |
| 143 | |
| 144 #define tibetan_form(c) \ | |
| 145 - (TibetanForm)tibetanForm[c - 0x0f40] | |
| 146 + ((c) >= 0x0f40 && (c) <= 0x0fc0 ? (TibetanForm)tibetanForm[(c) - 0x0f40] :
TibetanOther) | |
| 147 | |
| 148 static const HB_OpenTypeFeature tibetan_features[] = { | |
| 149 { HB_MAKE_TAG('c', 'c', 'm', 'p'), CcmpProperty }, | |
| OLD | NEW |