OLD | NEW |
1 /* | 1 /* |
2 * Copyright © 2011,2012 Google, Inc. | 2 * Copyright © 2011,2012 Google, Inc. |
3 * | 3 * |
4 * This is part of HarfBuzz, a text shaping library. | 4 * This is part of HarfBuzz, a text shaping library. |
5 * | 5 * |
6 * Permission is hereby granted, without written agreement and without | 6 * Permission is hereby granted, without written agreement and without |
7 * license or royalty fees, to use, copy, modify, and distribute this | 7 * license or royalty fees, to use, copy, modify, and distribute this |
8 * software and its documentation for any purpose, provided that the | 8 * software and its documentation for any purpose, provided that the |
9 * above copyright notice and the following two paragraphs appear in | 9 * above copyright notice and the following two paragraphs appear in |
10 * all copies of this software. | 10 * all copies of this software. |
(...skipping 1479 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1490 | 1490 |
1491 /* 4. If reph should be positioned before post-base consonant, find | 1491 /* 4. If reph should be positioned before post-base consonant, find |
1492 * first post-base classified consonant not ligated with main. If n
o | 1492 * first post-base classified consonant not ligated with main. If n
o |
1493 * consonant is found, the target position should be before the | 1493 * consonant is found, the target position should be before the |
1494 * first matra, syllable modifier sign or vedic sign. | 1494 * first matra, syllable modifier sign or vedic sign. |
1495 */ | 1495 */ |
1496 /* This is our take on what step 4 is trying to say (and failing, BADLY). */ | 1496 /* This is our take on what step 4 is trying to say (and failing, BADLY). */ |
1497 if (reph_pos == REPH_POS_AFTER_SUB) | 1497 if (reph_pos == REPH_POS_AFTER_SUB) |
1498 { | 1498 { |
1499 new_reph_pos = base; | 1499 new_reph_pos = base; |
1500 while (new_reph_pos < end && | 1500 while (new_reph_pos + 1 < end && |
1501 !( FLAG_SAFE (info[new_reph_pos + 1].indic_position()) & (FLAG (POS
_POST_C) | FLAG (POS_AFTER_POST) | FLAG (POS_SMVD)))) | 1501 !( FLAG_SAFE (info[new_reph_pos + 1].indic_position()) & (FLAG (POS
_POST_C) | FLAG (POS_AFTER_POST) | FLAG (POS_SMVD)))) |
1502 new_reph_pos++; | 1502 new_reph_pos++; |
1503 if (new_reph_pos < end) | 1503 if (new_reph_pos < end) |
1504 goto reph_move; | 1504 goto reph_move; |
1505 } | 1505 } |
1506 | 1506 |
1507 /* 5. If no consonant is found in steps 3 or 4, move reph to a positio
n | 1507 /* 5. If no consonant is found in steps 3 or 4, move reph to a positio
n |
1508 * immediately before the first post-base matra, syllable modifier | 1508 * immediately before the first post-base matra, syllable modifier |
1509 * sign or vedic sign that has a reordering class after the intende
d | 1509 * sign or vedic sign that has a reordering class after the intende
d |
1510 * reph position. For example, if the reordering position for reph | 1510 * reph position. For example, if the reordering position for reph |
(...skipping 300 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1811 NULL, /* preprocess_text */ | 1811 NULL, /* preprocess_text */ |
1812 NULL, /* postprocess_glyphs */ | 1812 NULL, /* postprocess_glyphs */ |
1813 HB_OT_SHAPE_NORMALIZATION_MODE_COMPOSED_DIACRITICS_NO_SHORT_CIRCUIT, | 1813 HB_OT_SHAPE_NORMALIZATION_MODE_COMPOSED_DIACRITICS_NO_SHORT_CIRCUIT, |
1814 decompose_indic, | 1814 decompose_indic, |
1815 compose_indic, | 1815 compose_indic, |
1816 setup_masks_indic, | 1816 setup_masks_indic, |
1817 NULL, /* disable_otl */ | 1817 NULL, /* disable_otl */ |
1818 HB_OT_SHAPE_ZERO_WIDTH_MARKS_NONE, | 1818 HB_OT_SHAPE_ZERO_WIDTH_MARKS_NONE, |
1819 false, /* fallback_position */ | 1819 false, /* fallback_position */ |
1820 }; | 1820 }; |
OLD | NEW |