Commit Graph

3744 Commits

Author SHA1 Message Date
Behdad Esfahbod c1432bce3c [arabic] Adjust feature order again
Fixes https://github.com/behdad/harfbuzz/issues/505
2017-07-14 17:35:17 +01:00
Cosimo Lupo 9813be3d12 [coretext] Allow to disable kern (#508)
* Minor

* [coretext] Fix leak

* [coretext] Do not reset num_features

* [coretext] allow to disable kern; re-enabling doesn't seem to be working
2017-07-14 17:11:46 +01:00
Behdad Esfahbod 9dd29c681e [use] Allow up to two medial-below letters
Fixes https://github.com/behdad/harfbuzz/issues/376
2017-07-14 17:01:27 +01:00
Behdad Esfahbod 216b003c91 [use] Fix shaping of U+AA29 CHAM VOWEL SIGN AA
Part of https://github.com/behdad/harfbuzz/issues/376
Also see https://github.com/roozbehp/unicode-data/issues/6

Test added, using NotoSansCham built from Noto Phase III sources.
2017-07-14 16:38:51 +01:00
Behdad Esfahbod f1cd7ca893 [indic] Add github URL 2017-07-14 15:59:40 +01:00
Behdad Esfahbod 3cc84f45b9 [indic] Fix https://github.com/behdad/harfbuzz/issues/478 2017-07-14 15:50:22 +01:00
Behdad Esfahbod e359a4b8f5 [indic] Disable automatic ZWNJ handling for Indic features
Fixes https://github.com/behdad/harfbuzz/issues/294

Also fixes a bunch of other Indic issues.  Test results after:

BENGALI: 353725 out of 354188 tests passed. 463 failed (0.130722%)
DEVANAGARI: 707307 out of 707394 tests passed. 87 failed (0.0122987%)
GUJARATI: 366355 out of 366457 tests passed. 102 failed (0.0278341%)
GURMUKHI: 60732 out of 60747 tests passed. 15 failed (0.0246926%)
KANNADA: 951201 out of 951913 tests passed. 712 failed (0.0747968%)
KHMER: 299071 out of 299124 tests passed. 53 failed (0.0177184%)
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: 1091754 out of 1091754 tests passed. 0 failed (0%)
TELUGU: 970555 out of 970573 tests passed. 18 failed (0.00185457%)

Before:

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%)
2017-07-14 14:22:52 +01:00
Behdad Esfahbod cdf1fd0627 [indic] Add infrastructure to disable ZWNJ-skipping in context-matching
Not used yet.
2017-07-14 12:43:34 +01:00
Dominik Schlösser 4e21ec5469 Fix for reordering of Tibetan vowel u (#443)
* Undone change for Tibetan vowel u

* removed comment on reordering that became invalid with roll-back

* Support for Dzongkha contractions with multiple vowel-signs

* Removed non-functional and unnecessary defines for HB_MODIFIED_COMBINING_CLASS_CCC138,140
2017-07-14 12:14:23 +01:00
Ebrahim Byagowi 3b0e47ca00 Fix arm-none-eabi build (fixes #451) (#496) 2017-06-19 14:47:09 +04:30
Ebrahim Byagowi 76c4873e8c Support branch prediction helpers on clang compiles (#491) 2017-06-02 13:23:10 -04:00
Behdad Esfahbod 7dba30639a Handle allocation failure in hb-language code 2017-06-01 11:44:42 -04:00
Sebastian Rasmussen 92e2c4baaf Avoid using strdup inside library. (#488)
If an application provides a malloc replacement through
hb_malloc_impl() it is important that it is used to allocate
everything, but the use of strdup() circumvents this and
causes system malloc() to be called instead. This pairs
badly with the custom hb_free_impl() being called later.
2017-05-29 10:53:30 -07:00
Khaled Hosny 06cfe3f736 Do not skip TAG characters in glyph substitution (#487)
Hide them like Mongolian Free Variation Selectors instead.

Fixes https://github.com/behdad/harfbuzz/issues/463
2017-05-17 11:32:47 -07:00
Behdad Esfahbod 1817221620 Minor 2017-05-16 14:26:28 -07:00
mhosken 74b99ef224 Fix graphite2 rtl conversion (#475) 2017-04-20 11:13:22 -07:00
Chris Peterson aacca37590 Fix clang -Wcomma warnings (#471) (#472)
clang's new -Wcomma compiler option warns about possible misuse of the
comma operator such as between two statements.

hb-common.cc:190:9 [-Wcomma] possible misuse of comma operator here
hb-ot-layout-gsubgpos-private.hh:345:30 [-Wcomma] possible misuse of
comma operator here
hb-shape-plan.cc:438:26 [-Wcomma] possible misuse of comma operator here
2017-04-17 23:25:24 -07:00
William Hua 5ecf96e3a2 Use absolute paths of ragel generated headers (#467)
https://github.com/behdad/harfbuzz/issues/455
2017-04-16 22:33:42 -07:00
jfkthame c04c1fe86e Blacklist GDEF table in additional Tahoma versions. (#459)
There are more broken versions of Tahoma out there on various Windows releases,
so we need to add them to our blacklist to avoid broken rendering.
See https://bugzilla.mozilla.org/show_bug.cgi?id=1279925 for details.
2017-04-11 14:29:13 -07:00
ebraminio adfd4ae1cf [cmake] Improve third party libraries support (#461) 2017-04-11 23:18:18 +04:30
Behdad Esfahbod a4471d0c2c Move list of ragel sources to Makefile.sources as well 2017-04-05 15:42:11 +02:00
ebraminio d2acaf6d72 Split ragel generated files lists and remove hardcoded rl files lists (#453) 2017-04-05 11:21:23 +02:00
jfkthame 740fdbcd0e avoid UBSan warning in get_stage_lookups (#450)
See https://bugzilla.mozilla.org/show_bug.cgi?id=1336600
2017-04-03 13:22:39 +02:00
Behdad Esfahbod edcf6344bc Blacklist more versions of Padauk
Patch from Phil Race.
2017-03-24 10:24:52 -07:00
Khaled Hosny 91570a1eeb Just always use strtod here 2017-03-22 23:07:20 +02:00
Chun-wei Fan 539571c1a9 src/hb-common.cc: Fix build on older Visual Studio
Visual Studio only supported strtof() from Visual Studio 2013 onwards, so
use strtod() instead to do the operation, which should do the same thing,
sans going to a double, not a float.
2017-03-22 23:03:49 +02:00
Behdad Esfahbod 47e7a1800f Revert "Fix Context lookup application when moving back after a glyph delete"
This reverts commit b9b005f3a4.

This introduced invalid access cases. Revert until I fix correctly.
2017-03-10 13:23:02 -08:00
Behdad Esfahbod 3c080a7a0a Fix buffer serialize of empty buffer
Ouch!
2017-03-07 18:13:28 -08:00
Behdad Esfahbod 9ac9af725c Add TODO item 2017-03-05 13:51:01 -08:00
Behdad Esfahbod 5aec2fb8d0 Remove TODO item that is not going to happen 2017-03-02 11:46:33 -08:00
Behdad Esfahbod b9b005f3a4 Fix Context lookup application when moving back after a glyph delete
This was broken forever, since days that we did not allow moving
tape backwards. Works now. Reported by Doug Felt.
2017-03-01 14:27:23 -08:00
Behdad Esfahbod 85630996b8 Fix buffer-overrun with Bengali reph positioning code
This has no security implications whatsoever since we always keep
and extra element at the end of buffer, just in case.

Discovered by oss-fuzz
CC https://github.com/behdad/harfbuzz/issues/139
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=660
2017-02-25 13:32:20 -08:00
Dominik Röttsches a657f23ca3 Blacklist another instance of Padauk (#419)
In https://crbug.com/681813 another instance of Padauk was identified
triggering collapsed glyphs. Blacklist this version by patching
hb-ot-layout.cc to print out gdef, gsub, and gpos table length, then
adding those to the list of blacklisted versions.
2017-02-20 13:52:07 -06:00
jfkthame 44f7d6ecde Guard against underflow when adjusting length (#421)
* Guard against underflow when adjusting length

With the fuzz-testcase in mozilla bug 1295299, we end up with a recursed lookup that removes 3 items, when `match_positions[idx]` is 0, which results in (unsigned) `end` wrapping to a huge value.

Making `end` a signed int is probably the simplest route to a fix.

Fixes https://bugzilla.mozilla.org/show_bug.cgi?id=1295299.

* Add testcase for #421.
2017-02-16 19:03:24 -08:00
jfkthame 45766b673f [indic] Add support for Grantha marks that may be used in Tamil to th… (#401)
* [indic] Add support for Grantha marks that may be used in Tamil to the Indic table.

See https://bugzilla.mozilla.org/show_bug.cgi?id=1331339.

Testcase: U+0BA4,U+0BC6,U+1133c,U+0BAA,U+1133c,U+0BC6,U+1133c

* [indic] Add test for Grantha nukta that is allowed in Tamil by ScriptExtensions.txt
2017-02-16 09:40:21 -08:00
Behdad Esfahbod d4bb52b9fd Unbreak hb-coretext build 2017-02-09 14:13:25 -08:00
Behdad Esfahbod c8dfed8e1e Merge pull request #357 from khaledhosny/graphite-scale
[graphite] Fix shaping with varying font sizes
2017-02-08 14:36:18 -08:00
Behdad Esfahbod 7c47474f20 Set LC_ALL instead of LANG when creating harfbuzz.def
Hopefully fixes Travis faliure?
https://github.com/behdad/harfbuzz/pull/413#issuecomment-278481882
https://travis-ci.org/khaledhosny/harfbuzz/jobs/199785332#L1065
2017-02-08 14:33:28 -08:00
Philip Withnall ffde3c9f9e hb-font: Fix a potentially undefined use of memcmp() (#413)
While it’s fine to call memcmp(x, 0, 0) in practice, the C99 standard
explicitly says that this is not allowed: even if the length is zero,
the pointer arguments must be valid.

http://stackoverflow.com/a/16363034

Coverity ID: 141178

Signed-off-by: Philip Withnall <withnall@endlessm.com>
2017-02-08 13:56:57 -08:00
Behdad Esfahbod 73c6dcbb45 Silence Coverity warning
Fixes https://github.com/behdad/harfbuzz/issues/408
2017-02-07 16:53:21 -08:00
Behdad Esfahbod 466b3e58bd Shuffle things around a bit 2017-02-03 16:57:15 -08:00
Behdad Esfahbod fc8189b639 Minor 2017-02-03 16:17:08 -08:00
Behdad Esfahbod d3d3691806 Add dirty-state tracking to hb_face_t 2017-02-03 15:42:03 -08:00
Behdad Esfahbod 2171f48b4b Add dirty-state tracking to hb_font_t 2017-02-03 10:58:09 -08:00
Behdad Esfahbod 95808bad2c Add new API hb_font_set_face()
For completeness.
2017-02-03 10:39:40 -08:00
jfkthame 4ec19319ab Add Win10 Anniversary Update version of Tahoma to GDEF blacklist. (#412) 2017-02-02 10:48:23 -08:00
Behdad Esfahbod 1dd630a7f2 Minor
Fixes https://github.com/behdad/harfbuzz/issues/411
2017-02-01 11:57:21 -08:00
Behdad Esfahbod e888f642db Route Adlam through Arabic shaper
Fixes joined Adlam rendering.

Fixes https://github.com/googlei18n/noto-fonts/issues/828
2017-01-26 14:50:14 -08:00
jfkthame 72c754873c Add Win7 version of himalaya.ttf to the GDEF table blacklist. (#407) 2017-01-26 14:35:41 -08:00
Behdad Esfahbod 22af28a3f1 [var] Implement MVAR table
Unhooked. Untested.
2017-01-23 23:42:53 -08:00