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


Log

Author Commit Date CI Message
Behdad Esfahbod 044d7a06 2022-03-28T12:38:56 [indic-like] Add per-lookup per-syllable flag This allows mix-and-matching per-syllable and other lookups. In fact, removes the clear-syllables call completely. Fixes https://github.com/harfbuzz/harfbuzz/issues/3513
Behdad Esfahbod 61486746 2022-03-28T15:57:07 Revert "[indic] Clear syllables before presentation features" This reverts commit 90f09b1e877dc6edf63fc4ac2b397ef4e5c92083. This regressed Indic shaping. See: https://github.com/harfbuzz/harfbuzz/issues/3513
Behdad Esfahbod 90f09b1e 2022-03-21T10:24:23 [indic] Clear syllables before presentation features Fixes https://github.com/harfbuzz/harfbuzz/issues/3488
Behdad Esfahbod ccfc0481 2021-10-05T07:00:50 [indic] Apply 'calt' and 'clig' across syllable boundaries Fixes https://github.com/harfbuzz/harfbuzz/issues/3244
Behdad Esfahbod 62a535f1 2021-08-03T10:11:27 [khmer] Fix comment Fixes https://github.com/harfbuzz/harfbuzz/issues/3104
Behdad Esfahbod 2337f0d0 2021-07-08T10:58:50 Internally use hb_malloc/.../hb_free instead of malloc/.../free Redefining those stock names as macros was conflicting with gcc 10 headers. Fixes https://github.com/harfbuzz/harfbuzz/issues/3044
David Corbett 5585ea02 2021-06-05T08:35:28 [syllabic] Set position of dotted circle for Indic
Behdad Esfahbod fd489433 2021-03-02T16:21:17 [indic] Fix cluster-merging logic with cluster-level=1 Was producing non-monotonic cluster numbers because our faulty logic was not merging clusters if something from before base and after base had switched positions. Fixes https://github.com/harfbuzz/harfbuzz/issues/2272
Behdad Esfahbod c417e0d2 2021-01-28T20:27:59 [indic/khmer/myanmar/use] Move enum category around Such that the generated -machine.hh headers are independent.
Behdad Esfahbod 0ddade44 2021-01-15T19:13:47 [syllabic] Merge various insert_dotted_circles implementations Fixes https://github.com/harfbuzz/harfbuzz/issues/1810
Simon Cozens 4bb6d54e 2020-09-18T16:26:08 Missing cast
Simon Cozens 428c111f 2020-09-18T16:24:47 Fix spacing around casts
Simon Cozens f19018da 2020-09-17T15:08:32 Smaller issues from review
Simon Cozens b50099bf 2020-09-17T14:25:30 Trace reordering in pause functions
Behdad Esfahbod e5de3918 2020-06-17T16:54:23 [indic] Add comment https://github.com/harfbuzz/harfbuzz/issues/2298#issuecomment-615318654
Behdad Esfahbod 56719474 2020-06-05T12:57:23 s/blacklist/blocklist/g
Behdad Esfahbod b6d0f152 2019-12-05T12:19:52 [indic] Fix old-spec base-finding logic w vatu feature Fixes https://github.com/harfbuzz/harfbuzz/issues/1587
Ebrahim Byagowi a0b4ac4d 2019-08-24T17:57:14 Turn 8 spaces to tab across the project According to the current code style of the project
Khaled Hosny da5118da 2019-08-16T00:48:26 [ot-shape] Enable abvm/blwm features by default Core Text seems to apply them to Latin text, but Uniscribe doesn’t. See https://github.com/harfbuzz/harfbuzz/pull/1908#issuecomment-521819343
Khaled Hosny 2164bd6f 2019-08-16T00:28:41 [ot-shape] Enable dist feature by default (#1908) Fixes https://github.com/harfbuzz/harfbuzz/issues/1907
Behdad Esfahbod 3724f13b 2019-07-02T15:23:00 [amalgam] Finish fixing Indic-like shapers Part of https://github.com/harfbuzz/harfbuzz/issues/1809
Behdad Esfahbod dc480fc4 2019-07-02T15:17:56 [amalgam] More Indic-like issues Part of https://github.com/harfbuzz/harfbuzz/issues/1809
Behdad Esfahbod d115a9e0 2019-07-02T14:42:45 [amalgam] Fix most duplicate-id instances in Indic-like shapers Part of https://github.com/harfbuzz/harfbuzz/issues/1809
Behdad Esfahbod 7aad5365 2019-06-26T13:21:03 [config] Add HB_NO_OT_SHAPE / HB_NO_OT Part of https://github.com/harfbuzz/harfbuzz/issues/1652
Behdad Esfahbod 73943bdf 2019-05-13T14:48:31 Adjust uniscribe_bug_compatible mode More correct behavior. We were commenting out some legit conditions before. Part of https://github.com/harfbuzz/harfbuzz/issues/1652
Behdad Esfahbod ccc88e98 2019-05-12T16:12:06 Fix MSVC build
Behdad Esfahbod a1394a28 2019-05-12T15:47:46 [config] Add HB_NO_UNISCRIBE_BUG_COMPATIBLE Part of https://github.com/harfbuzz/harfbuzz/issues/1652
Behdad Esfahbod 41248cce 2019-05-07T20:54:31 Remove MIN/MAX in favor of hb_min/hb_max
Behdad Esfahbod 085793d6 2019-04-24T10:15:59 Remove wrong TODOs
Behdad Esfahbod 3bed03dc 2019-03-28T20:50:04 [indic] Add back medial-consonant to grammar Fixes https://github.com/harfbuzz/harfbuzz/issues/1592
Behdad Esfahbod 7b27fe52 2019-03-11T18:09:51 Remove redundant hb_ot_layout_lookup_would_substitute_fast
Eric Muller a8635691 2019-02-09T02:55:27 Add a flag to hb_buffer_t to prevent the insertion of dotted circles on incorrect character sequences. Current behavior unchanged if this flag is not set (and it isn't by default).
Adrian Wong 4f03d5c7 2019-02-13T21:04:46 [indic] Remove superfluous ZWNJ check in final reorder of pre-base matras
Behdad Esfahbod 21bb80eb 2019-03-28T20:50:04 [indic] Add back medial-consonant to grammar Fixes https://github.com/harfbuzz/harfbuzz/issues/1592
Behdad Esfahbod e52ec3fc 2019-03-11T18:09:51 Remove redundant hb_ot_layout_lookup_would_substitute_fast
Eric Muller 30d7c40f 2019-02-09T02:55:27 Add a flag to hb_buffer_t to prevent the insertion of dotted circles on incorrect character sequences. Current behavior unchanged if this flag is not set (and it isn't by default).
Adrian Wong 2f125b0f 2019-02-13T21:04:46 [indic] Remove superfluous ZWNJ check in final reorder of pre-base matras
Ebrahim Byagowi b2ebaa9a 2018-12-16T22:38:10 Remove redundant 'inline' from methods (#1483)
Behdad Esfahbod 17335a81 2018-11-04T02:25:07 Clean up buffer->swap_buffers() calls That function checks for buffer->successful already. No need to check at call site.
Behdad Esfahbod 35d410f2 2018-10-29T14:45:44 Remove ASSERT_POD Newer compilers / language allows structs with constructor in union. So, this was not actually testing anything. Indeed, the recent change in DISALLOW_COPY *is* making some of our types non-POD. That broke some bots. Just remove this since it wasn't doing much, and I'd rather have DISALLOW_COPY.
Behdad Esfahbod ca645acc 2018-10-27T00:39:31 Comment
Behdad Esfahbod 79b2fa62 2018-10-26T21:21:18 [indic] Fix infinite loop Fixes https://bugs.chromium.org/p/chromium/issues/detail?id=863044
Behdad Esfahbod 982c2f4a 2018-10-26T15:40:12 [indic/khmer/myanmar/use] Clarify clear_syllable No logic change.
Behdad Esfahbod 6d40eb83 2018-10-23T02:51:42 Touch up on previous commit https://github.com/harfbuzz/harfbuzz/pull/1273
David Corbett 205737ac 2018-10-12T16:54:54 [use] Prohibit visually ambiguous vowel sequences
Behdad Esfahbod 8edc9102 2018-10-03T20:13:20 [indic] Reset continuation on inserted dottedcircle
Behdad Esfahbod 19d50aa2 2018-10-03T20:05:28 [indic] Simplify dottedcircle
Behdad Esfahbod 45e55f70 2018-10-03T18:07:49 [indic] Fix clang everything
Behdad Esfahbod df32eaae 2018-10-03T14:44:25 [indic] Disallow vowel mark combinations that spoof other vowel marks Fixes https://github.com/harfbuzz/harfbuzz/issues/1019 New numbers: BENGALI: 353725 out of 354188 tests passed. 463 failed (0.130722%) DEVANAGARI: 707261 out of 707394 tests passed. 133 failed (0.0188014%) GUJARATI: 366353 out of 366457 tests passed. 104 failed (0.0283799%) GURMUKHI: 60729 out of 60747 tests passed. 18 failed (0.0296311%) KANNADA: 951300 out of 951913 tests passed. 613 failed (0.0643966%) MALAYALAM: 1048136 out of 1048334 tests passed. 198 failed (0.0188871%) ORIYA: 42327 out of 42329 tests passed. 2 failed (0.00472489%) SINHALA: 271596 out of 271847 tests passed. 251 failed (0.0923313%) TAMIL: 1091754 out of 1091754 tests passed. 0 failed (0%) TELUGU: 970555 out of 970573 tests passed. 18 failed (0.00185457%) Devanagari regressed because Uniscribe doesn't enforce the full set. Tests added with the *-vowel-letters.txt files in tree and Noto fonts.
Behdad Esfahbod 0dd9101f 2018-10-03T13:26:26 Minor
Behdad Esfahbod 48c513fe 2018-10-02T14:17:42 Minor
Behdad Esfahbod 8bf4027d 2018-10-01T20:05:00 [indic] Remove Consonant_Medial from grammar and code The only Indic CM is U+0A75 GURMUKHI SIGN YAKASH, which Uniscribe doesn't treat specially, and font designers design for that. So, do the same.
Behdad Esfahbod b1e07e1e 2018-09-30T05:43:22 [indic/khmer] Remove use of global constructors Alternative woul have been to resurrect F_COMBINE that I removed in 70136a78cb9eda244767f8e8a3d30d0f3c569d01 But this does it for now. I'm not sure why check-static-inits.sh didn't catch this before. Clang -Weverything bot did: CXX libharfbuzz_la-hb-ot-shape-complex-indic.lo hb-ot-shape-complex-indic.cc:99:1: warning: declaration requires a global constructor [-Wglobal-constructors] indic_features[] = ^ 1 warning generated. CXX libharfbuzz_la-hb-ot-shape-complex-khmer.lo hb-ot-shape-complex-khmer.cc:36:1: warning: declaration requires a global constructor [-Wglobal-constructors] khmer_features[] = ^ 1 warning generated.
Behdad Esfahbod 6c0e7eb6 2018-09-24T19:07:23 Minor
Behdad Esfahbod f048ead8 2018-09-24T18:01:53 Some more
Behdad Esfahbod 1676f608 2018-09-24T17:55:03 Minor refactoring
Behdad Esfahbod 3583fb03 2018-09-23T22:33:38 Simplify ZWJ-skipping a bit Towards disabling ZWJ-skipping in certain GPOS contexts. Part of https://github.com/flutter/flutter/issues/16886
Behdad Esfahbod 1bc7a8d6 2018-09-10T22:51:26 [indic] Cache hb_options().uniscribe_bug_compatible on indic_plan
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 4bc16aca 2018-07-31T21:05:51 [atomic] Add get_relaxed / set_relaxed To help TSan and be more "correct".
Behdad Esfahbod af876cce 2018-07-31T15:27:29 [indic] Flip default logic for double-halants in old-school Oriya went down from 9 to 2. BENGALI: 353725 out of 354188 tests passed. 463 failed (0.130722%) DEVANAGARI: 707311 out of 707394 tests passed. 83 failed (0.0117332%) GUJARATI: 366355 out of 366457 tests passed. 102 failed (0.0278341%) GURMUKHI: 60729 out of 60747 tests passed. 18 failed (0.0296311%) KANNADA: 951300 out of 951913 tests passed. 613 failed (0.0643966%) MALAYALAM: 1048136 out of 1048334 tests passed. 198 failed (0.0188871%) MYANMAR: 1115830 out of 1123883 tests passed. 8053 failed (0.716534%) ORIYA: 42327 out of 42329 tests passed. 2 failed (0.00472489%) SINHALA: 271596 out of 271847 tests passed. 251 failed (0.0923313%) TAMIL: 1091754 out of 1091754 tests passed. 0 failed (0%) TELUGU: 970555 out of 970573 tests passed. 18 failed (0.00185457%)
Behdad Esfahbod 92ba9905 2018-07-31T15:19:32 [indic] Allow double-halant in old-spec Devanagari Fixes https://github.com/harfbuzz/harfbuzz/issues/1071
Behdad Esfahbod 9940504e 2018-07-03T14:29:25 [indic] Adjust left-matra repositioning and Halant,ZWJ sequence From the new code (first paragraph is from the OT Devanagari spec.): /* o Reorder matras: * * If a pre-base matra character had been reordered before applying basic * features, the glyph can be moved closer to the main consonant based on * whether half-forms had been formed. Actual position for the matra is * defined as “after last standalone halant glyph, after initial matra * position and before the main consonant”. If ZWJ or ZWNJ follow this * halant, position is moved after it. * * IMPLEMENTATION NOTES: * * It looks like the last sentence is wrong. Testing, with Windows 7 Uniscribe * and Devanagari shows that the behavior is best described as: * * "If ZWJ follows this halant, matra is NOT repositioned after this halant. * If ZWNJ follows this halant, position is moved after it." * * Test case, with Adobe Devanagari or Nirmala UI: * * U+091F,U+094D,U+200C,U+092F,U+093F * (Matra moves to the middle, after ZWNJ.) * * U+091F,U+094D,U+200D,U+092F,U+093F * (Matra does NOT move, stays to the left.) Fixes https://github.com/harfbuzz/harfbuzz/issues/1070 Test case added with Adobe Devanagari.
Behdad Esfahbod 8b9cbe3b 2018-06-30T12:28:03 [indic] Tweak for old-spec Bengali and halant-ya-halant Fixes https://github.com/harfbuzz/harfbuzz/issues/1073
Behdad Esfahbod 4a115fe7 2018-06-04T15:40:43 [sinhala] Move reph to after post-consonants Apparently this changed between Win 7 and Win 10. Fixes https://github.com/harfbuzz/harfbuzz/issues/967 To be continued in https://github.com/harfbuzz/harfbuzz/issues/1044
Behdad Esfahbod 7185b273 2018-05-31T20:03:00 Rename in_error to !successful Towards possibly using Null pool for some nil objects.
Ebrahim Byagowi 9925030f 2018-04-13T12:43:29 Don't decompose Bengali Rra and Rha Fixes #779 and follow up to b01d9b3d90e892341ee4463f2eda4600850b97d8
Ebrahim Byagowi f24b0b97 2018-04-12T13:40:45 Update the links and revive the dead ones
Behdad Esfahbod d830d3d2 2018-02-13T19:01:03 [indic] Share some copy/pasta code
Behdad Esfahbod 397ed53e 2018-02-13T18:54:26 [indic] Add print-indic-table
Behdad Esfahbod f6df2515 2018-01-05T17:27:48 [indic] Remove unused OT_VD category
Behdad Esfahbod 9761f9d7 2018-01-05T15:33:11 [indic] Remove more Khmer-specific stuff from Indic shaper No numbers changed.
Behdad Esfahbod 07589536 2018-01-05T15:08:28 [indic] Remove main Khmer stuff
Nathan Willis 0dc03ef7 2017-12-05T17:43:09 Indic: always hyphenate pre-base-reordering, for clarity.
Nathan Willis 8db058d2 2017-12-05T17:43:09 Indic: always hyphenate pre-base-reordering, for clarity.
David Corbett 87d74605 2017-11-20T13:19:34 Categorize U+0C80 as Consonant_Placeholder
ebraminio 7c6937e7 2017-11-20T14:49:22 Move all references of old url to the new address (#622)
David Corbett 5a9cba97 2017-11-08T13:15:27 Mark non-initial left matras as unsafe to break
Unknown 97145df2 2017-11-03T09:05:00 Trivial typos Found using `codespell -i 3 -w -I '../harf-whitelist.txt'` whereas the whitelist contents were: ``` beng iff pres ot te teh ```
Behdad Esfahbod 92bb5086 2017-10-31T22:58:03 [indic] Use mutable for virama_glyph
David Corbett d016c5bd 2017-10-27T12:14:00 Categorize Grantha candrabindu for use in Tamil
Behdad Esfahbod 7036f1d2 2017-10-27T14:42:59 [ot] Remove shaper name In ten years we never used them...
Behdad Esfahbod 6058f988 2017-10-19T11:39:52 Remove FLAG_SAFE() No flag is safe, over time... See previous commit.
Behdad Esfahbod dbdbfe3d 2017-10-15T12:11:08 Use nullptr instead of NULL
Behdad Esfahbod c3448e8d 2017-10-15T12:02:00 Use static_assert instead of custom ASSERT_STATIC
Behdad Esfahbod 4f9a83ec 2017-10-12T14:08:58 Merge remote-tracking branch 'origin/master'
Behdad Esfahbod fa48ccbe 2017-10-12T14:07:37 [indic] Special-case Kannada Ra,H,ZWJ sequence Fixes https://github.com/behdad/harfbuzz/issues/435
n8willis 40b05d7b 2017-10-12T12:48:48 Replacing 'cluster' with 'syllable' when comments describe certain Indic shaping behavior (#563) * Clarified wording of syllable/cluster behavior in Uniscribe in final_reordering; changed one other probable typo. * Additional syllable/cluster swap in comments for final reordering and for initial-reordering matra decomposition.
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 63db692f 2017-10-03T16:00:18 [indic] Fix shaping of U+0AFB GUJARATI SIGN SHADDA Fixes https://github.com/behdad/harfbuzz/issues/552
Behdad Esfahbod 71c0a142 2017-10-02T18:56:10 [indic] Fix shaping of U+0A51 Mark it as matra below to allow the sequence U+0A15, U+0A51, U+0A47. Oh well... Fixes https://github.com/behdad/harfbuzz/issues/524
Behdad Esfahbod 819cc360 2017-10-02T09:03:16 [indic] Move manual code out of generated table
Behdad Esfahbod 1a0a356a 2017-10-02T08:49:23 [indic] Categorize U+0980 BENGALI ANJI as placeholder Fixes https://github.com/behdad/harfbuzz/issues/538
Behdad Esfahbod 9e005c5d 2017-08-10T18:45:33 [unsafe-to-break] Mark Indic-like clusters as unsafe-to-break
Ebrahim Byagowi 65f64d14 2017-07-19T02:42:53 Unbreak arm-none-eabi build again (#514)
Behdad Esfahbod f1cd7ca8 2017-07-14T15:59:40 [indic] Add github URL
Behdad Esfahbod 3cc84f45 2017-07-14T15:50:22 [indic] Fix https://github.com/behdad/harfbuzz/issues/478
Behdad Esfahbod e359a4b8 2017-07-14T14:14:35 [indic] Disable automatic ZWNJ handling for Indic features Fixes https://github.com/behdad/harfbuzz/issues/294 Also fixes a bunch of other Indic issues. Test results after: BENGALI: 353725 out of 354188 tests passed. 463 failed (0.130722%) DEVANAGARI: 707307 out of 707394 tests passed. 87 failed (0.0122987%) GUJARATI: 366355 out of 366457 tests passed. 102 failed (0.0278341%) GURMUKHI: 60732 out of 60747 tests passed. 15 failed (0.0246926%) KANNADA: 951201 out of 951913 tests passed. 712 failed (0.0747968%) KHMER: 299071 out of 299124 tests passed. 53 failed (0.0177184%) MALAYALAM: 1048136 out of 1048334 tests passed. 198 failed (0.0188871%) ORIYA: 42320 out of 42329 tests passed. 9 failed (0.021262%) SINHALA: 271662 out of 271847 tests passed. 185 failed (0.068053%) TAMIL: 1091754 out of 1091754 tests passed. 0 failed (0%) TELUGU: 970555 out of 970573 tests passed. 18 failed (0.00185457%) Before: 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: 1048136 out of 1048334 tests passed. 198 failed (0.0188871%) 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%)
Ebrahim Byagowi 3b0e47ca 2017-06-19T14:47:09 Fix arm-none-eabi build (fixes #451) (#496)
Behdad Esfahbod 85630996 2017-02-25T13:30:38 Fix buffer-overrun with Bengali reph positioning code This has no security implications whatsoever since we always keep and extra element at the end of buffer, just in case. Discovered by oss-fuzz CC https://github.com/behdad/harfbuzz/issues/139 Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=660