kc3-lang/harfbuzz/src/hb-ot-shape-normalize.cc

Branch :


Log

Author Commit Date CI Message
fd8f4ffc 2020-09-18 16:37:22 Trace reorder, not normalize
645f4e7c 2019-05-03 18:28:18 Unhide CGJ before ccc=0 characters If a CGJ precedes a starter, then it cannot have blocked any reordering, so it can safely be skipped.
34ed8e72 2019-12-13 07:25:34 Prefer _hb_glyph_info_is_unicode_mark where possible.
a0b4ac4d 2019-08-24 17:57:14 Turn 8 spaces to tab across the project According to the current code style of the project
7aad5365 2019-06-26 13:21:03 [config] Add HB_NO_OT_SHAPE / HB_NO_OT Part of https://github.com/harfbuzz/harfbuzz/issues/1652
7f5941e1 2018-10-27 00:06:48 Remove stale comment Ugliness was fixed in 30eab97a0072fbc22d353082249e0e6e546cd86b But yeah, my smell detector was working. Ugliness was buggy.
30eab97a 2018-10-26 21:54:07 Fix invalid memory read Buffer might be relocated inside replace_glyphs(). Fixes https://bugs.chromium.org/p/chromium/issues/detail?id=895117
39bd07ae 2018-10-26 21:01:11 Fix bunch of unused parameter warnings Show up with gcc -O0. There's a few more but those are functions that need to be filled in. Maybe this is a lost battle...
e883f527 2018-10-09 14:50:57 Call get_nominal_glyphs() for runs of simple clusters at a time Even without FT or OT font funcs implementing get_nominal_glyphs(), there's measurable speedup.
8008bca8 2018-10-09 14:38:23 Whitespace
30c114ff 2018-10-09 14:37:08 Avoid sort and recompose stages if all clusters simple Even has measurable speedup...
24382deb 2018-10-09 14:33:24 Rewrite main normalizer loop to isolate runs of simple clusters
b5371f18 2018-10-09 14:12:59 Inline decompose_cluster Towards separating the common case into its own loop.
1d1734e9 2018-10-02 13:04:05 Shuffle code around
7f335390 2018-09-24 09:56:18 Revert change that would decompose text if GPOS mark feature is available https://github.com/harfbuzz/harfbuzz/issues/653#issuecomment-423905920
a6f4b2f7 2018-09-24 09:54:37 Fix normalization https://github.com/harfbuzz/harfbuzz/commit/62d1e0852a5549a1b510ad46a4b89f12730bb708#commitcomment-30613091
62d1e085 2018-09-23 21:32:18 Prefer decomposed form if font has GPOS mark feature Fixes https://github.com/harfbuzz/harfbuzz/issues/653
c77ae408 2018-08-25 22:36:36 Rename hb-*private.hh to hb-*.hh Sorry for the noise, downstream custom builders. Please adjust.
7185b273 2018-05-31 20:03:00 Rename in_error to !successful Towards possibly using Null pool for some nil objects.
eaf64945 2018-04-23 18:39:40 Resolve clang's conditional-uninitialize warnings
8c0d1916 2018-01-05 12:46:12 Improve CGJ skipping logic Previously we made CGJ unskippable. Now, if CGJ did NOT prevent any reordering, allow skipping over it. To make this work we had to make changes to the Arabic mark reordering algorithm implementation to renumber moved MCM marks. See comments. Fixes https://github.com/harfbuzz/harfbuzz/issues/554
ab8d70ec 2017-10-04 14:47:10 [arabic] Implement Unicode Arabic Mark Ordering Algorithm UTR#53 Fixes https://github.com/behdad/harfbuzz/issues/509
b6fe0ab6 2017-10-04 13:37:08 Add info_cc() convenience macro
7f9e7f86 2017-10-04 13:20:33 Adjust normalizer for out-of-order marks We are going to implement Unicode Arabic Mark Ordering Algorithm: http://www.unicode.org/reports/tr53/tr53-1.pdf which will reorder marks out of their sorted ccc order. Adjust normalizer to stop combining as soon as dangerous ordering is detected.
1dd630a7 2017-02-01 11:57:21 Minor Fixes https://github.com/behdad/harfbuzz/issues/411
8b5bc141 2016-02-24 19: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.
ea512f71 2015-11-26 19:22:22 Use C-style casts instead of compare to 0, to convert hb_bool_t to bool
766963ad 2015-11-24 15:38:43 Merge pull request #114 from ThePhD/vc++-fixes Fix all VC++ warnings and errors
abadc171 2015-11-18 17:52:08 Try to better handle OOM situations Fixes assert fail in https://github.com/behdad/harfbuzz/issues/161 with libharfbuzz-fuzzing.
6986208b 2015-11-04 18:46:22 Optimize runs without Default_Ignorable's Now that we have a buffer-wide scratch flags facility, use it to optimize away a few passes.
9cbc39ae 2015-11-04 18:00:53 Minor
52e6c4e1 2015-11-04 17:45:06 If font doesn't support U+2011, fall back to U+2010 Test passes now.
75483aaf 2015-11-04 17:43:36 Untangle if/else waterfall
49ef6309 2015-11-04 17:27:07 Adjust the width of various spaces if font does not cover them See discussion here: https://github.com/behdad/harfbuzz/commit/81ef4f407d9c7bd98cf62cef951dc538b13442eb There's no way to disable this fallback, but I don't think it would be needed. Let's hope for the best! Fixes https://github.com/behdad/harfbuzz/issues/153
7793aad9 2015-11-04 14:48:46 Normalize various spaces to space if font doesn't support This resurrects the space fallback feature, after I disabled the compatibility decomposition. Now I can release HarfBuzz again without breaking Pango! It also remembers which space character it was, such that later on we can approximate the width of this particular space character. That part is not implemented yet. We normalize all GC=Zs chars except for U+1680 OGHA SPACE MARK, which is better left alone.
5c8174ed 2015-10-21 18:51:40 Update comments for removal of compat decompositions
f6799700 2015-10-21 17:20:55 Disable compatibility decomposition usage during normalization Fixes https://github.com/behdad/harfbuzz/issues/152
980e25ca 2015-10-02 08:21:12 Fix hb-ot-shape-normalize with empty buffer Part of https://github.com/behdad/harfbuzz/issues/136
e995d33c 2015-09-01 16:13:32 [OT] Merge clusters when reordering marks for normalization Fixes https://bugzilla.gnome.org/show_bug.cgi?id=541608 and cluster test.
85846b3d 2015-09-01 15:07:52 Use insertion-sort instead of bubble-sort Needed for upcoming merge-clusters fix.
5c99cf93 2015-08-14 01:02:00 Merge branch 'master' into vc++-fixes
c7dfe316 2015-08-07 17:55:03 Don't rely on .cluster in _hb_ot_shape_normalize() Fixes https://github.com/behdad/harfbuzz/pull/124
8e545d59 2015-06-22 22:29:04 Fix all VC++ warnings and errors in the current commit's builds.
1eff4350 2015-01-27 12:26:04 Minor optimization
8f3eebf7 2014-08-02 17:18:46 Make sure gsubgpos buffer vars are available during fallback_position Add buffer var allocation asserts to a few key places.
5209c505 2014-07-17 12:23:44 Revert "Show U+FFFD REPLACEMENT CHARACTER for invalid Unicode codepoints" We now handle U+FFFD replacement in hb_buffer_add_utf*(). Any other manipulation can happen in user callbacks. No need for this. https://github.com/behdad/harfbuzz/commit/efe74214bbb68eaa3d7621e73869b5d58210107e#commitcomment-7039404 This reverts commit efe74214bbb68eaa3d7621e73869b5d58210107e. Conflicts: src/hb-ot-shape-normalize.cc
7627100f 2014-07-11 14: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.
efe74214 2014-07-11 11:59:48 Show U+FFFD REPLACEMENT CHARACTER for invalid Unicode codepoints Only if the font doesn't support it. Ie, this gives the user to use non-Unicode codepoints as private values and return a meaningful glyph for them. But if it's invalid and font callback doesn't like it, and if font has U+FFFD, show that instead. Font functions that do not want this automatic replacement to happen should return true from get_glyph() if unicode > 0x10FFFF. Replaces https://github.com/behdad/harfbuzz/pull/27
08cf5d75 2014-01-22 07:53:55 [ot] Don't try to compose if normalization is off
8fc1f7fe 2014-01-02 17:04:04 [ot/hangul] Don't decompose Hangul even when combining marks present As discussed on https://github.com/behdad/harfbuzz/pull/10#issuecomment-31442030
64426ec7 2014-01-02 14:33:10 [ot] Simplify composing Not tested. Ouch.
3d6ca0d3 2013-12-31 16:04:35 [ot] Simplify normalization_preference again No shaper has more than one behavior re this, so no need for a callback.
ac8cd511 2013-10-18 19:33:09 Refactor
79d1007a 2013-06-13 19:01:07 If variation selector is not consumed by cmap, pass it on to GSUB This changes the semantics of get_glyph() callback and expect that callbacks return false if the requested variant is not available, and then we will call them back with variation_selector=0 and will retain the glyph for the selector in the glyph stream. Apparently most Mongolian fonts implement the Mongolian Variation Selectors using GSUB, not cmap. https://bugs.freedesktop.org/show_bug.cgi?id=65258 Note that this doesn't fix the Mongolian shaping yet, because the way that's implemented is that the, say, 'init' feature ligates the letter and the variation-selector. However, since currently the variation selector doesn't have the 'init' mask on, it will not be matched...
c7a84917 2013-06-06 20:17:32 Skip over multiple variation selectors in a row
269de14d 2013-04-04 23:06:54 Don't compose Hangul jamo See thread "an issue regarding discrepancy between Korean and Unicode standards" on the mailing list for the rationale. In short: Uniscribe doesn't, so fonts are designed to work without it.
a88a62f7 2013-03-21 21:02:16 Minor
6e74c642 2013-02-11 06:50:17 Improve normalization heuristic Before, for most scripts, we were not trying to recompose two characters if the second one had ccc=0. That fails for Myanmar where U+1026 decomposes to U+1025,U+102E, both of which have ccc=0. However, we do want to try to recompose those. We now check whether the second is a mark, using general category instead. At the same time, remove optimization that was conflicting with this. [Let the Ngapi hackfest begin!]
eba312c8 2012-11-16 12:39:23 Plumbing to get shape plan and font into complex decompose function So we can handle Sinhala split matras smartly... Coming soon.
0736915b 2012-11-13 12:35:35 [Indic] Decompose Sinhala split matras the way old HarfBuzz / Pango did Had to do some refactoring to make this happen... Under uniscribe bug compatibility mode, we still plit them Uniscrie-style, but Jonathan and I convinced ourselves that there is no harm doing this the Unicode way. This change makes that happen, and unbreaks free Sinhala fonts.
028a1706 2012-09-06 14:25:48 Refactor common macro
b85800f9 2012-08-31 18:12:01 [Indic] Implement dotted-circle insertion for broken clusters No panic, we reeally insert dotted circle when it's absolutely broken. Fixes most of the dotted-circle cases against Uniscribe. (for Devanagari fixes 80% of them, for Khmer 70%; the rest look like Uniscribe being really bogus...) I had to make a decision. Apparently Uniscribe adds one dotted circle to each broken character. I tried that, but that goes wrong easily with split matras. So I made it add only one dotted circle to an entire broken syllable tail. As in: "if there was a dotted circle here, this would have formed a correct cluster." That works better for split stuff, and I like it more.
f4cb4762 2012-08-10 03:51:44 [OT] Slightly adjust normalizer The change is very subtle. If we have a single-char cluster that decomposes to three or more characters, then try recomposition, in case the farther mark may compose with the base.
07d68280 2012-08-10 03:28:50 Minor
b00321ea 2012-08-09 22:33:32 [OT] Avoid calling get_glyph() twice Essentially move the glyph mapping to normalization process. The effect on Devanagari is small (but observable). Should be more observable in simple text, like ASCII.
8d1eef3f 2012-08-09 21:31:52 Minor
0f8881d6 2012-08-07 16:57:02 More refactoring
428dfcab 2012-08-07 16:51:48 Minor refactoring
8fbfda92 2012-08-01 19:03:46 Inline font getters
208f70f0 2012-08-01 17:13:10 Inline Unicode callbacks internally
84186a64 2012-08-01 13:32:39 Add commentary on the compatibility decomposition in the normalizer
378d279b 2012-07-31 21:36:16 Implement Unicode compatibility decompositions Based on patch from Philip Withnall. https://bugs.freedesktop.org/show_bug.cgi?id=41095
bc8357ea 2012-06-08 21:01:20 Merge clusters during normalization
0594a244 2012-06-05 20:35:40 Cleanup TRUE/FALSE vs true/false
9f377ed3 2012-05-13 16:13:44 Fix more unused-var warnings
99c26957 2012-05-13 15:45:18 Add accessort to buffer for current info, current pos, and prev info
d1deaa2f 2012-05-09 15:04:13 Replace zerowidth invisible chars with a zero-advance space glyph Like Uniscribe does.
29a7e306 2012-04-24 16:01:30 Minor
683b503f 2012-04-14 20:47:14 Minor
96831845 2012-04-07 14:57:21 Implement normalization mode HB_OT_SHAPE_NORMALIZATION_MODE_COMPOSED_FULL In this mode we try composing CCC=0 with CCC=0 characters. Useful for Hangul.
bec2ac4f 2012-04-07 14:51:17 Bring normalization algorithm closer to the spec No logical difference so far.
e02d9257 2012-04-07 14:49:13 Flip logic around
11138ccf 2012-04-05 17:25:19 Add normalize mode In preparation for Hangul shaper.
6769f21d 2012-04-05 16:46:46 More moving code around
e3b2e077 2012-03-07 10:21:24 Typo
c346671b 2012-03-06 20:47:50 Minor doc fixes
af913c57 2011-10-17 11:39:28 Fix infinite loop in normalization code with variation selectors Reported by Jonathan Kew.
55deff75 2011-09-28 16:20:09 Add comments
947c9a77 2011-09-16 16:33:18 Minor
36b10f58 2011-09-15 16:29:51 Minor
c605bbbb 2011-08-04 20:00:53 Remove C++ guards from source files Where causing issues for people with MSVC.
45d6f29f 2011-07-30 14:44:30 [Indic] Reorder matras Number of failing shape-complex tests goes from 125 down to 94. Next: Add Ra handling and it's fair to say we kinda support Indic :).
c311d852 2011-07-23 23:43:54 Keep Unicode props updated as we go so we avoid a scan later
5389ff4d 2011-07-22 20:22:49 Implement the Unicode Canonical Composition algorithm Fallback normalization is complete and working now!
dcdc51cd 2011-07-22 17:14:46 Handle singleton decompositions
34c22f81 2011-07-22 17:04:20 Implement Unicode Canonical Reordering Algorithm
4ff0d2d9 2011-07-22 16:15:32 Decomposition works now!
468e9cb2 2011-07-22 11:28:07 Move buffer methods into the object
45412523 2011-07-22 11:07:05 More normalization kick
5d90a342 2011-07-21 15:25:01 Document normalization design