Commit Graph

5065 Commits

Author SHA1 Message Date
Behdad Esfahbod d03f11f246 Fix buffer_diff for empty buffers
If buffers are empty, content type should be ignored.

This fixes last of the failing tests: fuzzed.tests.  Green again!
2017-09-04 20:14:13 -07:00
Behdad Esfahbod 7cc348041d [unsafe-to-break] Fix unsafe-to-break for cluster-level=1
Fixes tests/shaping/tests/cluster.tests
2017-09-04 20:06:21 -07:00
Behdad Esfahbod 61a9d7e6d0 Minor 2017-09-04 19:48:52 -07:00
Behdad Esfahbod 03a5a6f873 [util] Add --unicodes to hb-view / hb-shape
Fixes https://github.com/behdad/harfbuzz/issues/154
2017-09-01 19:12:22 -07:00
Behdad Esfahbod 0e5b475d98 Minor 2017-09-01 18:28:47 -07:00
Behdad Esfahbod 3e1fc6d18b Minor 2017-09-01 10:46:48 -07:00
Behdad Esfahbod 04f009f848 Add test accidentally removed in previous commit 2017-09-01 10:38:25 -07:00
Behdad Esfahbod 06cb162cd7 [indic] Treat Consonant_With_Stacker as consonant
Fixes https://github.com/behdad/harfbuzz/issues/528
"Kannada JIHVAMULIYA and UPADHMANIYA insert dotted circles"
2017-09-01 10:34:56 -07:00
Behdad Esfahbod c449d2d8c9 [unsafe-to-break] Mark during fraction-slash formation
Fixes tests/automatic-fractions.tests
2017-08-30 17:28:22 -07:00
Behdad Esfahbod b262ebcc9c [util] Fix cluster sweeping during --verify
If *I* get this wrong in 2017, I have no idea how others get their head around
cluster math...

Fixes tests/arabic-fallback-shaping.tests
2017-08-30 17:26:07 -07:00
Behdad Esfahbod 69d701b02e [util] When --verify fails, return reconstructed shape results 2017-08-30 17:07:29 -07:00
Behdad Esfahbod 099472e08b hb_buffer_diff() tweak
I like to have a mode where CONTAINS_NOTDEF and CONTAINS_DOTTEDCIRCLE are not
returned.  Abused a value of -1 for that.  hb-shape now uses it.  Fixes two
of the six tests failing with --verify in test/shaping/run-tests.sh.
2017-08-30 16:45:06 -07:00
Behdad Esfahbod e8b364b860 1.5.0 2017-08-23 15:00:45 -07:00
Behdad Esfahbod 224d20e4e1 [docs] Minor 2017-08-23 14:49:10 -07:00
Behdad Esfahbod 4387b059a0 [test] Add --verify to hb-shape
Disabled for now.  Will enable and fix failures after next release.
2017-08-23 14:35:58 -07:00
Behdad Esfahbod b2dd0c1c32 Add hb_glyph_info_get_glyph_flags()
New API.
2017-08-23 13:12:54 -07:00
Behdad Esfahbod 3e8f4f1452 Rename HB_BUFFER_DIFF_FLAG_MASK_MISMATCH to HB_BUFFER_DIFF_FLAG_GLYPH_FLAGS_MISMATCH 2017-08-22 17:56:25 -07:00
Behdad Esfahbod a9e52a1af4 [util] Prefix trace lines with "trace:", and error lines with "error:" 2017-08-15 17:30:18 -07:00
Behdad Esfahbod 7ea10c35a3 [util] Respect eot/bot in safe-to-break test; hook up hb_buffer_diff() 2017-08-15 17:25:04 -07:00
Behdad Esfahbod 8820ba29df Fix warning about "may be used uninitialized" 2017-08-15 17:12:21 -07:00
Emil A Eklund (eae) 91770e1c56 Fix signed/unsigned warning (#522)
Change hb_buffer_diff to explicitly cast result of abs to unsigned when
comparing with position_fuzz to avoid unsafe signed/unsigned comparions
warnings on windows.
2017-08-15 16:25:18 -07:00
Behdad Esfahbod 587f15ece3 Minor 2017-08-14 15:23:10 -07:00
Behdad Esfahbod a88e2a73f3 [util] Fix leaks 2017-08-14 14:49:21 -07:00
Behdad Esfahbod 338e61ad1b Fix typo 2017-08-14 12:36:38 -07:00
Jonathan Kew 331d66c7fe Add function to compare two buffers
Based on patch from Jonathan Kew.

Needs more cleaning up and documentation.

New API:
hb_buffer_diff_flags_t
hb_buffer_diff()
2017-08-14 11:44:12 -07:00
Behdad Esfahbod 219af509ef [graphite2] Fix warning 2017-08-13 15:10:26 -07:00
Behdad Esfahbod 239119a631 [unsafe-to-break] Mark all positions as unsafe in alternative shapers 2017-08-13 15:08:34 -07:00
Behdad Esfahbod 05fabbd03e [unsafe-to-break] Towards verifying unsafe-to-break in --verify
We break and shape fragments and reconstruct shape result from them.
Remains to compare to original buffer.  Going to add some buffer
comparison API and use here, instead of open-coding.
2017-08-11 20:00:55 -07:00
Behdad Esfahbod 6ce25f57c6 Fix hb_buffer_append()
Ouch!
2017-08-11 19:31:05 -07:00
Behdad Esfahbod 1c17c2bde5 [unsafe-to-break] Copy flag to all glyphs in a cluster
Makes consumption easier.
2017-08-11 19:06:07 -07:00
Behdad Esfahbod ec104e5912 [unsafe-to-break] Mark unsafe is cluster merging is disabled
We were relying on cluster merges not requiring unsafe flagging because
they get merged.  If cluster level requests no merging, then we flag
unsafe when merge would have happened.
2017-08-11 18:24:27 -07:00
Behdad Esfahbod 39a9749430 New API: hb_buffer_append() 2017-08-11 15:52:06 -07:00
Behdad Esfahbod d2052278f2 [util] Add --verify to hb-shape / hb-view that verifies shape results
Right now it checks for monotone cluster values.  Other checks to be added.
2017-08-11 15:12:25 -07:00
Behdad Esfahbod 14a639ea59 [unsafe-to-break] Fix Use-of-uninitialized-value in unsafe_to_break_set_mask
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3011
2017-08-11 11:30:39 -07:00
Behdad Esfahbod e43aad5552 [unsafe-to-break] Flag in Thai PUA shaping 2017-08-10 20:54:15 -07:00
Behdad Esfahbod eae009602b [unsafe-to-break] Flag in Hangul shaper 2017-08-10 20:50:48 -07:00
Behdad Esfahbod b65aa1cd47 [unsafe-to-break] Flag during mark attachment 2017-08-10 20:32:02 -07:00
Behdad Esfahbod c4712f8e37 Fix test 2017-08-10 20:27:21 -07:00
Behdad Esfahbod 882ebdadd6 [unsafe-to-break] Flag during cursive positioning 2017-08-10 20:23:17 -07:00
Behdad Esfahbod 2d158ca376 [unsafe-to-break] Flag during kerning 2017-08-10 20:20:30 -07:00
Behdad Esfahbod a7c4972cce [unsafe-to-break] Flag during fallback positioning 2017-08-10 20:16:15 -07:00
Behdad Esfahbod e2a2b5b229 [unsafe-to-break] Be careful with flag propagation when merging clusters 2017-08-10 20:11:35 -07:00
Behdad Esfahbod f2868c2008 Set mask to 0, instead of 1, by default
This shouldn't matter.
2017-08-10 20:10:53 -07:00
Behdad Esfahbod 9e005c5d86 [unsafe-to-break] Mark Indic-like clusters as unsafe-to-break 2017-08-10 20:10:53 -07:00
Behdad Esfahbod 5287ccc935 [unsafe-to-break] Allocate public bits from 0 2017-08-10 15:02:34 -07:00
Behdad Esfahbod 91ce0c45d6 [safe-to-break] Fix logic when there is no out-buffer 2017-08-10 15:02:34 -07:00
Behdad Esfahbod a043c99f77 [unsafe-to-break] Simplify logic
Always use the algorithm for non-monotone case.  It's more robust.
2017-08-10 15:02:34 -07:00
Behdad Esfahbod 40bd7e9a1c [unsafe-to-break] Add UNSAFE_TO_BREAK flag
Not all shapers code is updated to set this properly.
GSUB and Arabic shaper are updated.
GPOS and other shapers are NOT.

Fixes https://github.com/behdad/harfbuzz/issues/224
2017-08-10 15:02:28 -07:00
Behdad Esfahbod 3e44748ebe [util] Fix two other Coverity warnings 2017-08-09 22:09:01 -07:00
Behdad Esfahbod 356f93b64b [util] Fix warning 2017-08-09 22:06:53 -07:00