src


Log

Author Commit Date CI Message
Behdad Esfahbod 238b943e 2016-02-22T15:31:22 [coretext] Fix leak!
Behdad Esfahbod e5611228 2016-02-22T15:28:37 [coretext] Move code around
Behdad Esfahbod 04c64431 2016-02-22T15:12:27 [coretext] Ignore PPEM in font size selection
Behdad Esfahbod 62c27111 2016-02-22T15:07:20 [coretext] Limit grapheme-cluster forming to cluster-level=0
Behdad Esfahbod 061105ec 2016-02-22T14:59:39 [coretext] Fix shaping with varying font size Fixes https://github.com/libass/libass/issues/212
Behdad Esfahbod b87e36f6 2016-02-19T14:52:31 Avoid buffer->move_to() in case of buffer error Fixes https://github.com/behdad/harfbuzz/issues/223 Right now we cannot test this because it has to be tested using hb-fuzzer. We should move all fuzzing tests from test/shaping/tests/fuzzed.tests to test/fuzzing/ and have its own test runner. At that point, should add test from this issue as well.
Behdad Esfahbod 568a0c60 2016-02-18T19:31:51 Remove pointless overflow check in pointer math Fixes https://github.com/behdad/harfbuzz/issues/227
Behdad Esfahbod aae28470 2016-02-18T17:06:25 Emoji skin tone modifiers need to be treated as combining marks Fixes https://github.com/behdad/harfbuzz/issues/169
Behdad Esfahbod da41e48f 2016-02-16T17:16:33 [USE] Zero mark advances by GDEF early This is what Microsoft's implementation does. Marks that need advance need to add it back using 'dist' or other feature in GPOS. Update tests to match.
Behdad Esfahbod 86c68c7a 2016-02-16T16:07:20 [GPOS] Fix interaction of mark attachments and cursive chaining Fixes https://github.com/behdad/harfbuzz/issues/211 What happens in that bug is that a mark is attached to base first, then a second mark is cursive-chained to the first mark. This only "works" because it's in the Indic shaper where mark advances are not zeroed. Before, we didn't allow cursive to run on marks at all. Fix that. We also where updating mark major offsets at the end of GPOS, such that changes in advance of base will not change the mark attachment position. That was superior to the alternative (which is what Uniscribe does BTW), but made it hard to apply cursive to the mark after it was positioned. We could track major-direction offset changes and apply that to cursive in the post process, but that's a much trickier thing to do than the fix here, which is to immediately apply the major-direction advance-width offsets... Ie.: https://github.com/behdad/harfbuzz/issues/211#issuecomment-183194739 If this breaks any fonts, the font should be fixed to do mark attachment after all the advances are set up first (kerning, etc). Finally, this, still doesn't make us match Uniscribe, for I explained in that bug. Looks like Uniscribe applies minor-direction cursive adjustment immediate as well. We don't, and we like it our way, at least for now. Eg. the sequence in the test case does this: - The first subscript attaches with mark-to-base, moving in x only, - The second subscript attaches with cursive attachment to first subscript moving in x only, - A final context rule moves the first subscript up by 104 units. The way we do, the final shift-up, also shifts up the second subscript mark because it's cursively-attached. Uniscribe doesn't. We get: [ttaorya=0+1307|casubscriptorya=0@-242,104+-231|casubscriptnarroworya=0@20,104+507] while Uniscribe gets: [ttaorya=0+1307|casubscriptorya=0@-242,104+-211|casubscriptnarroworya=0+487] note the different y-offset of the last glyph. In our view, after cursive, things move together, period.
Behdad Esfahbod 80c8855c 2016-02-12T12:50:17 Minor
Behdad Esfahbod 6ab92022 2016-02-11T16:57:52 [GPOS] Minor No effect.
Behdad Esfahbod cbc3a76c 2016-02-11T16:48:13 [GPOS] Merge fixing of offsets for cursive and mark attachments Part of fixing https://github.com/behdad/harfbuzz/issues/211
Behdad Esfahbod 7d8d58ac 2016-02-11T16:34:28 [GPOS] Divide position_finish() into two phases, for advances and offsets Right now the position_finish_advances() is empty. To be used for spacing attachments proposal later.
Behdad Esfahbod 84742315 2016-02-11T16:27:41 [ot] Minor shuffling code around
Behdad Esfahbod b0b11614 2016-02-11T15:28:55 [GPOS] Add harmless recursion in fix_mark_attachment() Will do nothing. Just useful for merging two functions.
Behdad Esfahbod 686567ba 2016-02-11T15:25:28 [GPOS] Merge attach_chain() and cursive_chain() Differentiate, using new attach_type().
Behdad Esfahbod 806ad8dc 2016-02-11T14:53:11 [GPOS] Minor shuffling
Behdad Esfahbod 0f6278d1 2016-02-11T14:49:10 [GPOS] Negate sign of attach_lookback(), and rename it to attach_chain() No behavior change. Preparing to unify how cursive and mark attachments work.
Behdad Esfahbod 660c9d3f 2016-02-11T12:14:27 Remove font-dependent ASCII-only perf hack Is confusing. I already hit it myself. Remove. We can optimize ASCII based on Unicode properties. But should not do based on assumptions on the font.
Behdad Esfahbod eaadcbbc 2016-02-10T18:29:54 Remove now-unused mark zeroing BY_UNICODE
Behdad Esfahbod b3582a8e 2016-02-10T18:10:15 Change default mark advance zeroing behavior from Unicode to GDEF See thread at: https://lists.freedesktop.org/archives/harfbuzz/2016-February/005462.html
Chun-wei Fan c6792854 2016-02-03T18:31:23 build: Build the DirectWrite sources if requested This adds to the autotools build system so that the (experimental) DirectWrite support for HarfBuzz is built (and dist'ed).
Chun-wei Fan 35ded3af 2015-11-03T16:56:27 build: Move source listings into separate Makefile snippets This moves all the source listings in src/Makefile.am, src/hb-ucdn/Makefile.am and util/Makefile.am into separate Makefile snippets, so that they may be shared between different Makefile-based build systems, such as NMake for Visual Studio.
Behdad Esfahbod b894a85a 2016-02-02T16:39:19 Fix more hangs in case of buffer allocation errors Hopefully fixes https://github.com/behdad/harfbuzz/issues/214
Behdad Esfahbod 9a6a33cc 2016-01-18T12:47:18 Merge pull request #216 from mhosken/master Refactor graphite2 to make ovleraps into negative width spaces
Martin Hosken 146fe252 2016-01-16T17:24:00 Refactor graphite2 to make ovleraps into negative width spaces
Behdad Esfahbod d05b7833 2016-01-12T16:17:21 Fix compiler warning Fixes https://github.com/behdad/harfbuzz/issues/212
Behdad Esfahbod d163dc18 2016-01-12T13:05:01 Minor
Behdad Esfahbod 3e704521 2016-01-11T17:38:41 [OT] Get list of lookup subtables once and loop through them This speeds up shaping the Amiri font by over 15%. This was primarily needed for my work on OpenType GX, since we will be collecting only sublookups that are "active" for current font instance; but it's a nice boost in general as well. We might, in the future, collect subtables in the lookup_accel. That would also allow us to do a per-subtbale set-digest, which should speed things up some more, specially for ContextChainFormat3 lookups... Amiri, for example, contains one lookup with 53 subtables!
Behdad Esfahbod 97624d92 2016-01-11T12:58:45 [docs] Minor fixes.
Behdad Esfahbod a39ff95f 2016-01-11T12:28:37 [coretext] Speed up CoreText font fallback Fixes https://code.google.com/p/chromium/issues/detail?id=547912
Behdad Esfahbod 25671466 2016-01-07T19:11:41 Add 9 reserved entries to hb_font_extents_t Might add italic-angle, underline/strikethrough-position/thickness in the future. Do this before new struct goes into a release.
Behdad Esfahbod e6d5e4c3 2016-01-06T12:29:50 [uniscribe] Fix negative advance This happens with at least one test font I have.
Behdad Esfahbod 53c47c85 2016-01-05T13:26:20 Increase sanitize edit count from 8 to 32 See previous commit.
Behdad Esfahbod da2fcfdc 2016-01-05T13:23:45 Don't count fixing-up FeatureParams offset as error The font Garamond Premier Pro Caption (and possibly many other Adobe fonts), have many FeatureParamsSize tables with the old wrong offset. We handle fixing those up, but they were still contributing to edit_count, and when I reduced HB_SANITIZE_MAX_EDIT from 100 to 8 in 14c2de321826c36037adde859ccca3e2011325a9, these fonts were now getting GPOS dropped and hence kerning disabled. Fix, by not counting edits made towareds offset fix-up. I'll also increase edit count again, in the next commit.
Behdad Esfahbod d0adc809 2016-01-02T13:25:18 Check magicNumber in head table during sanitize
Khaled Hosny 9ab9f974 2016-01-01T20:38:21 [docs] More buffers documentation
Behdad Esfahbod bfdf684f 2015-12-30T22:20:14 Merge pull request #205 from khaledhosny/more-docs More docs
Nico Weber a7f0e25d 2015-12-30T16:05:52 Remove unused HB_SHAPER_DATA_ENSURE_DECLARE lines. The coretext_aat shaper delegates to the regular coretext_..._ensure() functions, so coretext_aat_..._ensure() functions defined by these macros are unused. The compiler warns about them, which in turn can confuse people to think that the coretext_aat_..._ensure() functions weren't called by accident.
Khaled Hosny 9cffe329 2015-12-30T22:50:08 [docs] Typo
Behdad Esfahbod b758e5ea 2015-12-30T16:44:19 Merge pull request #203 from nico/patch-1 Remove unused `retry:` label.
Khaled Hosny fb192c26 2015-12-30T15:05:50 [docs] A bit more buffers documentation
Khaled Hosny 8ab797c5 2015-12-29T17:42:16 [docs] A bit more buffers documentation
Khaled Hosny f18d2226 2015-12-29T15:21:20 [docs] Some documentation on buffers Some of it (create, reference, destroy) are adapted from Cairo docs.
Khaled Hosny d7bf9d05 2015-12-29T02:23:24 [docs] Fix comment syntax To lower the number of gtk-doc warnings.
Nico Weber 8b1224f0 2015-12-28T21:31:28 Remove unused `retry:` label. Fixes a -Wunused-label warning when building harfbuzz with clang -Wall.
Behdad Esfahbod fc38e603 2015-12-23T14:50:53 [layout] Collect coverage glyphs in PairPos Apparently class=0 is used for ClassDef1. See: https://github.com/adobe-type-tools/afdko/issues/90
Behdad Esfahbod 8718dae8 2015-12-18T19:53:40 [python] Hook up sample debugger
Behdad Esfahbod 0475ef2f 2015-12-18T18:17:07 [buffer] Add debugging, aka, message, API Currently just announces lookup applications. Message-API *will* change. hb-shape / hb-view are updated to print-out messages to stder if --debug is specified.
Behdad Esfahbod 9ea0aa43 2015-12-18T17:30:18 Don't deserialize positions if buffer has no positions
Behdad Esfahbod 862b1644 2015-12-18T13:54:06 [use] Only set syllable-based topographical features if not Arabic-joining
Behdad Esfahbod 45b7ec36 2015-12-18T13:47:16 [indic] Followup fix for Malayalam context matching We regeressed Malayalam in 508cc3d3cfcfb0383df0fe795cc28db4e0fd5729 This brings down the failures to 198 (from 750). 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%) MYANMAR: 1123865 out of 1123883 tests passed. 18 failed (0.00160159%)
Behdad Esfahbod 2813e304 2015-12-18T11:05:11 [indic] Update data tables to Unicode 8.0 Test stats remain unchanged, except for Malayalam, which we investigate: 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: 1047584 out of 1048334 tests passed. 750 failed (0.0715421%) 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%) Myanmar, compared to Windows 10 mmrtext.ttf: MYANMAR: 1123865 out of 1123883 tests passed. 18 failed (0.00160159%)
Behdad Esfahbod fc06cff4 2015-12-17T17:47:35 Remove HB_OT_SHAPE_ZERO_WIDTH_MARKS_DEFAULT The DEFAULT naming wasn't helpful, so just remove it.
Behdad Esfahbod 508cc3d3 2015-12-17T17:31:17 [indic] Allow context when matching for Malayalam new-spec Test sequence: U+0995,U+09CD,U+09B0 With Nirmala shipped on Windows 10, this failed to form the below form. Works now. Reported by Sairus.
Behdad Esfahbod eaf1e93e 2015-12-17T16:57:47 [uniscribe] Handle E_NOT_SUFFICIENT_BUFFER as well as E_OUTOFMEMORY On Windows 10 we are seeing that other error message... Test sequence: U+0995,U+-9CD,U+09B0 With Nirmala shipped on Windows 10, this failed to form the below form. Works now. Reported by Sairus.
Behdad Esfahbod 100fbeaf 2015-12-17T15:23:09 Fix ligature component of a mark happening after a ligature within a ligature! Say, if we are ligating "A B_C m D", then previously 'm' was being attached to 'B' in the combined A_B_C_D ligature. Now we attach it to 'C'. No test for this though :(.
Behdad Esfahbod 2f02fc79 2015-12-17T15:21:14 Improve ligature-component handling We use three bits for lig_id these days, so we finally got a report of two separate ligatures with the same lig_id happening adjacent to each other, and then the component-handling code was breaking things. Protect against that by ignoring same-lig-id but lig-comp=0 glyphs after a new ligature. Fixes https://github.com/behdad/harfbuzz/issues/198
Behdad Esfahbod 2ab0de9f 2015-12-17T11:59:15 [use] Fix halant detection Before, we were just checking the use_category(). This detects as halant a ligature that had the halant as first glyph (as seen in NotoSansBalinese.) Change that to use the is_ligated() glyph prop bit. The font is forming this ligature in ccmp, which is before the rphf / pref tests. So we need to make sure the "ligated" bit survives those tests. Since those only check the "substituted" bit, we now only clear that bit for them and "ligated" survives. Fixes https://github.com/behdad/harfbuzz/issues/180
Behdad Esfahbod 86bcbd65 2015-12-17T11:04:33 [arabic] Use glyph advance width in apply_stch() instead of extents That seems to be what Windows is doing, and makes more sense.
Behdad Esfahbod f11c11a1 2015-12-16T17:08:36 Fix Since: tags for new API https://github.com/behdad/harfbuzz/commit/e1d4d0f1dbd8518b5672245c05d73f22a9ed03ea#commitcomment-15006653
Steven R. Loomis a13b023d 2015-12-11T10:21:27 AIX fixes - use '-w' instead of '\<...\>' for check-header-guards grep manpage says these are the same - put '-q' first in the grep options - move VAR into hb-private.hh - hb-font-private.hh - use [VAR] instead of [] for variable array
Behdad Esfahbod 49e72634 2015-12-10T17:44:19 Limit use of AIX intrinsics to IBM's compiler
Behdad Esfahbod e1d4d0f1 2015-12-10T16:56:07 Merge branch 'font-extents' Fixes https://github.com/behdad/harfbuzz/pull/165
Behdad Esfahbod 31fa3892 2015-12-10T16:38:29 [ft] Use ftface->size->metrics for font extent info
Behdad Esfahbod 3ad16048 2015-12-10T16:37:49 [ot-font] Respect OS/2 fsSelection USE_TYPO_METRICS bit
Behdad Esfahbod 70b33eda 2015-12-10T15:54:42 Add atomic ops for AIX Patch from Volker Simonis.
Behdad Esfahbod 98460779 2015-12-07T21:38:47 Remove final pause from Arabic shaper Back in the old days, we used to apply 'calt' and 'cswh' in Arabic shaper, with a pause in between. Then we disabled the 'cswh' because Microsoft disabled it, but forgot to remove the unnecessary pause. Do that now. This has the benefit that it fixes shaping with monbaiti from Windows 10. In that version of that font, the lookups from 'calt' are duplicated in 'rclt', and Mongolian was changed to go through Universal Shaping Engine. We still use the Arabic shaper for Mongolian. With a pause after 'calt', we were applying the duplicate lookups from 'calt' and 'rclt' twice. It happened to be the case that these lookups were NOT idempotent. So we were getting wrong shaping. See thread "Windows 10 monbaiti.ttf upgrade (5.01 -> 5.51) caused loss of diacritical marks when shaped with harfbuz" on the mailing list. This fixes that.
Behdad Esfahbod dee0fbf9 2015-12-07T10:44:08 Merge pull request #192 from behdad/jfkthame-stch [issue 191] Make apply_stch() give a more precise fit
Behdad Esfahbod 255df680 2015-12-07T10:34:47 Fix undefined behavior in cmp function Fixes https://bugs.freedesktop.org/show_bug.cgi?id=93274
Behdad Esfahbod fcf9e61b 2015-12-07T10:30:43 Fix sorting order of ot_languages array Looks like the original sort was wrongly done. Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=93275
Behdad Esfahbod 70952ddb 2015-12-07T10:28:46 Add test to make sure ot-languages array is sorted Currently fails. Part of https://bugs.freedesktop.org/show_bug.cgi?id=93275
Behdad Esfahbod 8c37556f 2015-12-07T09:34:58 Merge pull request #134 from ebraminio/dwrite Add working but less prefect DirectWrite backend
jfkthame a7ffe353 2015-12-05T17:47:37 Make apply_stch() give a more precise fit This aims to make Syriac Abbr Mark sizing more accurate when repeating segments are used, by adding an extra repeat and tightening up the spacing slightly rather than leaving a shortfall corresponding to a partial repeat-width.
Behdad Esfahbod 8e5f9026 2015-11-30T16:53:21 src/test.cc: wrong field printed Fixes https://github.com/behdad/harfbuzz/issues/188 Fixes https://bugs.freedesktop.org/show_bug.cgi?id=93182
Simon Cozens 6f2e6de1 2015-10-26T16:23:22 Get font ascender and descender metrics from OS/2 table.
Simon Cozens 097c998a 2015-10-26T16:22:38 Parse the OS/2 table.
Behdad Esfahbod 35d18585 2015-11-26T19:30:37 Fix a few docs blocks
Behdad Esfahbod 0e38c918 2015-11-26T19:26:26 [introspection] Make scanner happy with HB_EXTERN
Behdad Esfahbod ea512f71 2015-11-26T19:22:22 Use C-style casts instead of compare to 0, to convert hb_bool_t to bool
Behdad Esfahbod 67a36a72 2015-11-26T18:48:42 Fix vertical GPOS This was brorken earlier, though, it's really hard to notice it. Unlike the glyph_h_origin(), an unset glyph_v_origin() does NOT mean that the vertical origin is at 0,0. Related to https://github.com/behdad/harfbuzz/issues/187
Behdad Esfahbod c41c145c 2015-11-26T18:43:15 Make nil glyph_h_origin() function return true Fixes https://github.com/behdad/harfbuzz/issues/187 Funcs implementations that have a non-zero horizontal origin must implement the glyph_h_origin() callback, nothing new here. Other implementations (all I know of!) can simply not set glyph_h_origin() now. I did that for hb-ot and hb-ft in 44f82750807475aa5b16099ccccd917d488df703, though that broke the fallback shaper because the default was returning false...
Behdad Esfahbod 766963ad 2015-11-24T15:38:43 Merge pull request #114 from ThePhD/vc++-fixes Fix all VC++ warnings and errors
Behdad Esfahbod b344af80 2015-11-24T15:30:27 Merge pull request #177 from fanc999/exporting Enable use of compiler directives to export symbols
Martin Hosken 1979f6fe 2015-11-23T10:03:56 Fix y_scale problems in hb-gr
Chun-wei Fan 835bbdc7 2015-11-19T18:34:12 Public headers: Decorate public symbols with HB_EXTERN This prepares the headers for exporting symbols using visibility attributes or __declspec(dllexport), so that we do not need to maintain symbols listing files, as this is what was and is done in GLib and GTK+.
ThePhD f798b8e2 2015-11-21T16:57:26 c-style cast
Behdad Esfahbod a6991813 2015-11-20T13:28:42 Merge pull request #176 from behdad/missing-braces Add braces for subobject initializer in _hb_font_funcs_nil
Behdad Esfahbod 1dc32ea4 2015-11-20T13:24:19 Whitespace
Behdad Esfahbod f94c0ecb 2015-11-20T13:21:29 Define HB_MARK_AS_FLAG_T as a macro instead of using templates The generic template operator overloading was causing more problems than it solved. Eg: https://github.com/behdad/harfbuzz/pull/163 https://github.com/behdad/harfbuzz/issues/175 So, just use macros. Fixes https://github.com/behdad/harfbuzz/issues/175 Fixes https://github.com/behdad/harfbuzz/pull/178
jfkthame f19c6db1 2015-11-20T08:43:49 Add braces for subobject initializer in _hb_font_funcs_nil To avoid triggering -Wmissing-braces; see https://bugzilla.mozilla.org/show_bug.cgi?id=1226175#c8
Behdad Esfahbod 9cc1ed4f 2015-11-19T12:39:09 Do not allow recursiving to same position and same lookup This is just to make it harder to be extremely slow. There definitely are ways still, just harder. Oh well... how do we tame this problem without solving halting problem?! Fixes https://github.com/behdad/harfbuzz/issues/174
Behdad Esfahbod 13188cba 2015-11-19T11:59:03 Revert "Fix hang in OOM situations" This reverts commit f0599db761d7fc2d585d86e757a797f75ebc7499. Commit abadc1717d997b69f987fdf1be9e12156d2d13d6 provides a better fix for this.
Behdad Esfahbod 18e1c6b6 2015-11-19T11:50:58 Revert "Make sure we make progress in OOM situations" This reverts commit 68b507a3c3c62c28c38e13fee733702bb703b6ca. Commit abadc1717d997b69f987fdf1be9e12156d2d13d6 provides a better fix for this.
Behdad Esfahbod 63fe05c8 2015-11-18T23:52:34 Fix make distcheck
Behdad Esfahbod 37b40cd8 2015-11-18T23:04:45 Fix another move_to assertion failure If buf->idx is at end, don't set end past it... Fixes https://github.com/behdad/harfbuzz/issues/173
Behdad Esfahbod abadc171 2015-11-18T17:52:08 Try to better handle OOM situations Fixes assert fail in https://github.com/behdad/harfbuzz/issues/161 with libharfbuzz-fuzzing.
Behdad Esfahbod ff16ef33 2015-11-18T16:27:32 Enable building a bounded version of the library for fuzzing test/fuzzing/hb-fuzzer links against libharfbuzz-fuzzing.so now.
Behdad Esfahbod e0082ae6 2015-11-17T18:42:13 Move things around