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