src/hb-ot-shape-complex-myanmar.cc


Log

Author Commit Date CI Message
Behdad Esfahbod c77ae408 2018-08-25T22:36:36 Rename hb-*private.hh to hb-*.hh Sorry for the noise, downstream custom builders. Please adjust.
Behdad Esfahbod 7185b273 2018-05-31T20:03:00 Rename in_error to !successful Towards possibly using Null pool for some nil objects.
Ebrahim Byagowi f24b0b97 2018-04-12T13:40:45 Update the links and revive the dead ones
Behdad Esfahbod effddd03 2018-02-13T21:38:15 [myanmar] Add dump-myanmar-data
Behdad Esfahbod d830d3d2 2018-02-13T19:01:03 [indic] Share some copy/pasta code
David Corbett ccb0367d 2018-02-02T12:04:04 Let VS1 follow U+1031 MYANMAR VOWEL SIGN E
Behdad Esfahbod 7036f1d2 2017-10-27T14:42:59 [ot] Remove shaper name In ten years we never used them...
Behdad Esfahbod 7c561dac 2017-10-19T11:35:51 [myanmar] Fix unsafe usage of FLAG_SAFE() The commit f559c633073f63b9d87cb2440048b4413cfa1c05 caused "undefined-shift" errors in Myanmar shaper as we changed the numeric value of type D from 19 to 32 there, making the "FLAG_SAFE (info.myanmar_category())" wrong. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3546
Behdad Esfahbod dbdbfe3d 2017-10-15T12:11:08 Use nullptr instead of NULL
Behdad Esfahbod ab8d70ec 2017-10-04T14:47:10 [arabic] Implement Unicode Arabic Mark Ordering Algorithm UTR#53 Fixes https://github.com/behdad/harfbuzz/issues/509
Behdad Esfahbod f559c633 2017-10-03T15:20:07 [indic] Implement Consonent_With_Stacker Fixes https://github.com/behdad/harfbuzz/issues/528
Behdad Esfahbod 9e005c5d 2017-08-10T18:45:33 [unsafe-to-break] Mark Indic-like clusters as unsafe-to-break
Ebrahim Byagowi 3b0e47ca 2017-06-19T14:47:09 Fix arm-none-eabi build (fixes #451) (#496)
Behdad Esfahbod e2b87805 2016-12-22T14:40:19 Disable OTL processing for Hebrew if GPOS doesn't have Hebrew subtable New approach to fix this: https://github.com/behdad/harfbuzz/commit/69f9fbc4200442a35484d3c790ae8f4979be5d60 Previous approach was reverted as it was too broad. See context: https://github.com/behdad/harfbuzz/issues/347#issuecomment-267838368 With U+05E9,U+05B8,U+05C1,U+05DC and Arial Unicode, we now (correctly) disable GDEF and GPOS, so we get results very close to Uniscribe, but slightly different since our fallback position logic is not exactly the same: Before: [gid1166=3+991|gid1142=0+737|gid5798=0+1434] After: [gid1166=3+991|gid1142=0@402,-26+0|gid5798=0+1434] Uniscribe: [gid1166=3+991|gid1142=0@348,0+0|gid5798=0+1434]
Behdad Esfahbod a2b03de5 2016-05-06T17:56:07 [myanmar] Handle U+AA74..U+AA76 Fixes https://github.com/behdad/harfbuzz/issues/218
Behdad Esfahbod 8b5bc141 2016-02-24T19:05:23 Add get_nominal_glyph() and get_variation_glyph() instead of get_glyph() New API: - hb_font_get_nominal_glyph_func_t - hb_font_get_variation_glyph_func_t - hb_font_funcs_set_nominal_glyph_func() - hb_font_funcs_set_variation_glyph_func() - hb_font_get_nominal_glyph() - hb_font_get_variation_glyph() Deprecated API: - hb_font_get_glyph_func_t - hb_font_funcs_set_glyph_func() Clients that implement their own font-funcs are encouraged to replace their get_glyph() implementation with a get_nominal_glyph() and get_variation_glyph() pair. The variation version can assume that variation_selector argument is not zero.
Behdad Esfahbod b894a85a 2016-02-02T16:39:19 Fix more hangs in case of buffer allocation errors Hopefully fixes https://github.com/behdad/harfbuzz/issues/214
Behdad Esfahbod 2813e304 2015-12-18T11:05:11 [indic] Update data tables to Unicode 8.0 Test stats remain unchanged, except for Malayalam, which we investigate: BENGALI: 353725 out of 354188 tests passed. 463 failed (0.130722%) DEVANAGARI: 707307 out of 707394 tests passed. 87 failed (0.0122987%) GUJARATI: 366349 out of 366457 tests passed. 108 failed (0.0294714%) GURMUKHI: 60732 out of 60747 tests passed. 15 failed (0.0246926%) KANNADA: 951190 out of 951913 tests passed. 723 failed (0.0759523%) KHMER: 299070 out of 299124 tests passed. 54 failed (0.0180527%) MALAYALAM: 1047584 out of 1048334 tests passed. 750 failed (0.0715421%) ORIYA: 42320 out of 42329 tests passed. 9 failed (0.021262%) SINHALA: 271662 out of 271847 tests passed. 185 failed (0.068053%) TAMIL: 1091753 out of 1091754 tests passed. 1 failed (9.15957e-05%) TELUGU: 970555 out of 970573 tests passed. 18 failed (0.00185457%) Myanmar, compared to Windows 10 mmrtext.ttf: MYANMAR: 1123865 out of 1123883 tests passed. 18 failed (0.00160159%)
Behdad Esfahbod 13686337 2015-11-05T13:24:15 Add new shaper method postprocess_glyphs() Unused currently. To be used for Syriac stretch implementation. https://github.com/behdad/harfbuzz/issues/141
Behdad Esfahbod 6f932bc8 2015-10-21T11:16:49 Fix a few more -Wshadow-local warnings https://bugzilla.mozilla.org/show_bug.cgi?id=1215894
Behdad Esfahbod c403d632 2015-09-01T16:15:25 [myanmar] Use buffer->sort() to sort cluster This can possibly produce more granular clusters.
Behdad Esfahbod 85846b3d 2015-09-01T15:07:52 Use insertion-sort instead of bubble-sort Needed for upcoming merge-clusters fix.
Behdad Esfahbod 56f71ff9 2015-07-22T11:58:11 Use foreach_syllable in Myanmar shaper
Behdad Esfahbod f8160a49 2015-07-21T15:50:02 Add FLAG_SAFE() for values known to be small-enough And add check to FLAG()
Behdad Esfahbod 6f2d9ba5 2014-07-26T19:17:44 Add old-Myanmar shaper Looks like Unsicribe responds to the 'mymr' tag by zeroing marks GDEF_LATE instead of generic-shaper UNICODE_LATE. Implement that. Fixes Bug 81775 - Incorrect Rendering with harfbuzz-ng myanmar unicode https://bugs.freedesktop.org/show_bug.cgi?id=81775 Micro-test added based on Padauk.
Behdad Esfahbod 7cd33f23 2014-07-17T14:22:11 Micro optimization
Behdad Esfahbod 7627100f 2014-07-11T14:54:42 Mark unsigned integer literals with the u suffix Simplifies hb_in_range() calls as the type can be inferred. The rest is obsessiveness, I admit.
Behdad Esfahbod d743ce78 2014-06-30T15:24:02 [indic-table] Update to Unicode 7.0 data Touch code just enough to preserve previous syllable structure and functionality as closely as possible. Many further cleanups coming later.
Behdad Esfahbod cf78dd48 2014-05-27T17:53:37 [indic/myanmar] Rename OT_NBSP to OT_PLACEHOLDER
Behdad Esfahbod 186ece94 2014-05-27T17:49:45 [myanmar] Use OT_NBSP instead of OT_DOTTEDCIRCLE for OT_GB No functional change.
Behdad Esfahbod cf71d28c 2014-05-27T17:47:43 [indic/myanmar] Refactor a few macros
Behdad Esfahbod 3d6ca0d3 2013-12-31T16:04:35 [ot] Simplify normalization_preference again No shaper has more than one behavior re this, so no need for a callback.
Behdad Esfahbod 9174a9db 2013-11-25T18:10:38 [myanmar] Allow punctuation clusters The spec and Uniscribe don't allow these, but UTN#11 specifically says the sequence U+104B,U+1038 is valid. As such, allow all "P V" sequences. There's about eight sequences that match that structure, but Roozbeh thinks it's fine to allow all of them. Test case: U+104B, U+1038 https://bugs.freedesktop.org/show_bug.cgi?id=71947
Behdad Esfahbod 096b71e8 2013-11-25T18:03:34 [myanmar] Mark U+104E MYANMAR SYMBOL AFOREMENTIONED as Consonant The spec and Uniscribe treat it as consonant in the grammar, but it's not in IndicSyllableCategory.txt, so fix up. Test sequence: U+1004,U+103A,U+1039,U+104E https://bugs.freedesktop.org/show_bug.cgi?id=71948
Behdad Esfahbod 71b4c999 2013-10-28T00:20:59 Revert "Zero marks by GDEF for Tibetan" This reverts commit d5bd0590ae2fbc7b0dee86385a565aef00ffb835. The reasoning behind that logic was flawed and made under a misunderstanding of the original problem, and caused regressions as reported by Jonathan Kew in thread titled "tibetan marks" in Oct 2013. Apparently I have had fixed the original problem with this commit: 7e08f1258da229dfaf7e1c4b5c41e5bb83906cb0 So, revert the faulty commit and everything seems to be in good shape.
Behdad Esfahbod d5bd0590 2013-10-18T16:44:54 Zero marks by GDEF for Tibetan See: http://lists.freedesktop.org/archives/harfbuzz/2013-April/003101.html
Behdad Esfahbod a1f7b285 2013-10-18T01:09:08 [otlayout] Switch over from old is_a_ligature() to IS_LIGATED Impact should be minimal and positive.
Behdad Esfahbod 3ddf892b 2013-10-18T00:02:43 [otlayout] Renaming
Behdad Esfahbod 5e7432b8 2013-10-15T12:28:23 [myanmar] Apply abvm/blwm
Behdad Esfahbod 6fadd9dd 2013-07-26T10:33:06 Apply 'mark' to Myanmar According to Andrew Glass: "The issue with Myanmar <mark> feature was fixed via a servicing patch as soon as Windows 8 became available."
Behdad Esfahbod 127daf15 2013-05-20T09:11:35 Arabic mark width-zeroing regression Mozilla Bug 873902 - Display Arabic text with diacritics is bad https://bugzilla.mozilla.org/show_bug.cgi?id=873902
Behdad Esfahbod a8cf7b43 2013-03-19T05:53:26 [Indic] Futher adjust ZWJ handling in Indic-like shapers After the Ngapi hackfest work, we were assuming that fonts won't use presentation features to choose specific forms (eg. conjuncts). As such, we were using auto-joiner behavior for such features. It proved to be troublesome as many fonts used presentation forms ('pres') for example to form conjuncts, which need to be disabled when a ZWJ is inserted. Two examples: U+0D2F,U+200D,U+0D4D,U+0D2F with kartika.ttf U+0995,U+09CD,U+200D,U+09B7 with vrinda.ttf What we do now is to never do magic to ZWJ during GSUB's main input match for Indic-style shapers. Note that backtrack/lookahead are still matched liberally, as is GPOS. This seems to be an acceptable compromise. As to the bug that initially started this work, that one needs to be fixed differently: Bug 58714 - Kannada u+0cb0 u+200d u+0ccd u+0c95 u+0cbe does not provide same results as Windows8 https://bugs.freedesktop.org/show_bug.cgi?id=58714 New numbers: BENGALI: 353689 out of 354188 tests passed. 499 failed (0.140886%) DEVANAGARI: 707305 out of 707394 tests passed. 89 failed (0.0125814%) GUJARATI: 366349 out of 366457 tests passed. 108 failed (0.0294714%) GURMUKHI: 60706 out of 60747 tests passed. 41 failed (0.067493%) KANNADA: 951030 out of 951913 tests passed. 883 failed (0.0927606%) KHMER: 299070 out of 299124 tests passed. 54 failed (0.0180527%) LAO: 53611 out of 53644 tests passed. 33 failed (0.0615167%) MALAYALAM: 1048102 out of 1048334 tests passed. 232 failed (0.0221304%) ORIYA: 42320 out of 42329 tests passed. 9 failed (0.021262%) SINHALA: 271666 out of 271847 tests passed. 181 failed (0.0665816%) TAMIL: 1091753 out of 1091754 tests passed. 1 failed (9.15957e-05%) TELUGU: 970555 out of 970573 tests passed. 18 failed (0.00185457%) TIBETAN: 208469 out of 208469 tests passed. 0 failed (0%)
Behdad Esfahbod ee9c3a17 2013-02-15T06:22:26 Minor refactoring
Behdad Esfahbod cfc507c5 2013-02-14T10:40:12 [Indic-like] Disable automatic joiner handling for basic shaping features Not for Arabic, but for Indic-like scripts. ZWJ/ZWNJ have special meanings in those scripts, so let font lookups take full control. This undoes the regression caused by automatic-joiners handling introduced two commits ago. We only disable automatic joiner handling for the "basic shaping features" of Indic, Myanmar, and SEAsian shapers. The "presentation forms" and other features are still applied with automatic-joiner handling. This change also changes the test suite failure statistics, such that a few scripts show more "failures". The most affected is Kannada. However, upon inspection, we believe that in most, if not all, of the new failures, we are producing results superior to Uniscribe. Hard to count those! Here's an example of what is fixed by the recent joiner-handling changes: https://bugs.freedesktop.org/show_bug.cgi?id=58714 New numbers, for future reference: BENGALI: 353892 out of 354188 tests passed. 296 failed (0.0835714%) DEVANAGARI: 707336 out of 707394 tests passed. 58 failed (0.00819911%) GUJARATI: 366262 out of 366457 tests passed. 195 failed (0.0532122%) GURMUKHI: 60706 out of 60747 tests passed. 41 failed (0.067493%) KANNADA: 950680 out of 951913 tests passed. 1233 failed (0.129529%) KHMER: 299074 out of 299124 tests passed. 50 failed (0.0167155%) LAO: 53611 out of 53644 tests passed. 33 failed (0.0615167%) MALAYALAM: 1047983 out of 1048334 tests passed. 351 failed (0.0334817%) ORIYA: 42320 out of 42329 tests passed. 9 failed (0.021262%) SINHALA: 271539 out of 271847 tests passed. 308 failed (0.113299%) TAMIL: 1091753 out of 1091754 tests passed. 1 failed (9.15957e-05%) TELUGU: 970555 out of 970573 tests passed. 18 failed (0.00185457%) TIBETAN: 208469 out of 208469 tests passed. 0 failed (0%)
Behdad Esfahbod ec544866 2013-02-14T11:25:10 Add hb_ot_map_feature_flags_t Code cleanup. No (intended) functional change.
Behdad Esfahbod e7ffcfaf 2013-02-14T11:05:56 Clean-up add_bool_feature
Behdad Esfahbod f9b66053 2013-02-12T16:13:56 [Myanmar] Use master Indic table for syllable data
Behdad Esfahbod bab02d33 2013-02-12T15:26:45 Rename HB_OT_INDIC_OPTIONS env var to HB_OPTIONS The Myanmar shaper now respects the uniscribe-bug-compatibility option too.
Behdad Esfahbod 3a83d33e 2013-02-12T12:14:10 Add South-East Asian shaper Handles Tai Tham, Cham, and New Tai Lue for now.
Behdad Esfahbod 56800027 2013-02-12T09:44:57 Adjust mark advance-width zeroing logic for Myanmar Before, we were zeroing advance width of attached marks for non-Indic scripts, and not doing it for Indic. We have now three different behaviors, which seem to better reflect what Uniscribe is doing: - For Indic, no explicit zeroing happens whatsoever, which is the same as before, - For Myanmar, zero advance width of glyphs marked as marks *in GDEF*, and do that *before* applying GPOS. This seems to be what the new Win8 Myanmar shaper does, - For everything else, zero advance width of glyphs that are from General_Category=Mn Unicode characters, and do so before applying GPOS. This seems to be what Uniscribe does for Latin at least. With these changes, positioning of all tests matches for Myanmar, except for the glitch in Uniscribe not applying 'mark'. See preivous commit.
Behdad Esfahbod 99749ca8 2013-02-12T09:44:35 [Myanmar] Add note re Uniscribe NOT applying 'mark'
Behdad Esfahbod 419c933e 2013-02-11T16:16:16 [Myanmar] Fix handling of Punctuation and Symbol types Testing with "clusters" now on par with testing without them. 15 failures both.
Behdad Esfahbod 0572c141 2013-02-11T16:06:02 [Myanmar] Fixup handling of joiners and GB characters
Behdad Esfahbod 98628cac 2013-02-11T13:36:23 Add Win8-style Myanmar shaper Myanmar failures down from 51% to 0.00204648%! MYANMAR: 1123860 out of 1123883 tests passed. 23 failed (0.00204648%)