src/hb-ot-shape-normalize.cc


Log

Author Commit Date CI Message
jfkthame c7dfe316 2015-08-07T17:55:03 Don't rely on .cluster in _hb_ot_shape_normalize() Fixes https://github.com/behdad/harfbuzz/pull/124
Behdad Esfahbod 1eff4350 2015-01-27T12:26:04 Minor optimization
Behdad Esfahbod 8f3eebf7 2014-08-02T17:18:46 Make sure gsubgpos buffer vars are available during fallback_position Add buffer var allocation asserts to a few key places.
Behdad Esfahbod 5209c505 2014-07-17T12: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
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 efe74214 2014-07-11T11: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
Behdad Esfahbod 08cf5d75 2014-01-22T07:53:55 [ot] Don't try to compose if normalization is off
Behdad Esfahbod 8fc1f7fe 2014-01-02T17: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
Behdad Esfahbod 64426ec7 2014-01-02T14:33:10 [ot] Simplify composing Not tested. Ouch.
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 ac8cd511 2013-10-18T19:33:09 Refactor
Behdad Esfahbod 79d1007a 2013-06-13T19: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...
Behdad Esfahbod c7a84917 2013-06-06T20:17:32 Skip over multiple variation selectors in a row
Behdad Esfahbod 269de14d 2013-04-04T23: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.
Behdad Esfahbod a88a62f7 2013-03-21T21:02:16 Minor
Behdad Esfahbod 6e74c642 2013-02-11T06: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!]
Behdad Esfahbod eba312c8 2012-11-16T12:39:23 Plumbing to get shape plan and font into complex decompose function So we can handle Sinhala split matras smartly... Coming soon.
Behdad Esfahbod 0736915b 2012-11-13T12: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.
Behdad Esfahbod 028a1706 2012-09-06T14:25:48 Refactor common macro
Behdad Esfahbod b85800f9 2012-08-31T18: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.
Behdad Esfahbod f4cb4762 2012-08-10T03: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.
Behdad Esfahbod 07d68280 2012-08-10T03:28:50 Minor
Behdad Esfahbod b00321ea 2012-08-09T22: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.
Behdad Esfahbod 8d1eef3f 2012-08-09T21:31:52 Minor
Behdad Esfahbod 0f8881d6 2012-08-07T16:57:02 More refactoring
Behdad Esfahbod 428dfcab 2012-08-07T16:51:48 Minor refactoring
Behdad Esfahbod 8fbfda92 2012-08-01T19:03:46 Inline font getters
Behdad Esfahbod 208f70f0 2012-08-01T17:13:10 Inline Unicode callbacks internally
Behdad Esfahbod 84186a64 2012-08-01T13:32:39 Add commentary on the compatibility decomposition in the normalizer
Behdad Esfahbod 378d279b 2012-07-31T21:36:16 Implement Unicode compatibility decompositions Based on patch from Philip Withnall. https://bugs.freedesktop.org/show_bug.cgi?id=41095
Behdad Esfahbod bc8357ea 2012-06-08T21:01:20 Merge clusters during normalization
Behdad Esfahbod 0594a244 2012-06-05T20:35:40 Cleanup TRUE/FALSE vs true/false
Behdad Esfahbod 9f377ed3 2012-05-13T16:13:44 Fix more unused-var warnings
Behdad Esfahbod 99c26957 2012-05-13T15:45:18 Add accessort to buffer for current info, current pos, and prev info
Behdad Esfahbod d1deaa2f 2012-05-09T15:04:13 Replace zerowidth invisible chars with a zero-advance space glyph Like Uniscribe does.
Behdad Esfahbod 29a7e306 2012-04-24T16:01:30 Minor
Behdad Esfahbod 683b503f 2012-04-14T20:47:14 Minor
Behdad Esfahbod 96831845 2012-04-07T14: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.
Behdad Esfahbod bec2ac4f 2012-04-07T14:51:17 Bring normalization algorithm closer to the spec No logical difference so far.
Behdad Esfahbod e02d9257 2012-04-07T14:49:13 Flip logic around
Behdad Esfahbod 11138ccf 2012-04-05T17:25:19 Add normalize mode In preparation for Hangul shaper.
Behdad Esfahbod 6769f21d 2012-04-05T16:46:46 More moving code around
Behdad Esfahbod e3b2e077 2012-03-07T10:21:24 Typo
Behdad Esfahbod c346671b 2012-03-06T20:47:50 Minor doc fixes
Behdad Esfahbod af913c57 2011-10-17T11:39:28 Fix infinite loop in normalization code with variation selectors Reported by Jonathan Kew.
Behdad Esfahbod 55deff75 2011-09-28T16:20:09 Add comments
Behdad Esfahbod 947c9a77 2011-09-16T16:33:18 Minor
Behdad Esfahbod 36b10f58 2011-09-15T16:29:51 Minor
Behdad Esfahbod c605bbbb 2011-08-04T20:00:53 Remove C++ guards from source files Where causing issues for people with MSVC.
Behdad Esfahbod 45d6f29f 2011-07-30T14: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 :).
Behdad Esfahbod c311d852 2011-07-23T23:43:54 Keep Unicode props updated as we go so we avoid a scan later
Behdad Esfahbod 5389ff4d 2011-07-22T20:22:49 Implement the Unicode Canonical Composition algorithm Fallback normalization is complete and working now!
Behdad Esfahbod dcdc51cd 2011-07-22T17:14:46 Handle singleton decompositions
Behdad Esfahbod 34c22f81 2011-07-22T17:04:20 Implement Unicode Canonical Reordering Algorithm
Behdad Esfahbod 4ff0d2d9 2011-07-22T16:15:32 Decomposition works now!
Behdad Esfahbod 468e9cb2 2011-07-22T11:28:07 Move buffer methods into the object
Behdad Esfahbod 45412523 2011-07-22T11:07:05 More normalization kick
Behdad Esfahbod 5d90a342 2011-07-21T15:25:01 Document normalization design
Behdad Esfahbod d6b9c6d2 2011-07-21T12:16:45 More kicking
Behdad Esfahbod 192445ae 2011-07-21T12:13:04 Remove intermittent_glyph() Lets not worry about performance for now...
Behdad Esfahbod 5c6f5982 2011-07-21T11:31:08 Towards normalization
Behdad Esfahbod 655586fe 2011-07-21T00:51:18 Towards normalization