src


Log

Author Commit Date CI Message
Behdad Esfahbod bcba8b45 2014-07-16T14:59:04 New API hb_buffer_add_codepoints() Like hb_buffer_add_utf32, but doesn't do any Unicode validation. This is like what hb_buffer_add_utf32 used to be until a couple commits ago.
Behdad Esfahbod 625dbf14 2014-07-16T14:49:55 [buffer] Templatize UTF-* functions
Behdad Esfahbod e634fed4 2014-07-16T14:17:26 [buffer] Validate UTF-32 input Same as what we do for UTF-8 and UTF-16.
Behdad Esfahbod b98c5db3 2014-07-16T13:44:01 Minor refactoring
Behdad Esfahbod 3b861421 2014-07-16T13:22:05 Fix Mongolian Variation Selectors for fonts without GDEF Originally we fixed those in 79d1007a501fd63c0ba4d51038c513e6b8b94740. However, fonts like MongolianWhite don't have GDEF, but have IgnoreMarks in their LigatureSubstitute init/etc features. We were synthesizing a GDEF class of mark for Mongolian Variation Selectors and as such the ligature lookups where not matching. Uniscribe doesn't do that. I tried with more sophisticated fixes, like, if there is no GDEF and a lookup-flag mismatch happens, instead of rejecting a match, try skipping that glyph. That surely produces some interesting behavior, but since we don't want to support fonts missing GDEF more than we have to, I went for this simpler fix which is to always mark default-ignorables as base when synthesizing GDEF. Micro-test added. Fixes rest of https://bugs.freedesktop.org/show_bug.cgi?id=65258
Behdad Esfahbod 878a2537 2014-07-16T13:21:26 Minor
Behdad Esfahbod ec181e50 2014-07-16T13:10:03 Minor moving around
Behdad Esfahbod e7ce50d9 2014-07-16T12:30:39 [indic] Fix access past end of array
Behdad Esfahbod 73e23b0a 2014-07-15T18:43:49 Whitespace
Behdad Esfahbod c09a607a 2014-07-11T15:05:36 Use hb_in_range() for arabic and indic tables Though, looks like gcc was smart enough to produce the same code before...
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 b7bc0b67 2014-07-11T16:20:28 Simplify / speed up UTF-8 code
Behdad Esfahbod af2490c0 2014-07-11T16:10:58 Only accept well-formed UTF-8 sequences Enable tests that were disabled before, and adjust one test, and add more tests.
Behdad Esfahbod 7323d385 2014-07-11T15:10:05 Simplify hb_utf_prev<16> to call hb_utf_next<16>
Behdad Esfahbod a8b89a09 2014-07-11T14:18:01 Simplify hb_in_range() It's both faster and produces smaller code. Now I feel stupid for not writing it this way before.
Behdad Esfahbod db8934fa 2014-07-11T13:58:36 Simplify hb_utf_prev<8> to call hb_utf_next<8>
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 6f13b6d6 2014-07-10T19:31:40 When parsing UTF-16, generate invalid codepoint for lonely low surrogate Test passes now.
Behdad Esfahbod 6334495a 2014-07-10T19:22:07 Use zh-Hans / zh-Hant when converting OT language tag to hb_language_t
Behdad Esfahbod f381e320 2014-07-10T19:20:35 Fix lang matching logic Previous code was broken logically, but harmless.
Behdad Esfahbod ee5350d6 2014-07-10T19:06:45 Accept BCP 47 zh-Hans / zh-Hant language tags
Behdad Esfahbod 8b16ff12 2014-07-09T17:40:52 [uniscribe] Fix build after recent changes to Offset
Behdad Esfahbod 73f7f891 2014-07-09T17:17:18 Define _POSIX_C_SOURCE only if it is not defined Fixes https://github.com/behdad/harfbuzz/pull/45
Behdad Esfahbod 0cd94491 2014-07-09T16:51:38 [ucdn] Update to Unicode 7.0.0 data From http://github.com/behdad/ucdn
Behdad Esfahbod 68f72448 2014-06-30T15:46:53 [indic] Remove some more now-unused special-cases
Behdad Esfahbod e79c9489 2014-06-30T15:39:39 [indic] Remove special-casing of U+1CF2,1CF3 These were introduced in a498565cedf0441ae723c5e5969f637d792a15e7, but IndicSyllabicCategory has had the correct value already, so the special code was never needed.
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 5fa21b3a 2014-06-30T14:30:54 [indic-table] Fix category frequency counts in comments
Behdad Esfahbod 5c4e3e9a 2014-06-30T14:25:18 Whitespace
Behdad Esfahbod af528b66 2014-06-27T18:07:00 Fix typo; ouch!
Behdad Esfahbod 7d4ada66 2014-06-27T17:30:59 Mark unsed members with a "Z" suffix There may be more. There are members that are by definition redundant or reserved and not needed, NOT what we *currently* don't use. I'm sure there's more...
Behdad Esfahbod 23afcff1 2014-06-27T17:22:36 [ot-font] Implement Unicode variation selectors
Behdad Esfahbod a5a47369 2014-06-27T17:03:22 [cmap] Implement subtable format 14
Behdad Esfahbod 586b6062 2014-06-27T15:39:47 Minor: final bits of cleanup
Behdad Esfahbod 51d9ba09 2014-06-27T15:27:15 Minor
Behdad Esfahbod 3084767e 2014-06-27T15:24:35 Minor: Remove LongArrayOf
Behdad Esfahbod 41ea5949 2014-06-27T15:23:18 Minor: Remove LongSortedArrayOf
Behdad Esfahbod bb6ecf2c 2014-06-27T15:13:44 Minor: Remove LongOffsetArrayOf and LongOffsetLongArrayOf
Behdad Esfahbod 99d28171 2014-06-27T15:12:52 Minor: Remove GenericOffset
Behdad Esfahbod 9da552dc 2014-06-27T15:09:42 Minor: Remove some GenericXXX templates
Behdad Esfahbod 36073ede 2014-06-27T14:48:54 Minor: Reorder template parameter order
Behdad Esfahbod 0394ec1b 2014-06-27T14:40:35 Minor: Introduce GenericOffset
Behdad Esfahbod 0d1b3419 2014-06-26T19:13:34 Minor: Use template parameter default values for OffsetTo
Behdad Esfahbod 546b1adc 2014-06-26T19:10:21 Minor: Use template parameter default values for hb_prealloced_array_t
Behdad Esfahbod 911ca386 2014-06-24T10:20:36 Add back API removed recently Add hb_ot_layout_language_get_required_feature_index() again, which is used in Pango. This was removed in da132937989acb4d8ca9bd41c79f98750e7dda30 in favor of hb_ot_layout_language_get_required_feature(). API changes: - Added hb_ot_layout_language_get_required_feature_index back.
Behdad Esfahbod 89e49469 2014-06-22T11:32:13 Add new IndicSyllabicCategory short forms for Unicode 7.0
Behdad Esfahbod dcee838e 2014-06-22T11:29:59 Minor
Behdad Esfahbod f2ad86e6 2014-06-21T15:31:10 [indic-table-gen] Minor
Behdad Esfahbod 2ec62279 2014-06-21T15:25:59 [indic-table] Update to Unicode 6.3.0 Was from 6.2.0. It's a no-op. Committing for the record.
Behdad Esfahbod 5d4d7384 2014-06-21T14:53:21 Minor: format
Behdad Esfahbod 44243ae5 2014-06-21T14:19:34 [arabic-table] Update to Unicode 7.0 Old table was from 6.2. Remove hard-coded Mongolian and Phags-pa data. This completes support for new scripts Manichian and Psaltar Pahlavi.
Behdad Esfahbod cd86ab9b 2014-06-21T14:10:38 [arabic-table] Add ZWJ/ZWNJ now that table is segmented
Behdad Esfahbod 2390d9b6 2014-06-21T14:07:00 [arabic-table] Further tune In anticipation of Unicode 7.0 data coming in the next commit.
Behdad Esfahbod a133e606 2014-06-20T18:01:34 [indic-table] Minor
Behdad Esfahbod b900fa2c 2014-06-20T17:59:43 [arabic-table] Use segmented table No functional change.
Behdad Esfahbod c2e11340 2014-06-20T17:57:03 [indic-table] Make output stable
Behdad Esfahbod 55abfbd2 2014-06-20T16:47:43 [indic-table] Minor No output change.
Behdad Esfahbod f8867074 2014-06-20T16:30:10 [arabic-table] Don't write comments No functional change.
Behdad Esfahbod 200dfe3e 2014-06-20T16:20:59 [arabic-table] Use short names for values No functional change.
Behdad Esfahbod 3f5327a4 2014-06-20T16:17:42 [arabic-table] Read Blocks.txt and shuffle code around No functional change.
Behdad Esfahbod 171f970e 2014-06-20T15:25:30 [indic-table] Black-list Thai, Lao, and Tibetan We don't need Indic table for those.
Behdad Esfahbod 65ac2dae 2014-06-20T15:12:49 [indic-table] Speed up lookup
Behdad Esfahbod 64442a3f 2014-06-20T14:58:53 [indic-table] Fix compiler warning
Behdad Esfahbod 0436e1d5 2014-06-20T14:56:22 [indic-table] Make table more compact by not covering full blocks -#define indic_offset_total 4416 +#define indic_offset_total 3816 -}; /* Table occupancy: 60% */ +}; /* Table occupancy: 69% */
Behdad Esfahbod 190a2514 2014-06-20T14:41:39 [indic-table] Remove block range from data table No functional change.
Behdad Esfahbod 2b051c60 2014-06-20T14:09:57 Rename HB_VERSION_CHECK and hb_version_check to "atleast" HB_VERSION_CHECK's comparison was originally written wrongly by mistake. When API tests were written, they were also written wrongly to pass given the wrong implementation... Sigh. Given the purpose of this API, there's no point in fixing it without renaming it. As such, rename. API changes: HB_VERSION_CHECK -> HB_VERSION_ATLEAST hb_version_check -> hb_version_atleast
Behdad Esfahbod cabfa538 2014-06-20T13:51:21 Adjust unused doc symbols
Jonathan Kew da132937 2014-04-27T14:05:24 Rework handling of requiredFeature to solve problem with rlig in arial.ttf from winxp https://bugzilla.mozilla.org/show_bug.cgi?id=986802 Fixes https://github.com/behdad/harfbuzz/pull/39 API Change: -hb_ot_layout_language_get_required_feature_index +hb_ot_layout_language_get_required_feature New API takes an extra pointer argument. Pass NULL in to get behavior of previous API. Reworked by behdad
Behdad Esfahbod df554af9 2014-06-19T15:39:18 Rename search() to bsearch() and lsearch() Such that the complexity of the algorithm used is clear at call site.
Behdad Esfahbod fb8cc86f 2014-06-19T15:30:18 Rename sort() to qsort() In an effort to make the algorithm used clear.
Behdad Esfahbod 577ca481 2014-06-18T12:29:23 [unicode7] Update list of Default_Ignorable codepoints
Behdad Esfahbod 7cfee382 2014-04-28T15:09:30 [unicode7] Route Manichaean and Psalter Pahlavi through Arabic shaper Still needs update to joining table to fully work.
Behdad Esfahbod a4a7899c 2014-04-28T15:06:42 [unicode7] Mark right-to-left scripts
Behdad Esfahbod 62587bfc 2014-04-28T15:07:21 [unicode7] Declare Unicode 7 scripts
Behdad Esfahbod dc61294a 2014-04-28T14:58:28 [unicode7] Add missing ISO 15924 tags
Behdad Esfahbod 7526373e 2014-06-17T11:45:26 [coretext] Remove unused var
Jonathan Kew 798e4185 2014-06-10T13:10:30 When zeroing mark widths for LTR, also adjust offset... ...so that they overstrike preceding glyph. https://github.com/behdad/harfbuzz/pull/43
Jonathan Kew 80f7405a 2014-06-10T13:10:02 [Thai] set the correct general category on Nikhahit when decomposing Sara-Am.
Behdad Esfahbod 1d634cbb 2014-06-06T17:55:02 Fix base-position when 'pref' is NOT formed If pre-base reordering Ra is NOT formed (or formed and then broken up), we should consider that Ra as base. This is observable when there's a left matra or dotreph that positions before base. Now, it might be that we shouldn't do this if the Ra happend to form a below form. We can't quite deduce that right now... Micro test added. Also at: https://code.google.com/a/google.com/p/noto-alpha/issues/detail?id=186#c29
Behdad Esfahbod 04dc52fa 2014-06-06T17:28:38 [indic] Recover OT_H undergone ligation and multiplication Sometimes font designers form half/pref/etc consonant forms unconditionally and then undo that conditionally. Try to recover the OT_H classification in those cases. No test number changes expected.
Behdad Esfahbod 39c8201f 2014-06-06T17:19:35 [indic] Improve base re-finding No test numbers change.
Behdad Esfahbod c04d5f0d 2014-06-06T17:02:39 [indic] Minor
Behdad Esfahbod 832a6f99 2014-06-04T16:57:42 [indic] Don't reorder reph/pref if ligature was expanded Normally if you want to, say, conditionally prevent a 'pref', you would use blocking contextual matching. Some designers instead form the 'pref' form, then undo it in context. To detect that we now also remember glyphs that went through MultipleSubst. In the only place that this is used, Uniscribe seems to only care about the "last" transformation between Ligature and Multiple substitions. Ie. if you ligate, expand, and ligate again, it moves the pref, but if you ligate and expand it doesn't. That's why we clear the MULTIPLIED bit when setting LIGATED. Micro-test added. Test: U+0D2F,0D4D,0D30 with font from: [1] https://code.google.com/a/google.com/p/noto-alpha/issues/detail?id=186#c29
Behdad Esfahbod b5be2317 2014-06-05T19:00:22 [gsub] Adjust single-length ligature subst to act like single subst
Behdad Esfahbod aae69451 2014-06-05T18:54:44 [gsub] Minor shuffling
Behdad Esfahbod b6b304f1 2014-06-05T17:12:54 [ot] Add TODO re zero-len MultipleSubst sequences
Behdad Esfahbod f1a72fe7 2014-06-04T19:00:29 [ot-font] Fix cmap EncodingRecord cmp order
Behdad Esfahbod ce34f0b0 2014-06-04T18:57:46 [ot-font] Use binary search for format12 cmap subtable
Behdad Esfahbod 257d1adf 2014-06-04T18:47:55 [ot-font] Work around broken cmap subtable format 4 length Roboto was hitting this. FreeType also has pretty much the same code for this, in ttcmap.c:tt_cmap4_validate(): /* in certain fonts, the `length' field is invalid and goes */ /* out of bound. We try to correct this here... */ if ( table + length > valid->limit ) { if ( valid->level >= FT_VALIDATE_TIGHT ) FT_INVALID_TOO_SHORT; length = (FT_UInt)( valid->limit - table ); }
Behdad Esfahbod 51f56357 2014-06-04T18:42:32 Move try_set to sanitize context
Behdad Esfahbod 500737e8 2014-06-04T18:17:29 [ot-font] Don't select a Null cmap subtable Can happen either in broken fonts, or as a result of sanitize().
Behdad Esfahbod dac86026 2014-06-03T17:57:00 Fix some cppcheck warnings Bug 77800 - cppcheck reports
Behdad Esfahbod c306410c 2014-06-03T16:59:41 Bug 77732 - Fix unused typedef warning for ASSERT_STATIC with GCC 4.8
Behdad Esfahbod ae2b854e 2014-06-03T16:59:09 Move code around
Behdad Esfahbod 17c3b809 2014-06-02T15:08:18 [indic] Treat U+A8E0..A8F1 as OT_A instead of OT_VD Apparently they can intermix with other OT_A. Test: U+0915,A8E2,1CD0
Behdad Esfahbod 6ae13f25 2014-05-30T17:38:14 [graphite2] Fix cluster mapping Patch from Martin Hosken. I expect this to fix the following bugs: https://bugs.freedesktop.org/show_bug.cgi?id=75076 https://bugzilla.gnome.org/show_bug.cgi?id=723582 https://bugzilla.redhat.com/show_bug.cgi?id=998812
Behdad Esfahbod 7977ca17 2014-05-29T15:34:26 [indic] Allow decimal and Brahmi digits as placeholders Tests: U+0967,0951 U+0031,093F
Behdad Esfahbod e8b5d640 2014-05-29T15:18:27 [indic] Do NOT allow reph formation on placeholders Only allow it on DOTTED CIRCLE. No effect on test numbers. Test: U+0930,094D,00A0
Behdad Esfahbod 52b562a6 2014-05-27T18:18:23 [indic] Clean up a bit No functional change intended.
Behdad Esfahbod 3bf652b9 2014-05-27T18:07:26 [indic] Treat U+002D and U+2010..2014 as placeholders