зеркало из https://github.com/mozilla/pjs.git
bug 729626 - fix cluster formation in Indic, cherrypicked from harfbuzz-ng commit 461b9b6347e4f58589f5be82c40a2df61da2c715. r=behdad
This commit is contained in:
Родитель
fd13dae1bd
Коммит
f70cf453e0
|
@ -232,25 +232,25 @@ _resume:
|
||||||
#line 62 "hb-ot-shape-complex-indic-machine.rl"
|
#line 62 "hb-ot-shape-complex-indic-machine.rl"
|
||||||
{ found_consonant_syllable (map, buffer, mask_array, last, p); }
|
{ found_consonant_syllable (map, buffer, mask_array, last, p); }
|
||||||
#line 67 "hb-ot-shape-complex-indic-machine.rl"
|
#line 67 "hb-ot-shape-complex-indic-machine.rl"
|
||||||
{ set_cluster (buffer, p, last); last = p; }
|
{ set_cluster (buffer, last, p); last = p; }
|
||||||
break;
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
#line 63 "hb-ot-shape-complex-indic-machine.rl"
|
#line 63 "hb-ot-shape-complex-indic-machine.rl"
|
||||||
{ found_vowel_syllable (map, buffer, mask_array, last, p); }
|
{ found_vowel_syllable (map, buffer, mask_array, last, p); }
|
||||||
#line 67 "hb-ot-shape-complex-indic-machine.rl"
|
#line 67 "hb-ot-shape-complex-indic-machine.rl"
|
||||||
{ set_cluster (buffer, p, last); last = p; }
|
{ set_cluster (buffer, last, p); last = p; }
|
||||||
break;
|
break;
|
||||||
case 4:
|
case 4:
|
||||||
#line 64 "hb-ot-shape-complex-indic-machine.rl"
|
#line 64 "hb-ot-shape-complex-indic-machine.rl"
|
||||||
{ found_standalone_cluster (map, buffer, mask_array, last, p); }
|
{ found_standalone_cluster (map, buffer, mask_array, last, p); }
|
||||||
#line 67 "hb-ot-shape-complex-indic-machine.rl"
|
#line 67 "hb-ot-shape-complex-indic-machine.rl"
|
||||||
{ set_cluster (buffer, p, last); last = p; }
|
{ set_cluster (buffer, last, p); last = p; }
|
||||||
break;
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
#line 65 "hb-ot-shape-complex-indic-machine.rl"
|
#line 65 "hb-ot-shape-complex-indic-machine.rl"
|
||||||
{ found_non_indic (map, buffer, mask_array, last, p); }
|
{ found_non_indic (map, buffer, mask_array, last, p); }
|
||||||
#line 67 "hb-ot-shape-complex-indic-machine.rl"
|
#line 67 "hb-ot-shape-complex-indic-machine.rl"
|
||||||
{ set_cluster (buffer, p, last); last = p; }
|
{ set_cluster (buffer, last, p); last = p; }
|
||||||
break;
|
break;
|
||||||
#line 256 "hb-ot-shape-complex-indic-machine.hh"
|
#line 256 "hb-ot-shape-complex-indic-machine.hh"
|
||||||
}
|
}
|
||||||
|
@ -268,25 +268,25 @@ _again:
|
||||||
#line 62 "hb-ot-shape-complex-indic-machine.rl"
|
#line 62 "hb-ot-shape-complex-indic-machine.rl"
|
||||||
{ found_consonant_syllable (map, buffer, mask_array, last, p); }
|
{ found_consonant_syllable (map, buffer, mask_array, last, p); }
|
||||||
#line 67 "hb-ot-shape-complex-indic-machine.rl"
|
#line 67 "hb-ot-shape-complex-indic-machine.rl"
|
||||||
{ set_cluster (buffer, p, last); last = p; }
|
{ set_cluster (buffer, last, p); last = p; }
|
||||||
break;
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
#line 63 "hb-ot-shape-complex-indic-machine.rl"
|
#line 63 "hb-ot-shape-complex-indic-machine.rl"
|
||||||
{ found_vowel_syllable (map, buffer, mask_array, last, p); }
|
{ found_vowel_syllable (map, buffer, mask_array, last, p); }
|
||||||
#line 67 "hb-ot-shape-complex-indic-machine.rl"
|
#line 67 "hb-ot-shape-complex-indic-machine.rl"
|
||||||
{ set_cluster (buffer, p, last); last = p; }
|
{ set_cluster (buffer, last, p); last = p; }
|
||||||
break;
|
break;
|
||||||
case 4:
|
case 4:
|
||||||
#line 64 "hb-ot-shape-complex-indic-machine.rl"
|
#line 64 "hb-ot-shape-complex-indic-machine.rl"
|
||||||
{ found_standalone_cluster (map, buffer, mask_array, last, p); }
|
{ found_standalone_cluster (map, buffer, mask_array, last, p); }
|
||||||
#line 67 "hb-ot-shape-complex-indic-machine.rl"
|
#line 67 "hb-ot-shape-complex-indic-machine.rl"
|
||||||
{ set_cluster (buffer, p, last); last = p; }
|
{ set_cluster (buffer, last, p); last = p; }
|
||||||
break;
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
#line 65 "hb-ot-shape-complex-indic-machine.rl"
|
#line 65 "hb-ot-shape-complex-indic-machine.rl"
|
||||||
{ found_non_indic (map, buffer, mask_array, last, p); }
|
{ found_non_indic (map, buffer, mask_array, last, p); }
|
||||||
#line 67 "hb-ot-shape-complex-indic-machine.rl"
|
#line 67 "hb-ot-shape-complex-indic-machine.rl"
|
||||||
{ set_cluster (buffer, p, last); last = p; }
|
{ set_cluster (buffer, last, p); last = p; }
|
||||||
break;
|
break;
|
||||||
#line 292 "hb-ot-shape-complex-indic-machine.hh"
|
#line 292 "hb-ot-shape-complex-indic-machine.hh"
|
||||||
}
|
}
|
||||||
|
|
|
@ -64,7 +64,7 @@ action found_vowel_syllable { found_vowel_syllable (map, buffer, mask_array, las
|
||||||
action found_standalone_cluster { found_standalone_cluster (map, buffer, mask_array, last, p); }
|
action found_standalone_cluster { found_standalone_cluster (map, buffer, mask_array, last, p); }
|
||||||
action found_non_indic { found_non_indic (map, buffer, mask_array, last, p); }
|
action found_non_indic { found_non_indic (map, buffer, mask_array, last, p); }
|
||||||
|
|
||||||
action next_syllable { set_cluster (buffer, p, last); last = p; }
|
action next_syllable { set_cluster (buffer, last, p); last = p; }
|
||||||
|
|
||||||
consonant_syllable = (c.N? (z.H|H.z?))* c.N? A? (H.z? | matra_group*)? syllable_tail %(found_consonant_syllable);
|
consonant_syllable = (c.N? (z.H|H.z?))* c.N? A? (H.z? | matra_group*)? syllable_tail %(found_consonant_syllable);
|
||||||
vowel_syllable = (Ra H)? V N? (z.H.c | ZWJ.c)? matra_group* syllable_tail %(found_vowel_syllable);
|
vowel_syllable = (Ra H)? V N? (z.H.c | ZWJ.c)? matra_group* syllable_tail %(found_vowel_syllable);
|
||||||
|
|
Загрузка…
Ссылка в новой задаче