| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright © 2011,2012,2013 Google, Inc. | 2 * Copyright © 2011,2012,2013 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 437 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 448 buffer->idx = 0; | 448 buffer->idx = 0; |
| 449 unsigned int last_syllable = 0; | 449 unsigned int last_syllable = 0; |
| 450 while (buffer->idx < buffer->len) | 450 while (buffer->idx < buffer->len) |
| 451 { | 451 { |
| 452 unsigned int syllable = buffer->cur().syllable(); | 452 unsigned int syllable = buffer->cur().syllable(); |
| 453 syllable_type_t syllable_type = (syllable_type_t) (syllable & 0x0F); | 453 syllable_type_t syllable_type = (syllable_type_t) (syllable & 0x0F); |
| 454 if (unlikely (last_syllable != syllable && syllable_type == broken_cluster)) | 454 if (unlikely (last_syllable != syllable && syllable_type == broken_cluster)) |
| 455 { | 455 { |
| 456 last_syllable = syllable; | 456 last_syllable = syllable; |
| 457 | 457 |
| 458 hb_glyph_info_t info = dottedcircle; | 458 hb_glyph_info_t ginfo = dottedcircle; |
| 459 info.cluster = buffer->cur().cluster; | 459 ginfo.cluster = buffer->cur().cluster; |
| 460 info.mask = buffer->cur().mask; | 460 ginfo.mask = buffer->cur().mask; |
| 461 info.syllable() = buffer->cur().syllable(); | 461 ginfo.syllable() = buffer->cur().syllable(); |
| 462 | 462 |
| 463 buffer->output_info (info); | 463 buffer->output_info (ginfo); |
| 464 } | 464 } |
| 465 else | 465 else |
| 466 buffer->next_glyph (); | 466 buffer->next_glyph (); |
| 467 } | 467 } |
| 468 | 468 |
| 469 buffer->swap_buffers (); | 469 buffer->swap_buffers (); |
| 470 } | 470 } |
| 471 | 471 |
| 472 static void | 472 static void |
| 473 initial_reordering (const hb_ot_shape_plan_t *plan, | 473 initial_reordering (const hb_ot_shape_plan_t *plan, |
| (...skipping 26 matching lines...) Expand all Loading... |
| 500 /* Uniscribe seems to have a shaper for 'mymr' that is like the | 500 /* Uniscribe seems to have a shaper for 'mymr' that is like the |
| 501 * generic shaper, except that it zeros mark advances GDEF_LATE. */ | 501 * generic shaper, except that it zeros mark advances GDEF_LATE. */ |
| 502 const hb_ot_complex_shaper_t _hb_ot_complex_shaper_myanmar_old = | 502 const hb_ot_complex_shaper_t _hb_ot_complex_shaper_myanmar_old = |
| 503 { | 503 { |
| 504 "default", | 504 "default", |
| 505 NULL, /* collect_features */ | 505 NULL, /* collect_features */ |
| 506 NULL, /* override_features */ | 506 NULL, /* override_features */ |
| 507 NULL, /* data_create */ | 507 NULL, /* data_create */ |
| 508 NULL, /* data_destroy */ | 508 NULL, /* data_destroy */ |
| 509 NULL, /* preprocess_text */ | 509 NULL, /* preprocess_text */ |
| 510 NULL, /* postprocess_glyphs */ |
| 510 HB_OT_SHAPE_NORMALIZATION_MODE_DEFAULT, | 511 HB_OT_SHAPE_NORMALIZATION_MODE_DEFAULT, |
| 511 NULL, /* decompose */ | 512 NULL, /* decompose */ |
| 512 NULL, /* compose */ | 513 NULL, /* compose */ |
| 513 NULL, /* setup_masks */ | 514 NULL, /* setup_masks */ |
| 514 HB_OT_SHAPE_ZERO_WIDTH_MARKS_BY_GDEF_LATE, | 515 HB_OT_SHAPE_ZERO_WIDTH_MARKS_BY_GDEF_LATE, |
| 515 true, /* fallback_position */ | 516 true, /* fallback_position */ |
| 516 }; | 517 }; |
| 517 | 518 |
| 518 const hb_ot_complex_shaper_t _hb_ot_complex_shaper_myanmar = | 519 const hb_ot_complex_shaper_t _hb_ot_complex_shaper_myanmar = |
| 519 { | 520 { |
| 520 "myanmar", | 521 "myanmar", |
| 521 collect_features_myanmar, | 522 collect_features_myanmar, |
| 522 override_features_myanmar, | 523 override_features_myanmar, |
| 523 NULL, /* data_create */ | 524 NULL, /* data_create */ |
| 524 NULL, /* data_destroy */ | 525 NULL, /* data_destroy */ |
| 525 NULL, /* preprocess_text */ | 526 NULL, /* preprocess_text */ |
| 527 NULL, /* postprocess_glyphs */ |
| 526 HB_OT_SHAPE_NORMALIZATION_MODE_COMPOSED_DIACRITICS_NO_SHORT_CIRCUIT, | 528 HB_OT_SHAPE_NORMALIZATION_MODE_COMPOSED_DIACRITICS_NO_SHORT_CIRCUIT, |
| 527 NULL, /* decompose */ | 529 NULL, /* decompose */ |
| 528 NULL, /* compose */ | 530 NULL, /* compose */ |
| 529 setup_masks_myanmar, | 531 setup_masks_myanmar, |
| 530 HB_OT_SHAPE_ZERO_WIDTH_MARKS_BY_GDEF_EARLY, | 532 HB_OT_SHAPE_ZERO_WIDTH_MARKS_BY_GDEF_EARLY, |
| 531 false, /* fallback_position */ | 533 false, /* fallback_position */ |
| 532 }; | 534 }; |
| OLD | NEW |