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 |