| 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 | 
|---|